ERD 정리
관계선의 종류
실선(Identifying) : 식별관계
- 부모테이블의 PK가 자식테이블의 FK/PK가 되는 경우
- 부모가 있어야 자식이 생기는 경우
- 부모 자식 관계에서 자식이 부모의 키를 외래키로 참조
점선(Non-Identifying) : 비식별관계
- 부모테이블의 PK가 자식테이블의 일반속성이 되는 경우
- 부모가 없어도 자식이 생기는 경우
- 부모 자식 관계에서 자식이 부모의 키를 일반 속성으로 참조
항목 | 식별자 관계 | 비식별자 관계 |
목적 | 강한 연결관계 표현 | 약한 연결관계 표현 |
자식 주식별자 영향 | 자식 주식별자의 구성에 포함됨 | 자식 일반 속성에 포함됨 |
표기법 | 실선 표현 | 점선 표현 |
연결 고려사항 | - 반드시 부모엔티티 종속 - 자식 주식별자 구성에 부모 주식별자 포함 필요 - 상속받은 주식별자 속성을 타 엔티티에 이전 필요 |
- 약한 종속관계 - 자식 주식별자 구성을 독립적으로 구성 - 자식 주식별자 구성에 부모 주식별자 부분 필요 - 상속받은 주식별자 속성을 타 엔티티에 차단 필요 - 부모쪽의 관계 참여가 선택관계 |
기호의 종류
- |: 1개 / 실선은(dash) '1'을 나타낸다.
- ∈ : 여러개 / 까마귀 발(crow's foot or Many)은 '다수' 혹은 '그 이상'을 나타낸다.
- ○ : 0개 / 고리(ring or Optional)은 '0'을 나타낸다.
기호들의 조합
Type1 ( 실선과 실선 ) | 정확히 1 ( 하나의 A는 하나의 B로 이어져 있다. ) |
Type2 ( 까마귀발 ) | 여러개 ( 하나의 A는 여러개의 B로 구성되어 있다. ) |
Type3 ( 실선과 까마귀발 ) | 1개 이상 ( 하나의 A는 하나 이상의 B로 구성되어 있다. ) |
Type4 ( 고리와 실선 ) | 0 혹은 1 ( 하나의 A는 하나 이하의 B로 구성되어 있다. ) |
Type5 ( 고리와 까마귀발 ) | 0개 이상 ( 하나의 A는 0또는 하나 이상의 B로 구성되어 있다. ) |
- 기호의 조합은 보통 그림 예제의 Type1, Type3, Type4, Type5 를 자주 사용하며, 사용하는 ERD 프로그램에 따라 조합 방식이 다를 수 있다.
- ex ) 상품 테이블과 상품의 옵션 테이블의 관계를 정의할 때, 상품의 옵션은 없을 수도 있고, 여러개가 있을 수 있기 때문에, 그림 예제 Type5로 표현이 가능하다.
- ( 1 : 1 ) 관계 : 부모는 하나의 자식 있다.
- ( 1 : N ) 관계 : 부모는 하나 이상의 자식이 있다.
- ( N : N ) 관계 : 하나 이상의 부모와 하나 이상의 자식이 있다.
- ( 1 : 1(o) ) 관계 : 부모는 하나의 자식이 있을 수도 있다. ( 없을 수도 있다. )
- ( 1 : N(o) ) 관계 : 부모는 여러개의 자식이 있을 수도 있다. ( 없을 수도 있다. )
참고 자료
📋 데이터 모델링 개념 & ERD 다이어그램 작성 💯 총정리
데이터 모델링 이란? 데이터 모델링이란 정보시스템 구축의 대상이 되는 업무 내용을 분석하여 이해하고 약속된 표기법에 의해 표현하는걸 의미한다. 그리고 이렇게 분석된 모델을 가지고 실제
inpa.tistory.com
2. https://eyecandyzero.tistory.com/246
DB ERD 관계선(실선, 점선)과 기호에 대한 설명
DBA는 아니지만, 프로그램을 잘 만들기 위해서 완성된 ERD를 이해하고, 나아가 간단한 모델링은 직접 만들줄 알야한다고 생각한다. ERD를 이해하기 위한 첫 걸음이자 가장 중요하다 할 수있는 부분
eyecandyzero.tistory.com
3. https://parkhyeokjin.github.io/others/2018/11/07/DbERD.html
DB ERD 관계선 정리
parkhyeokjin.github.io