📌 키(Key)란?
데이터베이스에서 Key(키)는 각 행(Row, 튜플)을 고유하게식별할 수 있는 속성(또는 속성들의 집합)을 말합니다. 즉, 어떤 행이 누구인지 구별할 수 있도록 도와주는 열(Column)입니다.
📌 키의 2가지 핵심 성질
키를 이해할 때는 두 가지 중요한 속성을 알아야 합니다.
✅ 유일성 (Uniqueness)
각 키가 테이블 내의 모든 튜플을 고유하게 식별할 수 있어야 한다는 특성. 즉, 동일한 값이 중복되면 안 된다는 뜻
✅ 최소성 (Minimality)
꼭 필요한 속성만으로 구성되어야 함 즉, 불필요한 속성이 없어야 한다는 뜻
📌 키의 종류
1️⃣ 슈퍼키 (Super Key)
- 정의: 하나의 릴레이션(테이블)에서 튜플을 유일하게 식별할 수 있는 속성 또는 속성들의 집합
- 유일성: O, 최소성: X
- 불필요한 속성이 포함될 수 있음
🔹 예시
(주민등록번호 + 이름)
- 주민등록번호 → 중복이 불가능하므로 이것만으로도 튜플(행)을 고유하게 식별할 수 있음
- 이름 → 여러 사람이 같은 이름을 가질 수 있으므로, 이 속성만으로는 튜플을 구별할 수 없음
- 주민등록번호 + 이름 → 이 조합은 당연히 튜플을 고유하게 식별할 수 있음. 단, 이름이라는 "불필요한 속성"이 추가된 상태
- 최소성 X 이므로 슈퍼키는 되지만, 후보키는 아님.
2️⃣ 후보키 (Candidate Key)
- 정의: 슈퍼키 중에서 최소성을 만족하는 키
- 유일성: O, 최소성: O
- 테이블에 하나 이상 존재할 수 있음
🔹 예시
주민등록번호, 학번 등
- 중복이 없고, 꼭 필요한 속성만으로 이루어짐
3️⃣ 기본키 (Primary Key)
- 정의: 후보키 중에서 하나를 선택하여 대표로 지정한 키
- 테이블의 대표 식별자
- NULL 불가, 중복 불가
- 유일성: O, 최소성: O (후보키이기 때문)
🔹 예시
학번, 사번, 고객 ID 등
4️⃣ 대체키 (Alternate Key)
- 정의: 후보키 중에서 기본키로 선택되지 않은 나머지 후보키
- 유일성: O, 최소성: O
🔹 예시
기본키로 학번이 선택되었다면, 주민등록번호는 대체키가 됨
5️⃣ 외래키 (Foreign Key)
- 정의: 한 테이블(A)의 특정 속성이 다른 테이블(B)의 기본키를 참조하고 있을 때, A의 그 속성을 외래키라고 함.
- 테이블 간의 연결(관계)을 위한 키
- 유일성: X, 최소성: X
- NULL을 가질 수 있음 (단, 제약 조건에 따라 다름)
🔹 예시
주문 테이블에서 고객 ID는 고객 테이블의 기본키를 참조함
2024년 3회 정보처리기사 실기 기출문제
문제
다음은 데이터베이스에 키(Key)에 대한 문제이다. 아래 내용을 읽고 알맞는 답을 <보기>에서 찾아 각 번호에 해당하는 정답을 기호로 작성하시오.
1. 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미함
2. 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합으로, 유일성과 최소성을 모두 만족시켜야 함
3. 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 의미함
4. 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로, 유일성은 만족하지만, 최소성은 만족하지 못함
<보기>
ㄱ. 슈퍼키
ㄴ. 외래키
ㄷ. 대체키
ㄹ. 후보키
ㅁ. 기본키
ㅂ. 필드키
정답
(1) ㄴ. 외래키
(2) ㄹ. 후보키
(3) ㄷ. 대체키
(4) ㄱ. 슈퍼키
해설
(1) ㄴ. 외래키 : 한 테이블(A)의 특정 속성이 다른 테이블(B)의 기본키를 참조하고 있을 때, A의 그 속성을 외래키라고 합니다.
(2) ㄹ. 후보키 : 한 테이블에서 각 튜플(행)을 고유하게 식별할 수 있는 최소한의 속성 또는 속성들의 집합입니다. 유일성(값이 중복되지 않음)과 최소성(속성을 하나라도 제거하면 고유 식별이 불가)을 만족합니다. 이 중 하나를 선택해 기본키로 사용합니다.
(3) ㄷ. 대체키 :후보키가 여러 개 있을 때, 기본키로 선택되지 않은 나머지 후보키들을 말합니다. 유일성과 최소성 모두 만족합니다. 단지 기본키로 선택되지 않았을 뿐, 다른 후보키와 동등한 자격을 가집니다.
(4) ㄱ. 슈퍼키 : 테이블 내에서 각 튜플을 고유하게 식별할 수 있는 속성들의 집합입니다. 유일성은 만족하지만 최소성은 만족하지 않을 수 있습니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
'코딩일기 > 자격증' 카테고리의 다른 글
[정보처리기사] 모듈의 결합도(Coupling)와 응집도(Cohesion) | 정보처리기사 기출문제 (0) | 2024.07.26 |
---|---|
[정보처리기사] 소프트웨어 개발 보안 | 대표적인 보안 공격 기법 | 서비스 공격 유형 | 정보처리기사 실기 기출 문제 (1) | 2024.07.26 |
[정보처리기사] UML 다이어그램 | 구조적 다이어그램, 행위적 다이어그램 | 정보처리기사 실기 기출문제 (1) | 2024.07.24 |
[정보처리기사] 화이트박스 테스트와 블랙박스 테스트 | 애플리케이션 테스트 유형 (1) | 2024.07.22 |
[정보처리기사] 재귀함수 | 2022년 정보처리기사 실기 (0) | 2024.07.22 |