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) 으로 해결합니다.
'Computer Science > SQL' 카테고리의 다른 글
SQL | 관계형 데이터베이스에서 Cartesian Product란? (0) | 2025.04.22 |
---|---|
SQL | UNION과 DIFFERENCE 정리 (0) | 2025.04.21 |
SQL | Selection과 Projection 정리 (0) | 2025.04.20 |
SQL | 관계형 데이터베이스 기본 용어 정리 (Domain, Relation, Table, Attribute, Column, Row, Tuple) (0) | 2025.04.18 |
SQL | 관계형 데이터베이스와 Key 개념 정리 (0) | 2025.04.17 |