이번 글에서는 관계형 데이터베이스와 자주 등장하는 Super Key, Candidate Key, Primary Key, Foreign Key에 대해 알아보겠습니다.
관계형 데이터베이스(Relational Database)란?
관계형 데이터베이스(RDB)는 데이터를 테이블(table) 형식으로 저장하고, 각 테이블 간의 관계를 통해 데이터를 구조화하는 방식의 데이터베이스입니다. 여기서 "관계(Relation)"는 수학에서의 관계(relation)에서 유래했으며, 실제로는 테이블을 의미합니다.
테이블(Table) | 데이터를 저장하는 구조. 한 개체(예: 학생, 주문 등)를 표현 |
행(Row / Tuple) | 테이블 안의 한 줄, 하나의 레코드 |
열(Column / Attribute) | 각 행의 속성 (예: 이름, 이메일 등) |
기본 키(Primary Key) | 각 행을 고유하게 식별 |
외래 키(Foreign Key) | 다른 테이블의 기본 키를 참조하여 관계 형성 |
Key란?
Key는 테이블 내의 데이터를 고유하게 식별하고, 테이블 간 관계를 설정하며, 데이터 무결성을 유지하기 위한 핵심 요소입니다.
Super Key (슈퍼키)
- 정의: 테이블의 각 행을 고유하게 식별할 수 있는 속성들의 집합
- 특징: 유일성 보장, 단 꼭 최소일 필요는 없음
SSN | LastName | FirstName |
34 | Simpson | Homer |
56 | Simpson | Marge |
78 | Smithers | Marge |
99 | Simpson | Homer |
이때, 슈퍼키는 SSN, SSN + FirstName, SSN + LastName, SSN + FirstName + LastName 이 될 수 있습니다. 그러나, LastName은 중복 값이 있으므로 슈퍼키의 조건을 충족하지 못합니다. LastName + FirstName 또한 Simpson +. Homer가 중복되므로 조건을 충족하지 못합니다.
즉, 슈퍼키는 유일성을 만족하면 됩니다. 하나의 키로 특정 행을 바로 찾을 수 있는 것이 유일성을 만족하는 요건입니다.
Candidate Key (후보키)
- 정의: Super Key 중에서도 최소한의 속성으로 구성된 키
- 특징: 하나의 테이블에 여러 개 존재 가능
위의 테이블을 예시로 들면, SSN가 후보키의 요건을 충족합니다. 후보키는 관계형 데이터 베이스의 관계형 모델에서 슈퍼키 중 더 이상 줄일 수 없는 형태를 가진 모든 키를 뜻합니다.
Primary Key (기본키)
- 정의: 후보키 중에서 대표로 선택된 키
- 특징:
- 자동으로 NOT NULL + UNIQUE 제약조건 적용
- 한 테이블당 하나만 존재
위의 테이블에서는 SSN가 기본키의 요건을 충족합니다.
Foreign Key (외래키)
- 정의: 다른 테이블의 Primary Key를 참조하는 키
- 특징:
- 테이블 간 관계를 설정
- 참조 무결성을 유지
즉, 서로 다른 두 릴레이션 간에 한 릴레이션의 특정 속성이 다른 릴레이션의 특정 속성을 참조할 때의 참조된 속성을 뜻합니다.
위의 예시는 학과(Department)와 직원(Employee) 간의 관계를 보여주는 데이터 구조입니다. 여기서 Employees.DeptID는 Departments.DeptID를 참조하고 있으니까, 바로 FOREIGN KEY의 대표적인 예가 될 수 있습니다.
'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 | 관계형 데이터베이스의 기본 관계 유형 (1:1, 1:N, M:N 관계) (0) | 2025.04.19 |
SQL | 관계형 데이터베이스 기본 용어 정리 (Domain, Relation, Table, Attribute, Column, Row, Tuple) (0) | 2025.04.18 |