Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL

RDBMS 슈퍼 키(Super Key) 완벽 정리: 개념부터 예제까지

슈퍼 키란 무엇인가?

슈퍼 키(Super Key)는 관계형 데이터베이스(RDBMS)에서 튜플(tuple), 즉 엔티티 집합(entity set) 안의 하나의 개체를 고유하게 식별할 수 있는 단일 속성 또는 속성들의 집합을 의미합니다.

슈퍼 키는 후보 키(Candidate Key)의 상위 집합(superset)입니다. 후보 키는 슈퍼 키들 가운데에서 선택되기 때문인데, 이는 곧 '모든 후보 키는 슈퍼 키이지만, 모든 슈퍼 키가 후보 키가 되는 것은 아니다'라는 의미이기도 합니다.

슈퍼 키와 후보 키의 차이점

후보 키는 불필요한 속성을 하나도 포함하지 않는 최소한(minimal)의 슈퍼 키입니다. 반면 슈퍼 키는 튜플을 고유하게 식별만 할 수 있다면 어떤 속성 조합이라도 허용됩니다.

예제로 살펴보기

다음 학생(Student) 테이블 예제를 통해 슈퍼 키를 이해해 보겠습니다.

<Student>

Student_IDStudent_EnrollStudent_NameStudent_Email
S024545Daveddd@gmail.com
S344541Jackjjj@gmail.com
S224555Markmmm@gmail.com

위 테이블의 슈퍼 키 목록

{Student_ID}
{Student_Enroll}
{Student_Email}
{Student_ID, Student_Enroll}
{Student_ID, Student_Name}
{Student_ID, Student_Email}
{Student_Name, Student_Enroll}
{Student_ID, Student_Enroll, Student_Name}
{Student_ID, Student_Enroll, Student_Email}
{Student_ID, Student_Enroll, Student_Name, Student_Email}

위 테이블의 후보 키 목록

{Student_ID}
{Student_Enroll}
{Student_Email}

왜 이것들이 후보 키일까?

Student_ID, Student_Enroll, Student_Email은 각각 단독으로 모든 학생을 고유하게 식별할 수 있으며, 더 이상 줄일 수 없는 최소한의 속성이기 때문에 후보 키가 됩니다.

반면 {Student_ID, Student_Name}처럼 이미 고유 식별이 가능한 속성에 다른 속성을 덧붙인 조합은 튜플을 식별할 수 있으므로 슈퍼 키에는 해당하지만, 최소성(minimality)을 만족하지 못하므로 후보 키가 될 수 없습니다.