브리의 성장기

[SQL] ERD 식별관계, 비식별관계 의 개념과 차이점 본문

공부하기/SQL

[SQL] ERD 식별관계, 비식별관계 의 개념과 차이점

브리(BRIE) 2022. 9. 16. 19:49
728x90

식별관계, 비식별관계에 대해 알아보기 전에 ERD란 무엇일까?

ERD(Entity Relationship Diagram)는 

개체-관계 모델. 테이블간의 관계를 설명해주는 다이어그램이라고 볼 수 있으며,
이를 통해 프로젝트에서 사용되는 DB의 구조를 한눈에 파악할 수 있다. 즉, 쉽게말해 
모델 구조도라고 생각하면 된다.

Entity는 또 다른 Entity와 다양한 관계를 맺고 있다.
오늘은 특이나 헷갈렸던 개념 '식별관계' 와 '비식별관계' 의 차이에 대해 알아보았다.



식별관계란
부모로부터 받은 식별자를 자식 엔터티의 주식별자(PK)로 이용하는 경우이다.
반드시 부모엔터티가 생성되어야 자기 자신의 엔터티가 생성된다. (내 PK가 네 PK)

비식별관계
부모엔터티로부터 속성을 받았지만, 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성(FK)으로만 사용하는 경우이다.
아래의 경우 비식별관계로 작성한다.
- 자식 엔터티에서 받은 속성이 필수가 아니어도 무방할 경우
- 부모엔터티가 소멸될 수 있는 경우
- 자식엔터티에서 별도의 주식별자를 생성하는 것이 더 유리할 경우


식별관계와 비식별관계 비교

항목 식별관계 비식별관계
목적 강한 연결관계 표현 약한 연결관계 표현
자식 주식별자 영향 자식 주식별자의 구성에 포함됨 자식 일반속성에 포함됨
표기법 실선 표현 점선 표현
연결 고려사항 -반드시 부모엔터티 종속
-자식 주식별자구성에 부모 주식별자포함 필요
-상속받은 주식별자속성을 타 엔터티에 이전 필요
-약한 종속관계
-자식 주식별자구성을 독립적으로 구성
-자식 주식별자구성에 부모 주식별자 부분필요
-상속받은 주식별자속성을 타 엔터티에 차단 필요
-부모쪽의 관계참여가 선택관계


실제로 프로젝트를 만들땐 식별관계를 사용할지, 비식별관계를 사용할지 선택하는 것은 높은 수준의 내공을 요할 것 같다.
관계의 강/약 분석, 자식 테이블의 독립 PK 필요여부, SQL복잡도 및 개발생산성 등을 고려하여 관계를 설정해야한다.

728x90
Comments