데이터베이스에서 "키(Key)"는 데이터를 고유하게 식별하거나, 테이블 간 관계를 맺는 중요한 도구
✅ 데이터베이스 키 종류 정리
키 종류 정의 예시 특징
슈퍼키 (Super Key) | 튜플(행)을 유일하게 식별할 수 있는 속성 집합 | 학번, 학번+이름, 주민번호 등 | 유일성을 만족하지만 최소성은 아님 |
후보키 (Candidate Key) | 슈퍼키 중에서 속성이 최소성을 만족하는 것 | 학번, 주민번호 등 | 최소성 유일성 만족, 여러 개 존재 가능 |
기본키 (Primary Key) | 후보키 중에서 대표로 선택된 키 | 학번 | NOT NULL + (유일성)UNIQUE, (최소성)중복/NULL 불가 |
대체키 (Alternate Key) | 후보키 중 기본키로 선택되지 않은 나머지 | 주민번호 | 기본키가 아니지만 유일한 값 |
외래키 (Foreign Key) | 다른 테이블(릴레이션)의 기본키를 참조하는 키 | 학생(학과코드) → 학과(학과코드) | 참조 무결성 유지, 관계 설정 역할 |
🔍 키 종류별 자세한 설명
🔹 1. 슈퍼키 (Super Key)
- 행을 유일하게 식별할 수 있는 하나 이상의 속성
- 예: (학번), (주민번호), (학번 + 이름) 등
✅ 유일하면 모두 슈퍼키지만, 최소성은 만족하지 않음
🔹 2. 후보키 (Candidate Key)
- 슈퍼키 중에서 속성 수가 최소인 것
- 예: 학번, 주민번호
→ 둘 다 하나만으로 유일성, 최소성 만족, 그래서 후보키 2개
✅ 후보키는 여러 개 존재 가능
❗중복 ❌, NULL ❌
🔹 3. 기본키 (Primary Key)
- 후보키 중에서 대표로 선택된 키
- 테이블의 주 식별자로 사용됨
CREATE TABLE 학생 (
학번 CHAR(10) PRIMARY KEY,
이름 VARCHAR(20),
주민번호 CHAR(13) UNIQUE NOT NULL
);
✅ 하나의 테이블에 하나만 존재 가능
✅ 자동으로 NOT NULL + UNIQUE 적용됨
🔹 4. 대체키 (Alternate Key)
- 후보키 중에서 기본키로 선택되지 않은 것
- 예: 주민번호 (학번이 기본키로 선택됐을 경우)
✅ 여전히 유일함
❗기본키는 아니지만 중요한 식별자
🔹 5. 외래키 (Foreign Key)
- 다른 테이블의 기본키를 참조하는 키
- 두 테이블 간 **관계(릴레이션)**을 설정
CREATE TABLE 수강 (
학번 CHAR(10),
과목코드 CHAR(10),
FOREIGN KEY (학번) REFERENCES 학생(학번)
);
✅ 참조 무결성 유지
✅ 부모 테이블의 값만 가질 수 있음
🧠 요약 정리표
키 종류 역할 유일성 NULL 허용 복수 가능 설명 요약
키(Key) | 역할 | 유일성 | NULL | 복수 가능 | 설명 요약 |
슈퍼키 | 유일성 식별 | ✅ | 가능 | ✅ | 유일하기만 하면 OK |
후보키 | 최소성 유일성 | ✅ | ❌ | ✅ | 슈퍼키 중 최소 집합 |
기본키 | 대표 후보키 | ✅ | ❌ | ❌ | 후보키 중 선택된 것 |
대체키 | 예비 후보키 | ✅ | ❌ | ✅ | 기본키 제외 후보키 |
외래키 | 참조 관계 | ❌ (상대 테이블 기준) | 가능 | ✅ | 다른 테이블의 기본키 참조 |
'정보처리기사 > 실기' 카테고리의 다른 글
[정보처리기사 실기] 기억장치 전략 3가지(반입, 배치, 교체) (0) | 2025.04.26 |
---|---|
[정보처리기사 실기] 프로세스 스케줄링 종류 (비선점/선점) (0) | 2025.04.24 |
[정보처리기사 실기] 정규화 단계 (1) | 2025.04.20 |
[정보처리기사 실기] 애플리케이션 테스트 레벨 4가지 (0) | 2025.04.19 |
[정보처리기사 실기] 결합도(Coupling)와 응집도(Cohesion) (0) | 2025.04.18 |