DB/Common

식별관계(Identifying Relationship)과 비식별관계(Non Identifying Relationship)

linuxism 2012. 4. 3. 10:57


 
관계( Relationship )

 - 두 entity간의 업무적인 연관성

 

식별관계( Identifying Relationship )

   - 부모 테이블의 기본키 or 복합키가 자식 테이블의 기본키 or 복합키의 구성원으로 전이되는 식별관계( 부모가 자식의 모든 정보를 저장하게 됨)

 

비식별관계( Non Identifying Relationship )

   - 자식 테이블의 일반 속성( Attribute ) 그룹의 구성원으로 전이되는 비식별관계( 부모는 자식의 부분적인 정보를 표현함 )


. 식별관계의 단점 

주 식별자 영역이 점점 비대해지며(식별관계는 부모 실체의 주 식별자를 자식 실체의 주 식별자로 계속하여 전파시키는 특성이 있기 때문에), 결과적으로 무의미한 외래 식별자들이 주 식별자 영역에 들어가는 경우도 많이 있음.


출처 - http://cafe.naver.com/sybaseealab/375


===================================================================================


ER-Win을 쓰다보면..

Identifying Relationship과 Non-Identifying Relationship이 있는데..

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 이냐 이것하고 혼돈을 하실수 있으신데 이것하고는 의미가 다릅니다. 

출처 - http://blog.naver.com/ycw7701?Redirect=Log&logNo=40015913097


===================================================================================



출처 - http://cafe.naver.com/sybaseealab/107

===================================================================================