본문 바로가기

이론/DB

[DB] 식별, 비식별관계와 강한,약한 개체

인트로

안녕하세요. 오늘은 데이터베이스의 식별/비식별 관계, 강한/약한 개체에 대해 알아보겠습니다.

데이터베이스를 모델링하고 E-R다이어그램을 그리려면 두 개체의 식별 / 비식별 관계를 구분해야합니다.

아래는 강한개체와 약한관계, 식별관계, 비식별관계에 대한 설명입니다.


1) 강한 개체와 약한 개체 

강한개체: 누구에게도 지배되지 않는 독립적인 개체입니다.(고객과 관계에서, '고객')  
약한개체: 개체의 존재가 다른 개체의 존재 여부에 달려있는 개체입니다.(고객과 계좌에서 '관계')

[예시] 고객과 계좌 관계에서 계좌는 고객이 계좌를 만들지 않으면 개체가 생성되지 않습니다.

따라서 '고객' 은 강한 개체이고, '계좌'는 약한 개체입니다.

 

2) 식별관계 

부모 키를 참조하는 자식키가 '기본키(PK)'이면 식별관계입니다.

개체에는 위와 같이 강한개체와 약한 개체가 있는데, 강한 개체는, 다른 엔티티와 관계를 가질 때 다른 엔터티에 기본키를 공유합니다.

식별관계는 '실선'으로 표시합니다.

[식별 관계 예시]

고객과 계좌 엔터티에서 고객은 독립적으로 존재할 수 있는 강한 개체입니다.

고객엔터티의 기본키인 회원 ID를 계좌 엔터티의 기본키로 공유하는 것을 '식별관계'라고 합니다.
아래의 예시에서 COMPANY와 PHONE은 식별관계입니다.

식별 관계의 E-R다이어그램

 

3) 비식별관계
비식별관계는 강한개체의 기본키(PK)를 다른 엔터티의 기본키가 아닌 일반 키로 관계를 가지는 것입니다.

즉, 부모 키를 참조하는 자식키가 '일반키'이면 비식별관계입니다.

[비식별관계의 예시]

아래는 비식별관계의 예시입니다. CLASS의 ClassName이 SECTION의 기본키가 아닌 '일반키'로  들어가있는 것을 볼 수 있습니다.

 

비식별관계의 E-R다이어그램

 

이상 포스팅을 마칩니다. 

감사합니다 :D