식별관계(Identifying Relationship)과 비식별관계(Non Identifying Relationship)
관계( Relationship )
- 두 entity간의 업무적인 연관성
. 식별관계( Identifying Relationship )
- 부모 테이블의 기본키 or 복합키가 자식 테이블의 기본키 or 복합키의 구성원으로 전이되는 식별관계( 부모가 자식의 모든 정보를 저장하게 됨)
. 비식별관계( Non Identifying Relationship )
- 자식 테이블의 일반 속성( Attribute ) 그룹의 구성원으로 전이되는 비식별관계( 부모는 자식의 부분적인 정보를 표현함 )
. 식별관계의 단점
주 식별자 영역이 점점 비대해지며(식별관계는 부모 실체의 주 식별자를 자식 실체의 주 식별자로 계속하여 전파시키는 특성이 있기 때문에), 결과적으로 무의미한 외래 식별자들이 주 식별자 영역에 들어가는 경우도 많이 있음.
출처 - http://cafe.naver.com/sybaseealab/375
===================================================================================
ER-Win을 쓰다보면.. Identifying Relationship과 Non-Identifying Relationship이 있는데.. |
출처 - http://blog.naver.com/ycw7701?Redirect=Log&logNo=40015913097
===================================================================================
출처 - http://cafe.naver.com/sybaseealab/107
===================================================================================
A 테이블이 Parent 이고, B테이블이 Child 라고 할 때
B에서의 FK(즉 A와 B를 연결해 주는 컬럼, A의 PK) 가 B의 PK이냐 아니냐에 따라 Idendifying 이냐 아니냐 결정이 됩니다.
이것이 무슨 의미냐 하면, Identifying Relationship 이면 B테이블은 A테이블에 종속적이 되어서 A의 값이 없으면 B의 값은 무의미해지는 반면, 반대로 Non-Identifying Relationship 이면 A의 값이 없더라도 B의 값은 독자적으로 의미를 가지겠죠.
혹 이것이 Mandatory 냐 Optional 이냐 이것하고 혼돈을 하실수 있으신데 이것하고는 의미가 다릅니다.