일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 텍스트 가운데 정렬
- 2티어 아키텍처
- 명시도
- SQL
- http 모듈
- solidity
- npm
- #1인게임개발
- UTXO
- react
- #유니티
- 블록체인
- 안정 정렬
- 불안정 정렬
- skip ci
- CSS Specificity
- Factory Functions
- Private Blockchain
- Relational Database
- javascript
- short-circuiting
- Hybrid Blockchain
- CSS
- ES6 모듈
- NoSQL
- caverjs
- CLI
- 3티어 아키텍처
- Factory 함수
- IP
- Today
- Total
짹뚜 스튜디오
[Database] 관계형 데이터베이스 (Relational Database) 본문
관계형 데이터베이스
구조화된 데이터는 하나의 테이블로 표현할 수 있는데, 각각의 테이블이 서로의 고유값 (Primary Key)를 참조하여 서로 연결되어 있는 구조를 이루고 있는 데이터베이스를 관계형 데이터베이스라고 한다.
용어
- 데이터 (data): 각 항목에 저장되는 값
- 테이블 (table 또는 relation): 데이터를 체계화하여 행과 열의 형태로 구성한 것
- 필드 (column 또는 field): 테이블에서 열
- 레코드 (record 또는 tuple): 테이블에서 한 행에 저장된 데이터
- 키 (Key): 테이블의 각 레코드를 구분할 수 있는 고유한 값
관계형 데이터베이스에서 고유값 (Primary Key)가 중요하다. 왜냐하면 다른 테이블을 참조할 때 고유한 값이 있어야 원하는 데이터를 참조할 수 있기 때문에 고유값은 필수로 테이블에 추가해주는 것이 좋다.
관계형 데이터베이스를 사용하는 케이스
- 데이터베이스의 ACID 성질을 준수해야하는 경우
- 데이터가 구조적이고 일관적인 경우
관계 종류
1:1 관계
하나의 레코드가 다른 테이블의 레코드 한 개와 연결된 경우이다. 예를 들어 주민등록번호가 있다. 한 사람은 하나의 주민등록번호를 가지고 하나의 주민등록번호는 한 사람에게만 주어진다. 이러한 관계를 1:1 관계라고 한다.
그러나 1:1 관계는 자주 사용하지 않는다. 1:1로 나타낼 수 있는 관계라면 하나의 테이블로 합쳐서 저장하는게 나을 수 있다.
1:N (일대다) 관계
하나의 레코드가 다른 여러 개의 레코드와 연결된 경우이다. 예를 들어 한 사람의 여러 개의 핸드폰 번호를 가질 수는 있지만, 하나의 핸드폰 번호를 여러 명이 공유해서 사용할 수는 없다. 이러한 관계를 1:N 또는 일대다 관계라고 하고 관계형 데이터베이스에서 가장 많이 사용한다.
N:N (다대다) 관계
여러 개의 레코드가 다른 테이블의 여러 개의 레코드와 관계가 있는 경우이다. 예를 들면 상품을 여러 명의 사람이 구매할 수 있고, 한 사람이 여러 개의 상품을 구매할 수도 있다. 이러한 N:N 또는 다대다 관계의 스키마를 디자인할 때에는, join 테이블을 만들어서 관리한다. 그리고 join 테이블을 생성할 때에도 고유값 (Primary Key)는 항상 필요하다.
Self Referencing (자기참조) 관계
이 경우에는 동일한 테이블 내에서 관계가 있는 경우이다. 예를 들어 한 사람당 추천인 한 사람을 가지는 경우인데, 이러한 경우에는 동일한 테이블을 참조할 수 있다.
'개발 공부 > Database' 카테고리의 다른 글
[Database] SQL vs NoSQL (0) | 2022.02.15 |
---|---|
[Database] NoSQL (0) | 2022.02.15 |
[Database] SQL (0) | 2022.02.12 |
[Database] Transaction (0) | 2022.02.09 |
[Database] Database 란? (0) | 2022.02.09 |