티스토리 뷰

반응형

 

🔷 슈퍼키란 무엇인가?

 


 

🟦 슈퍼키란?

슈퍼키(Super Key)란, 데이터베이스 테이블에서 각 행(row)을 유일하게 식별할 수 있는 하나 이상의 컬럼(속성)들의 집합을 의미합니다.
즉, 슈퍼키는 "이 컬럼(또는 컬럼 조합)을 보면, 테이블 안에서 특정 행을 오직 하나만 정확히 찾을 수 있는" 조합입니다.

 

    • 유일성(Unique)만 만족하면 됩니다.

 

    • 최소성(Minimality)은 만족할 필요 없습니다.

 

    • 불필요한 컬럼이 껴 있어도 괜찮습니다.



✅ 요약: 슈퍼키는 유일성만 만족하면 되는, 모든 가능한 식별 조합입니다.

 


 

🟦 슈퍼키는 왜 필요한가?

1. 데이터베이스 설계의 시작이기 때문입니다.

 

    • 테이블을 설계할 때, "각 행을 유일하게 구별하는 방법"을 정해야 합니다.

 

    • 이때, 모든 가능한 유일한 조합을 찾아야 합니다.

 

    • 이 모든 조합이 슈퍼키입니다.



2. 후보키를 찾기 위한 준비 단계입니다.

 

- 슈퍼키를 먼저 찾아야, 그중 최소성(Minimality)을 만족하는 후보키를 고를 수 있습니다.

 

3. 기본키를 선택하기 위한 기반입니다.

 

- 후보키 중에서 하나를 골라 기본키로 지정해야 하는데,
- 이 작업은 슈퍼키를 찾지 않으면 절대로 할 수 없습니다.

 

✅ 요약:
슈퍼키를 모르면 후보키를 고를 수 없고, 후보키를 모르면 기본키를 설정할 수 없습니다.

 


 

반응형

 

 

🟦 슈퍼키, 후보키, 기본키 차이

구분 슈퍼키(Super Key) 후보키(Candidate Key) 기본키(Primary Key)
유일성(Unique) O O O
최소성(Minimality) 필요 없음 필요함 필요함
수량 여러 개 가능 여러 개 가능 반드시 하나만
목적 유일한 모든 조합 찾기 최소한의 유일 조합 찾기 대표 식별 키로 선택

 

✅ 요약:
- 모든 후보키는 슈퍼키입니다.
- 모든 기본키는 후보키입니다.
- 하지만 모든 슈퍼키가 후보키는 아니고, 모든 후보키가 기본키는 아닙니다.

 


 

🟦 쉽게 비유하면

슈퍼키: 모든 가능성 있는 지원자 리스트 (거칠게 모은 후보 풀)

 

후보키: 기준을 충족하는 최종 지원자들 (엄선된 후보 리스트)

 

기본키: 최종 합격자 한 명 (대표)

 

✅ 데이터베이스에서도 마찬가지입니다.
슈퍼키 → 후보키 → 기본키 순서로 좁혀야 합니다.

 


 

🟦 슈퍼키 예시

학생(Student) 테이블 예시

 

학번(student_id) 이름(name) 전화번호(phone)
2024001 김민수 010-1111-2222
2024002 이수정 010-3333-4444

 

슈퍼키로 가능한 조합:

 

슈퍼키 조합 이유
(학번) 학번 하나로 유일 식별 가능
(전화번호) 전화번호 하나로 유일 식별 가능
(학번, 이름) 학번만으로 충분하지만 이름 추가해도 유일성 유지
(학번, 전화번호) 학번만으로 충분하지만 전화번호 추가해도 유일성 유지
(이름, 전화번호) 이름과 전화번호 조합으로 유일성 유지 가능

 

✅ 정리:
모든 위 조합은 "행을 유일하게 식별"할 수 있으므로 슈퍼키입니다.

 


 

🟦 슈퍼키 → 후보키 → 기본키 좁혀가는 과정

✅ Step 1. 슈퍼키 전체 리스트

앞서 찾은 슈퍼키:

 

  • (학번)
  • (전화번호)
  • (학번, 이름)
  • (학번, 전화번호)
  • (이름, 전화번호)

 

✅ Step 2. 후보키로 좁히기 (최소성 확인)

슈퍼키 조합 후보키 여부 이유
(학번) 후보키 O 학번 하나만으로 유일 + 최소성 만족
(전화번호) 후보키 O 전화번호 하나만으로 유일 + 최소성 만족
(학번, 이름) 후보키 X 학번만으로 충분 → 최소성 위반
(학번, 전화번호) 후보키 X 학번만으로 충분 → 최소성 위반
(이름, 전화번호) 후보키 X 전화번호 하나만으로 충분 → 최소성 위반

 

✅ Step 3. 기본키 선택

(학번)과 (전화번호) 중, 관리 편의성과 개인정보 보호 문제를 고려하여
(학번)을 기본키로 선택합니다.

 


 

반응형

 

 

🟦 슈퍼키, 후보키, 기본키 흐름 요약

슈퍼키 전체 찾기
↓ (최소성 만족하는 것만 추림)
후보키로 좁히기
↓ (대표 하나 선택)
기본키로 지정

 


 

🟦 슈퍼키 관련 SQL 예시

CREATE TABLE Students (
    student_id INT,
    phone VARCHAR(20),
    name VARCHAR(100),
    PRIMARY KEY (student_id),
    UNIQUE (phone)
);

 


 

🟦 최종 정리

구분 설명
슈퍼키 유일성만 만족. 불필요한 컬럼 포함 가능.
후보키 슈퍼키 중 최소성 만족하는 키.
기본키 후보키 중 대표로 선택한 키.

 

✅ 슈퍼키는 데이터베이스 설계의 가장 기본이자, 후보키와 기본키를 결정하는 출발점입니다.

 


 

기본키, 후보키 상세설명

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

 

기본키란 무엇인가?

🔷 기본키란 무엇인가?기본키(Primary Key)는 데이터베이스 테이블에서 각 행(row, 튜플)을 유일하게 식별할 수 있도록 지정한 하나 이상의 컬럼(속성)을 의미합니다. 기본키는 절대 중복되거나 NULL

eunjin123123.tistory.com

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

 

후보키란 무엇인가?

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

eunjin123123.tistory.com

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함
반응형