관계와 관계 표기
관계는 엔터티 인스턴스 사이의 업무상 연관입니다. 엔터티 사이에 정의한 관계가 실제 개별 인스턴스끼리의 연결로 나타나는 것을 관계 페어링이라고 합니다. 예를 들어 '개발부–김사원'이 하나의 페어링입니다.
ERD에서 관계를 표기할 때는 관계명·관계차수·관계선택사양 세 가지를 나타냅니다. 관계는 양방향으로 읽으므로 '부서에는 사원이 소속된다'와 '사원은 부서에 소속된다'처럼 양쪽 관점을 모두 확인합니다.
회원마다 프로필 하나
신설 부서는 사원이 없을 수 있음
수강 엔터티로 풀어 구현
- 관계명관계명 (Membership)
두 엔터티가 어떤 업무 의미로 연결되는지 동사로 적습니다. 예: 등록하다 / 등록되다
- 차수관계차수 (Cardinality)
한 인스턴스에 상대 인스턴스가 최대 몇 개 연결되는지입니다. 1:1 · 1:M · M:N
- 선택관계선택사양 (Optionality)
연결이 반드시 있어야 하는지(필수), 없어도 되는지(선택)입니다.
'관계빈도'처럼 그럴듯한 이름이 보기에 섞여 나오지만 관계 표기 요소가 아닙니다. 표기 요소는 관계명·차수·선택사양 세 가지만 기억합니다.
아래는 고객이 고객센터에 문의를 등록하는 업무를 IE(까마귀발) 표기로 그린 예입니다. 고객과 문의는 엔터티, 등록하다·등록되다는 관계명이고, 고객 11번과 문의 501번이 실제로 연결된 한 쌍은 관계 페어링입니다.
||는 정확히 1, o{는 0 이상을 뜻합니다.관계는 성격에 따라 존재에 의한 관계와 행위에 의한 관계로 나눕니다. 다만 ERD는 이 둘을 다른 선으로 구분해 그리지 않습니다(UML 클래스 다이어그램은 연관·의존 관계를 구분합니다).
| 구분 | 뜻 | 예 |
|---|---|---|
| 존재에 의한 관계 | 한쪽이 존재하는 것만으로 성립 | 부서에 사원이 소속된다 |
| 행위에 의한 관계 | 어떤 업무 행위가 일어나야 성립 | 고객이 상품을 주문한다 |