슈퍼 키
더 많은 작업
Super Key
슈퍼 키는 데이터베이스 관리 시스템(DBMS)에서 한 테이블의 튜플(행)을 고유하게 식별할 수 있는 속성들의 집합을 말한다. 즉, 테이블 내에서 각 행을 유일하게 구분할 수 있는 속성들의 조합이다.
키가 갖춰야 할 두 성질로 보면 슈퍼 키는 유일성(모든 튜플을 서로 구별한다)은 만족하지만 최소성(꼭 필요한 속성만으로 이루어진다)은 만족하지 않아도 된다. 유일성과 최소성을 모두 만족하는 것이 후보 키이고, 후보 키 가운데 골라 대표로 쓰는 것이 기본 키이다. 외래 키는 다른 릴레이션의 기본 키를 참조하는 속성으로, 튜플을 식별하려는 키가 아니라 릴레이션 사이를 잇는 키이다.
슈퍼 키는 기본 키(Primary Key)와 관련이 있지만, 반드시 최소한의 속성들로만 구성될 필요는 없다. 슈퍼 키에는 다른 속성이 포함될 수 있지만, 이러한 불필요한 속성을 제외하면 후보 키(Candidate Key)가 된다.
예를 들어, 학생 테이블에서 학번(학번 하나만으로 학생을 고유하게 식별 가능)이 기본 키라면, "학번 + 이름" 같은 조합도 슈퍼 키가 될 수 있다.
속성 집합 K 가 릴레이션의 모든 가능한 상태에서 튜플을 하나로 정해 주면 K 는 슈퍼 키이고, 슈퍼 키 가운데 최소인 것이 후보 키이다.[1] 그래서 후보 키를 알면 판별이 쉽다.
- 후보 키 하나를 통째로 포함하는 속성 집합은 모두 슈퍼 키이다. 다른 속성을 얼마나 더 붙였는지는 상관없다
- 어떤 후보 키도 온전히 포함하지 않으면 슈퍼 키가 아니다. 속성 수가 많다고 슈퍼 키가 되지 않는다
- 후보 키가 복합 속성이면 그 구성 속성을 모두 포함해야 한다. 일부만 들어 있으면 후보 키를 포함한 것이 아니다
예: 자동차 개체 CAR 의 키가 Vehicle_id 와, State·Number 로 이루어진 복합 속성 Registration 둘이고, 그 밖에 Year, Model, Make, Color 가 있다고 하자.[2]
- (Vehicle_id, Number) - Vehicle_id 를 포함하므로 슈퍼 키
- (Registration, State) - Registration 을 포함하므로 슈퍼 키
- (Registration, Vehicle_id, Year) - 두 키를 모두 포함하므로 슈퍼 키
- (State, Year, Model) - Registration 의 일부인 State 만 있고 Number 가 없으며 Vehicle_id 도 없으므로 슈퍼 키가 아니다
- ↑ Silberschatz, Korth, Sudarshan, 「Database System Concepts 7th Edition - Chapter 2: Introduction to the Relational Model」 강의 슬라이드, https://www.db-book.com/slides-dir/PDF-dir/ch2.pdf, 확인일: 2026-11-04.
- ↑ Ramez Elmasri, Shamkant B. Navathe, 『Fundamentals of Database Systems』 7판, Pearson, 2016, 3.3.2 Entity Types, Entity Sets, Keys, and Value Sets(Figure 3.7 CAR).