인트로
안녕하세요. 오늘은 데이터베이스의 식별/비식별 관계, 강한/약한 개체에 대해 알아보겠습니다.
데이터베이스를 모델링하고 E-R다이어그램을 그리려면 두 개체의 식별 / 비식별 관계를 구분해야합니다.
아래는 강한개체와 약한관계, 식별관계, 비식별관계에 대한 설명입니다.
1) 강한 개체와 약한 개체
강한개체: 누구에게도 지배되지 않는 독립적인 개체입니다.(고객과 관계에서, '고객')
약한개체: 개체의 존재가 다른 개체의 존재 여부에 달려있는 개체입니다.(고객과 계좌에서 '관계')
[예시] 고객과 계좌 관계에서 계좌는 고객이 계좌를 만들지 않으면 개체가 생성되지 않습니다.
따라서 '고객' 은 강한 개체이고, '계좌'는 약한 개체입니다.
2) 식별관계
부모 키를 참조하는 자식키가 '기본키(PK)'이면 식별관계입니다.
개체에는 위와 같이 강한개체와 약한 개체가 있는데, 강한 개체는, 다른 엔티티와 관계를 가질 때 다른 엔터티에 기본키를 공유합니다.
식별관계는 '실선'으로 표시합니다.
[식별 관계 예시]
고객과 계좌 엔터티에서 고객은 독립적으로 존재할 수 있는 강한 개체입니다.
고객엔터티의 기본키인 회원 ID를 계좌 엔터티의 기본키로 공유하는 것을 '식별관계'라고 합니다.
아래의 예시에서 COMPANY와 PHONE은 식별관계입니다.
3) 비식별관계
비식별관계는 강한개체의 기본키(PK)를 다른 엔터티의 기본키가 아닌 일반 키로 관계를 가지는 것입니다.
즉, 부모 키를 참조하는 자식키가 '일반키'이면 비식별관계입니다.
[비식별관계의 예시]
아래는 비식별관계의 예시입니다. CLASS의 ClassName이 SECTION의 기본키가 아닌 '일반키'로 들어가있는 것을 볼 수 있습니다.
이상 포스팅을 마칩니다.
감사합니다 :D
'이론 > DB' 카테고리의 다른 글
[MySQL] Mac MySQL 포트 3306 변경 (0) | 2021.04.18 |
---|---|
[IT] 데이터 그립(DataGrip) 학생 인증하고 무료로 사용하기 (0) | 2021.04.17 |
[DB][SQL] SQL의 셀프조인 (0) | 2020.03.29 |
[DB] 데이터베이스 애트리뷰트 종류(단순, 복합, 유도, NULL) (0) | 2020.03.29 |
[DB] 데이터베이스의 1:1, 1:N, N:M 관계 (1) | 2020.03.29 |