Computer Science/SQL

SQL | 관계형 데이터베이스의 기본 관계 유형 (1:1, 1:N, M:N 관계)

올리브한입 2025. 4. 19. 01:37
반응형

https://www.expii.com/t/when-is-a-relation-a-function-4325

1:1 관계 (One-to-One)

한 테이블의 하나의 행이 다른 테이블의 정확히 하나의 행과만 연결되는 관계를 말합니다. 보통 한쪽이 다른 테이블의 기본 키 또는 유일 키를 외래 키로 참조합니다. 

위를 예시로 들어보겠습니다. 우리는 Person과 Passport 두 개의 테이블이 있습니다. 하나의 사람은 하나의 여권을 가지고, 하나의 여권은 하나의 사람에만 속합니다. 그러므로 1:1 관계의 조건을 충족합니다. 또한, Passport 테이블이 외래 키를 가지고 있어서 Person 참조(reference) 하기 때문에 화살표는 "사람 → 여권" 방향으로 향합니다. 

1:N 관계 (One-to-Many)

한 테이블의 한 행이 다른 테이블의 여러 행과 연결되는 가장 일반적인 관계입니다. "부모-자식" 구조이며, 자식 테이블이 부모의 기본 키를 외래 키(foreign key)로 가집니다.

하나의 학과(Department)는 여러 명의 교수(Professor)를 가질 수 있지만, 하나의 교수는 오직 하나의 학과에만 소속됩니다. 예를 들어, DeptID 10에 교수 3명이 소속될 수 있습니다. Professor.DeptID Department.DeptID를 참조하는 Foreign Key입니다. 즉, 자식 테이블인 Professor가 만약 Department 테이블에 없는 값 (예를 들어 99)를 사용한다면, 오류가 납니다.

M:N 관계 (Many-to-Many)

두 테이블의 여러 행이 서로 다대다로 연결되는 복잡한 관계입니다. 관계를 저장하는 교차 테이블(join table)이 필요하기 때문에, 두 테이블의 기본 키를 외래 키로 갖는 제3의 테이블을 생성이 필수입니다.

 

하나의 교수는 여러 과목을 가르칠 수 있고, 하나의 과목도 여러 교수가 맡을 수 있습니다. 그러므로 Many-to-Many (M:N) 관계가 발생하고, 이를 중간 테이블(Teaches) 으로 해결합니다.

 

반응형