Skip to content

엔터티 사이의 관계: 존재 관계 vs 행위 관계 ​

**엔터티(Entity)**는 데이터베이스로 관리하고 싶은 대상(사람, 물건, 사건 등)이고, **관계(Relationship)**는 그 엔터티들 사이의 업무적 연관성입니다. 관계는 크게 두 가지 성격으로 나뉩니다.

존재 관계: 가만히 있어도 성립하는 관계 ​

어떤 행위 없이도, 존재 자체만으로 당연히 연결되는 관계입니다. 주로 소속/포함 구조에서 나타납니다.

  • 부서 - 사원: 입사하는 순간 이미 어느 부서엔가 소속됩니다.
  • 학부 - 학과: 학과는 태생부터 특정 학부 아래에 있습니다.

행위 관계: 이벤트가 일어나야 생기는 관계 ​

두 엔터티가 가만히 있을 땐 아무 관계가 없다가, 특정 행위(이벤트)가 발생해야 만들어지는 관계입니다.

  • 고객 - 주문: 고객이 "구매하는 행위"를 해야 주문 데이터가 생깁니다.
  • 학생 - 수강신청: "신청하는 행위"가 있어야 데이터가 생깁니다.

M:N 관계는 그대로 테이블이 될 수 없다 ​

논리적으로는 다대다(M:N) 관계를 그릴 수 있지만, 실제 테이블(물리 모델)로는 M:N을 직접 구현할 수 없습니다. 그래서 중간에 **교차 엔터티(Intersection Entity)**를 하나 끼워서 1:N + 1:N 두 개로 쪼갭니다. 대부분의 "행위 관계"가 바로 이 교차 엔터티 형태로 실체화됩니다. (학생 -N:M- 과목 → 학생 -1:N- 수강신청 -N:1- 과목)

자기 참조 관계 ​

엔터티가 자기 자신을 참조하는 관계도 있습니다. 예를 들어 사원 테이블에서 "이 사람의 상사도 사원이다" 같은 계층 구조를 표현할 때 씁니다. 회사 조직도처럼 같은 종류의 데이터끼리 위아래 관계를 만들 때 쓰는 정상적인 모델링 방식입니다.

참고: 개인 Notion 학습 노트