관계형 데이터베이스의 제약조건과 키
관계형 데이터베이스에서 키는 데이터를 고유하게 식별하고, 테이블 간의 관계를 정의하며, 데이터 무결성을 유지하기 위해 사용됩니다. 데이터베이스 설계에서 필수적인 요소로 다양한 키 유형과 그 특징을 이해하는 것이 중요합니다.
1. 키(Key)란?
- 정의:
- 데이터베이스에서 튜플(Tuple)을 식별하거나 정렬 기준을 제공하기 위한 속성(Attribute) 또는 속성들의 집합.
- 데이터를 고유하게 식별하고 테이블 간 관계를 유지하며 데이터의 무결성을 보장.
2. 키의 종류와 설명
키 종류 | 설명 |
---|
후보 키 | - 테이블에서 유일성(Unique)과 최소성(Minimality)을 만족하는 속성들의 집합. - 기본 키로 선택될 수 있는 속성들. |
기본 키 | - 후보 키 중에서 선택된 하나의 키. - 테이블에서 튜플을 유일하게 식별. - 중복이나 NULL 값을 가질 수 없음. |
대체 키 | - 후보 키 중 기본 키로 선택되지 않은 나머지 키. |
슈퍼 키 | - 유일성을 만족하지만 최소성은 만족하지 못하는 속성들의 집합. - 후보 키에 추가 속성을 포함한 확장된 키. |
외래 키 | - 다른 테이블의 기본 키를 참조하는 속성. - 테이블 간의 관계를 정의하고 무결성을 유지. |
3. 키의 조건
(1) 유일성(Unique)
- 하나의 키 값으로 하나의 튜플만 식별할 수 있어야 함.
- 예: 학번(학생 고유 식별자).
(2) 최소성(Minimality)
- 키를 구성하는 속성 중 불필요한 속성이 없어야 함.
- 예: 학번은 단독으로 학생을 식별 가능(추가 속성 불필요).
4. 각 키의 예시
(1) 후보 키 (Candidate Key)
- 정의:
- 테이블에서 기본 키로 선택될 수 있는 모든 속성들의 집합.
- 조건:
- 예:
- 학생 테이블에서 학번, 주민등록번호는 모두 후보 키가 될 수 있음.
(2) 기본 키 (Primary Key)
- 정의:
- 특징:
- 중복된 값을 가질 수 없으며, NULL 값을 허용하지 않음.
- 예:
(3) 대체 키 (Alternate Key)
- 정의:
- 후보 키 중에서 기본 키로 선택되지 않은 나머지 키.
- 예:
- 학번이 기본 키로 선택되었다면 주민등록번호는 대체 키.
(4) 슈퍼 키 (Super Key)
- 정의:
- 유일성을 만족하는 속성들의 집합으로, 필요 이상의 속성을 포함할 수 있음.
- 예:
- 학번, 주민등록번호, 이름을 묶은 속성 집합.
(5) 외래 키 (Foreign Key)
- 정의:
- 다른 테이블의 기본 키를 참조하여 테이블 간의 관계를 정의하는 속성.
- 특징:
- 참조 무결성을 보장(참조 대상이 없는 값은 삽입 불가).
- 예:
- 수강 테이블의 학번(학생 테이블의 기본 키를 참조).
5. 예제: 학생 테이블과 수강 테이블
학생 테이블
학번 | 이름 | 주민번호 | 전화번호 |
---|
1001 | 홍길동 | 900101-1234567 | 010-1234-5678 |
1002 | 김철수 | 910201-2345678 | 010-5678-1234 |
수강 테이블
- 학생 테이블:
- 기본 키: 학번.
- 후보 키: 학번, 주민번호.
- 대체 키: 주민번호.
- 수강 테이블:
- 기본 키: (학번, 과목명).
- 외래 키: 학번 (학생 테이블의 학번 참조).
6. 관계형 데이터베이스에서 키의 역할
- 데이터 무결성 보장:
- 키를 사용하여 중복 데이터와 비일관성을 방지.
- 테이블 간의 관계 정의:
- 기본 키와 외래 키를 통해 테이블 간의 연결성을 표현.
- 데이터 검색 및 정렬 기준:
- 키를 사용하여 데이터를 효율적으로 검색하고 정렬.
7. 시험 대비 주요 포인트
- 각 키의 정의와 특징:
- 후보 키, 기본 키, 대체 키, 슈퍼 키, 외래 키.
- 조건:
- 예제 분석:
- 키 간 관계:
- 슈퍼 키 > 후보 키 > 기본 키 > 대체 키.
정리:
키는 관계형 데이터베이스에서 데이터 무결성과 관계 표현의 핵심입니다. 각 키의 정의와 특징을 명확히 이해하고, 예제를 통해 실제 데이터베이스에서 어떻게 적용되는지 파악하는 것이 중요합니다.