데이터베이스 테이블 사이에 관계는 외래 키가 기본 키에 포함되는지 여부에 따라 식별 관계와 비식별 관계로 구분된다.
여기서 기본 키(PK)는 테이블의 각 행의 정보를 식별할 수 있는 Unique하고 Not null인 값이다.
외래 키(FK)는 참조하는 테이블과 참조되는 테이블의 관계를 나타내는 키이다.
식별 관계는 부모 테이블의 기본 키를 내려받아서 자식 테이블의 기본 키 + 외래 키로 사용하는 관계이다.
ERD를 연습으로 그릴 수 있는 웹 사이트이다.
다음 그림을 보자
PARENT 테이블의 기본 키를 받아 CHILD 테이블의 기본 키+외래 키로 사용한다.
다른 말로 하면 CHILD테이블은 PARENT_ID를 기본 키 와 외래 키로 사용하며 CHILD_ID라는 기본 키를 가지고 있다.
자식 테이블의 행을 추가할 때 부모 테이블의 참조 행이 없다면 자식 테이블의 행을 추가할 수 없다.
비식별 관계는 부모 테이블의 기본 키를 받아서 자식 테이블의 외래 키로만 사용하는 관계이다.
비식별 관계에서도 외래 키에 NULL을 허용하는지에 따라 필수적 비식별 관계와 선택적 비식별 관계로 나눈다.
필수적 비식별 관계 : 외래 키에 NULL값을 허용하지 않는다. 연관관계를 필수적으로 맺어야 한다.
선택적 비식별 관계 : 외래 키에 NULL을 허용한다. 연관관계는 옵션이다.
데이터베이스 테이블을 설계할 때 식별 관계나 비식별 관계 중 하나를 선택해야한다.
나는 주로 비식별 관계를 주로 사용하는 것같다. 기본 키를 상속 받아 사용한다는 건 아무래도 나중에 리스크가 있지 않을까 해서다. 그래서 꼭 필요한 곳에는 식별 관계를 사용하고 그렇지 않으면 비식별 관계를 사용한다.
'Database' 카테고리의 다른 글
ER 모델 (0) | 2021.04.12 |
---|---|
데이터베이스 관리자 DBA (0) | 2021.04.12 |
Indexing (0) | 2021.03.01 |
DataBase 정규화 (0) | 2021.02.27 |
데이터베이스 개념 (0) | 2020.10.26 |
댓글