본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Database Key
릴레이션의 튜플을 식별하기 위한 속성의 집합
  • 유일성: 유일한 값을 가져야 한다.
  • 최소성: 최소한의 값으로 식별할 수 있어야 한다.
  • 불변성: 변하는 값이어선 안된다.
  • 존재성: 반드시 존재해야 한다. 누구한텐 있고 누구한테는 없어선 안된다.

간단히 정리하면 슈퍼 키는 유일성만 충족하고, 나머지 후보 키, 기본 키, 대체 키 3개는 유일성, 최소성을 모두 만족하는, 키가 되기 위한 능력 자체는 동일하다. 다만 비즈니스적인, 그리고 모델링적인 목적에 따라 그 중 하나가 기본 키가 되고 나머지가 대체 키가 되는 것 뿐이다. 외부 키는 결국 다른 릴레이션의 PK를 참조하는 다른 개념이므로 아래 설명 참고.

슈퍼 키(Super Key)

편집 원본 편집
  • 어떤 릴레이션의 어떠한 튜플들도 같은 값을 가지지 않는 속성, 또는 속성들의 조합
  • 유일성 O / 최소성[1] X

후보 키(Candidate Key)

편집 원본 편집
  • Tuple을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
  • 유일성 O / 최소성 O / Not Null
  • 후보키 중 선정된 Key
  • 유일성 O / 최소성 O / Not Null

대체 키(Alternate Key)

편집 원본 편집
  • 후보 키 중 선정된 기본 키를 뺀 나머지 키들
  • 유일성 O / 최소성 O / Not Null
  • 다른 릴레이션 또는 같은 릴레이션의 Primary Key(또는 UNIQUE 로 선언된 후보 키)를 참조하는 속성
  • 한 릴레이션에 여러 개 둘 수 있고, NOT NULL 로 선언하면 NULL 을 갖지 않는다
  • 중복 여부에 따라
    • 중복인 경우, 일대다 관계(One-to-Many Relationship)
    • 중복이 아닌 경우, 일대일 관계(One-to-One relationship)
  • Not Null 여부에 따라
    • Not Null인 경우, 필수 관계(Mandatory Relationship)
    • Nullable인 경우, 선택 관계(Optional Relationship)

키의 존재와 개수

편집 원본 편집

Silberschatz 는 속성 집합 K 의 값만으로 릴레이션의 모든 가능한 상태에서 튜플을 하나로 정할 수 있으면 K 를 슈퍼 키로, 슈퍼 키 가운데 최소인 것을 후보 키로 정의하고, 후보 키 하나를 골라 기본 키로 삼는다.[2] 이 정의에서 다음이 따라 나온다.

  • 모든 릴레이션에는 슈퍼 키와 후보 키가 적어도 하나 있다. 릴레이션은 튜플의 집합이라 똑같은 튜플이 둘 있을 수 없으므로, 속성 전체의 집합은 언제나 슈퍼 키다. 그 슈퍼 키에서 속성을 하나씩 빼 보다가 더 뺄 수 없는 곳에서 멈추면 후보 키가 된다
  • 후보 키의 개수는 슈퍼 키의 개수보다 많을 수 없다. 후보 키는 모두 슈퍼 키이기 때문이다(후보 키 집합 ⊆ 슈퍼 키 집합). 후보 키 하나에 다른 속성을 덧붙인 것도 슈퍼 키이므로 보통은 슈퍼 키가 훨씬 많다
  • 기본 키는 정확히 하나이고, 외래 키는 없을 수도 있고 여러 개일 수도 있다. 외래 키는 튜플을 식별하는 키가 아니므로 유일성·최소성을 따지지 않는다 → 데이터베이스 외래 키
사번 이름 나이 이메일
100 김씨 30 [email protected]
200 김씨 41 [email protected]
300 이씨 38 [email protected]
400 박씨 29 [email protected]

슈퍼 키 목록

편집 원본 편집

릴레이션의 튜플을 식별할 수 있는 모든 속성 집합

  • (사번)
  • (사번, 이름)
  • (사번, 이름, 나이)
  • (사번, 이름, 나이, 이메일)
  • (이름, 나이)[3]
  • (이름, 나이, 이메일)
  • (이메일)

후보 키 목록

편집 원본 편집

슈퍼 키 중 최소성을 만족하는 속성 집합

  • (사번)
  • (이름, 나이)[4]
  • (이메일)

기본 키와 대체 키

편집 원본 편집

설계자의 판단에 따라 구분

  • 기본 키: (사번)
  • 대체 키: (이름, 나이), (이메일)
  1. ↑ 최소성은 단순히 집합의 개수를 얘기하는 것이 아니라, 속성 집합에서 하나의 속성을 제거하는 경우 더 이상 해당 속성 집합이 릴레이션의 튜플을 식별할 수 없는 것을 말한다
  2. ↑ 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-05.
  3. ↑ 일반적인 데이터베이스에선 아니겠지만 만약 "이름+나이"로 모든 사람이 고유학게 식별이 된다면 키가 될 수 있다. 여기선 그렇다고 가정한다.
  4. ↑ 이름+나이 2개 필드 조합이지만, 불필요한 다른 조합이 없고 조합이 더 이상 줄어들 수 없다면 이 또한 최소성을 만족한다고 볼 수 있다.