데이터베이스/아는 만큼 보이는 데이터베이스 설계와 구축

2. 식별자 관계와 비식별자 관계 설정

Frankie 2022. 9. 14. 13:02

식별자 - 부모 테이블 PK가 자식 테이블 FK이자 기본키로 사용

비식별자 - 부모테이블 PK가 자식 테이블 일반 컬럼이나 외래키 컬럼에 저장

 

식별자 관계만을 이용해 데이터 모델링을 전개 시, PK 속성의 숫자가 증가

비식별자 관계만을 이용해 데이터 모델링 전개 시, 테이블 간의 과다한 조인을 유발하여 조인에 의한 성능 저하

 

데이터 모델링 수행에서 식별자/비식별자 관계의 구분 설정은 데이터 모델링 초기 단계인 분석 단계에서부터 이미 고려된다고 봐도 된다. 관계 설정에 따라 자식의 PK 구성이 달라질 뿐만 아니라 업무적 특징에 따라 논리적인 관계가 엔티티 사이 형성

 

비식별자관계 선정 기준(관계분석 -> 관계의 강/약 분석 -> 자식테이블 독립 PK 필요 -> SQL 복잡도 증가 개발생산성 저하)

 

식별자관계 - 강한 연결관계 표현, 자식 PK의 구성에 포함됨, 실선 표현, 반드시 부모 엔터티타입 종속, 자식 PK 구성에 부모 PK 포함 필요, 상속받은 PK 속성을 타 엔터티타입에 이전 필요

 

비식별자관계 - 약한 연결관계 표현, 자식 일반 속성에 포함됨, 점선 표현, 자식 PK 구성에 부모 PK 부분 불필요, 부모 쪽의 관계 참여가 선택 관계, 상속받은 PK 속성을 타 엔터티타입에 재상속 차단 필요