1.4.1. 관계의 개념
관계는 엔터티와 엔터티 간에 맺고 있는 연관성을 의미한다. 엔터티 관계는 '존재적 관계'과 '행위적 관계'로 나눌 수 있으나 ERD에서는 이 둘을 구분하지 않고 동일하게 표현한다. (ERD에서 실선과 점선의 구분은 식별자 관계와 비식별자 관계를 구분할 때 사용한다.)
※ ERD란 데이터베이스에서 데이터간의 관계를 시각적으로 표시한 도식을 의미한다.

1. 식별자 관계: 두 개의 엔터티가 굉장히 밀접하게 연관되어 있다. (실선)
- 한 쪽 엔터티의 존재 자체가 다른 엔터티에 강한 영향을 준다. (부모 엔터티가 소멸할 때 자식 엔터티도 같이 소멸)
2. 비식별자 관계: 두 개의 엔터티가 약하게 연관되어 있다. (점선)
- 관계는 서로 맺고는 있는데, 서로 독립된 생명주기를 가진다.
(주 식별자 PK를 부모 엔터티와 다르게 설정하거나, 부모 엔터티 인스턴스에 참조값이 없는 경우에도 자식 엔터티 생성이 가능할 때)
a. 존재적 관계
- 사원과 부서의 관계처럼 일종의 소속 관계를 갖는 경우로, 존재 자체로 서로 연관성을 갖는 관계를 의미함
b. 행위적 관계
- 고객과 주문의 관계처럼 한 엔터티가 특정 행위나 이벤트를 일으킬 경우에 연관성이 발생하는 관계를 의미함
1.4.2. 표기법
1. 관계명
- 관계의 이름을 나타낸다. 존재적 관계와 행위적 관계를 기술한다.

2. 관계표기법

a. 관계차수
- 일대일, 일대다, 다대다와 같이 관계를 맺는 엔터티 인스턴스의 차수를 나타낸다.
b. 관계 선택사항
- 필수적 관계인지, 선택적 관계인지 나타낸다. (Null 가능 여부)
- 필수적 관계일 경우 Null 값을 가질 수 없고, 선택적 관계인 경우 Null 값을 가질 수 있다.
- ex. 고객과 주문의 관계에서 주문에 대해 고객은 반드시 있어야 하므로 필수적 관계이지만,
고객은 주문을 하지 않을 수도 있으므로 고객에 대해 주문은 선택적 관계이다. (이런 경우, 주문 쪽 엔터티에 O 표기를 한다)
c. 관계 읽기
- 기준 엔터티를 엔터티 이름 앞에 '한 개의' 혹은 '각'을 붙여 읽는다.
- 대상 엔터티를 관계차수에 맞춰 읽는다. (하나 또는 하나 이상)
- 관계선택사항과 관계명을 읽는다.
ex. 각 부서는 하나 이상의 사원을 선택적으로 포함한다. / 각 사원은 하나의 부서에 필수적으로 소속된다.
'SQLD' 카테고리의 다른 글
| [SQLD] 1.3. 속성 (0) | 2025.05.11 |
|---|---|
| [SQLD] 1.2. 엔터티 (5) | 2025.05.11 |
| [SQLD] 1.1. 데이터 모델링의 이해 (8) | 2025.02.07 |