CS
[SQLD] 관계(Relationship)
2026년 02월 10일 01:00
SQLD 1과목 – 관계(Relationship)
관계(Relationship)란?
관계(Relationship) 는 두 엔터티(Entity) 간에 존재하는 업무적 연관성을 의미한다.
- 관계는 엔터티 단위가 아니라 인스턴스(행) 단위에서 성립 여부를 판단
- 엔터티의 정의나 범위가 바뀌면 관계의 종류·방향도 달라질 수 있음
관계의 종류
① 존재적 관계
- 한 엔터티의 존재 여부가 다른 엔터티에 영향을 미치는 관계
- 주로 부모–자식 구조
- 어떤 엔터티는 다른 엔터티가 있어야만 존재 가능
예
- 부서 – 사원 → 부서가 사라지면 소속 사원의 존재에 영향
② 행위적 관계
- 업무 행위에 의해 새로운 엔터티가 생성되거나 변경되는 관계
- 어떤 행동의 결과로 데이터가 발생
예
- 고객 – 주문 → 고객의 “주문한다”라는 행위로 주문 엔터티 생성
📌 주의
- ERD에서는 존재적/행위적 관계를 구분하지 않음
- 개념 이해용 분류일 뿐
관계의 구성 요소 ⭐⭐
① 관계명(Relationship Name)
- 관계의 의미를 표현
- 동사형으로 표현
예
- 고객 (주문한다) 주문
- 학생 (수강한다) 강의
- 부서 (배치한다) 사원
② 차수(Cardinality)
- 두 엔터티가 얼마나 많이 연결되는지
- 인스턴스 간의 수량 관계를 의미
1 : 1 (일대일)
- 한 인스턴스가 하나의 인스턴스와만 연결
예
- 사원 – 사원증
- 국가 – 수도
1 : N (일대다)
- 하나는 여러 개와 연결 가능
예
- 부서 – 사원
- 고객 – 계좌
N : M (다대다)
- 양쪽 모두 여러 개와 연결
특징
- 조인 시 카테시안 곱 위험
- 실제 모델링에서는
- 연결(교차) 엔터티 추가
- N:M → 1:N + 1:N으로 분해
예
- 학생 – 강의
- 직원 – 프로젝트
선택성(Optionality)
선택성은 관계가 반드시 존재해야 하는지 여부를 나타낸다.
① 필수 관계 (Mandatory)
- 반드시 상대 엔터티와 관계를 가져야 함
예
- 사원 → 부서
- 계좌 → 고객
👉 계좌가 있으면 반드시 고객이 있어야 함
② 선택 관계 (Optional)
- 관계가 없어도 엔터티 존재 가능
예
- 부서 → 사원
- 고객 → 계좌
👉 부서는 사원이 없어도 존재 가능
📌 중요
- 같은 두 엔터티라도 관계의 방향에 따라 필수/선택이 달라질 수 있음
ERD에서의 관계 표현

① 차수 표현
IE 표기법
- | : 1
- |< : N
Barker 표기법
- IE와 동일하게 < 사용
- | 기호는 사용하지 않음 (식별/비식별 관계 표현에 사용되기 때문)
② 필수 / 선택 관계 표현
IE 표기법
- 필수 관계: 원이 없음
- 선택 관계: 원을 그림
Barker 표기법
- 필수 관계: 실선
- 선택 관계: 점선
