SQLD, D-18 엔터티 관계유형 정리

야아니·2025년 10월 29일

SQLD

목록 보기
1/11
post-thumbnail

1️⃣SQL 관계 유형(Relationship) 정리

1:1 (One-to-One)

  • 정의: 한 엔티티의 한 레코드가 다른 엔티티의 한 레코드와만 대응
  • 표현: (0..1, 1) 또는 (1, 1)
  • 구현: FK + UNIQUE 제약조건
  • 예시: Person ↔ Passport
  • 한 사람은 여권이 0개 또는 1개
  • 한 여권은 반드시 한 사람에게만 속함

1:N (One-to-Many)

  • 정의: 한 엔티티의 한 레코드가 다른 엔티티의 여러 레코드와 연결
  • 표현: (1, 0..*)
  • 구현: "다" 쪽 테이블에 FK
  • 예시: Customer ↔ Orders
  • 한 고객은 여러 주문 가능
  • 한 주문은 반드시 한 고객 소속

N:N (Many-to-Many)

  • 정의: 한 엔티티의 여러 레코드가 다른 엔티티의 여러 레코드와 연결
  • 표현: (0..*, 0..*)
  • 구현: 중간 테이블 필요
  • 예시: Student ↔ Course
  • 한 학생은 여러 강의를 수강 가능
  • 한 강의는 여러 학생이 수강 가능

정리

  • 1:1 → FK + UNIQUE
  • 1:다 → FK만으로 충분
  • 다:다 → 중간 테이블 필요

2️⃣관계 차수 정리

보이는 것처럼 세로 막대는 1을, 원은 0을, < 모양은 N(多)를 나타낸다.

예시

  • 이러한 테이블이 있다고 가정해보자

위 관계도에서는 한 명의 고객이 여러개의 계좌번호를 가질 수 있고(1 or N)
계좌번호를 가지지 않을 수 도 있다.(0)
SQLD 문제식으로 해석해 보자면

  • 고객테이블은 계좌테이블의 부모테이블이다.
  • 계좌테이블은 고객테이블의 자식테이블이다.
  • 하나의 고객은 0 ~ N의 계좌를 가질 수 있다.
  • 부모테이블의 PK를 자식테이블에서 PK로 사용하고 있다.
profile
세계평화를 원하는 사람입니다.

0개의 댓글