← 개념서태블릿/PC 버전
1과목 · 데이터 모델링의 이해·4장

관계 (Relationship)

관계의 종류(존재/행위), 차수, 선택성, 관계 페어링을 다룹니다.

노란 밑줄 은 시험에 자주 나오는 지점✎ 는 덧붙인 필기

1. 관계란

두 개 이상의 엔터티 인스턴스 사이의 연관 또는 행위. ERD에서 선, 물리에서 외래키(FK)로 구현.

2. 관계의 종류

존재 관계

업무 규칙상 반드시 함께 존재하는 정적 연관 — "사원은 하나의 부서에 소속된다".

행위 관계

행위의 발생으로 생기는 동적 연관 — "고객이 주문을 한다".

3. 차수 (Cardinality)

표기 의미 예
1:1 한쪽 1, 다른 쪽 1 사원 ↔ 사원카드
1:M 한쪽 1, 다른 쪽 N 부서 ↔ 사원
M:N 양쪽 모두 다수 학생 ↔ 과목

M:N 은 교차 엔터티로 분해한다.

CREATE TABLE enroll (
  student_id INT REFERENCES student(student_id),
  course_id  INT REFERENCES course(course_id),
  taken_at   DATE NOT NULL,
  PRIMARY KEY (student_id, course_id)
);

4. 선택성 (Optionality)

  • 필수(mandatory): NOT NULL FK.
  • 선택(optional): NULL 허용 FK.

5. 관계 페어링

ERD의 선 = 규칙(클래스), 페어링 = 실제 연결(인스턴스).

6. 관계 읽기

양방향으로 읽힘:

"부서는 여러 사원을 보유한다." "사원은 하나의 부서에 소속된다."

7. 자주 출제되는 포인트

  • M:N은 교차 엔터티로.
  • 차수와 선택성은 별개.
  • 관계명은 동사형, 양방향 가능.
  • 존재 관계 vs 행위 관계.
  • 차수(Cardinality) ≠ 선택도(Selectivity).

8. 요약 체크리스트

  • 존재·행위 관계를 예로 설명한다.
  • 1:1, 1:M, M:N의 물리 구현을 안다.
  • 필수·선택 관계를 NULL 여부로 구분한다.
  • 관계 페어링과 관계의 차이를 안다.