티스토리 뷰

반응형

 

🔷 후보키란 무엇인가?

후보키(Candidate Key)란 데이터베이스 테이블 안에서 각 행(row)을 유일하게 식별할 수 있는 컬럼 또는 컬럼 조합의 집합을 뜻합니다.
다시 말해, 후보키는 "기본키로 삼을 수 있는 모든 키 후보"를 가리킵니다.

 


 

이 후보키들 중에서 하나를 선택하여 기본키(Primary Key)로 지정합니다.
선택되지 않은 나머지 후보키들은 나중에 대체키(Alternate Key)로 활용할 수 있습니다.

 


 

✅ 왜 후보키를 설정하는가?

데이터베이스에서 데이터를 관리할 때, 테이블에는 보통 수백, 수천, 때로는 수백만 개의 행이 존재합니다.

 

이럴 때, 각 행을 어떻게 구분할 것인가?가 문제입니다.
모든 데이터를 일일이 다 확인할 수는 없으니, "하나의 기준"이 있어야 합니다.

 

그 기준이 바로 후보키입니다.

 

후보키를 설정하면, 데이터베이스는 빠르고 정확하게 원하는 데이터를 찾을 수 있습니다.
또한 데이터의 중복 방지, 무결성 유지가 가능합니다.

 


 

✅ 후보키의 조건

후보키가 되기 위해서는 반드시 다음 두 가지 조건을 충족해야 합니다.

 

    • 유일성(Unique): 후보키의 값은 테이블 안에서 반드시 중복되지 않아야 합니다.

 

    • 최소성(Minimality): 후보키를 구성하는 컬럼은 꼭 필요한 최소한의 컬럼만 포함해야 합니다.




 

✅ 후보키 예시 (직관적 설명)

학번 주민등록번호 이름 생년월일
2024001 010101-3000001 김민수 2000-01-01
2024002 020202-4000002 이수정 2000-02-02

 

이 테이블에서는 학번주민등록번호 둘 다 후보키가 됩니다.
이름과 생년월일은 중복될 수 있으므로 후보키가 될 수 없습니다.

 


 

✅ 후보키 vs 기본키 vs 대체키 관계

구분 설명
후보키 기본키로 사용할 수 있는 모든 키
기본키 후보키 중 실제로 선택된 대표 키
대체키 선택되지 않은 나머지 후보키

 


 

반응형

 

 

✅ 후보키 중 무엇을 기본키로 고르는가?

    • 간결성(Simplicity): 컬럼 수가 적을수록 좋습니다.

 

    • 불변성(Immutability): 시간이 지나도 변하지 않는 키를 선택합니다.

 

    • 의미성(Semantic Meaning): 의미가 적은 키를 선호합니다.

 

    • 짧은 길이(Short Length): 짧을수록 검색 속도와 저장 효율이 높습니다.

 

    • 시스템 관리 편의성(Manageability): 시스템이 쉽게 다룰 수 있어야 합니다.



후보키 특징
학번(student_id) 짧고 고정적이며 관리가 쉽습니다.
주민등록번호(ssn) 고유하지만 개인정보 보호 문제 있습니다.

 


 

✅ 기본키 잘못 선택 시 생기는 문제

    • 기본키 값이 변하면 외래키 수정 필요

 

    • 기본키가 길면 검색 성능 저하

 

    • 비즈니스 의미가 많으면 유지보수 어려움




 

✅ 후보키 찾기 SQL 예시

CREATE TABLE Students (
  student_id INT,
  ssn CHAR(13),
  name VARCHAR(100),
  birth_date DATE,
  PRIMARY KEY (student_id),
  UNIQUE (ssn)
);

 


 

✅ 결론

후보키는 데이터베이스 설계에서 반드시 먼저 찾아야 할 핵심 개념입니다.
후보키를 정확히 찾고, 그 중 가장 적절한 기본키를 선택함으로써 데이터베이스를 안정적으로 관리할 수 있습니다.
후보키를 잘못 다루면 데이터 품질과 성능 모두에 심각한 문제가 생깁니다.

 


2025.04.26 - [자격증/정보처리기사] - 기본키란 무엇인가?

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함
반응형