티스토리 뷰

CS/Database

[Database] 데이터베이스 키 종류

heemang.dev 2024. 6. 26. 14:10

수퍼키 (Super Key)

  • 유일성 O, 최소성 X
  • [학생번호] → 학생을 유일하게 결정한다. → 수퍼키 만족
  • [이름, 나이, 성별] → 중복되는 학생이 존재할 수 있다. → 수퍼키 만족 X
  • [학생번호, 나이, 성별] → 학생을 유일하게 결정한다. → 수퍼키 만족
    • 학생번호만으로도 학생을 유일하게 결정할 수 있기 때문에 최소성을 만족하지 않는다.

 

후보키 (Candidate Key)

  • 유일성 O, 최소성 O
  • [학생번호] → 학생을 유일하게 결정하면서, 최소의 키를 갖는다. → 후보키 만족
  • [학생번호, 나이, 성별] → 학생번호만으로도 학생을 결정할 수 있으므로 최소성을 만족하지 않는다. → 후보키 X

 

기본키 (Primary Key)

  • 일성 O, 최소성 O
  • 튜플을 식별할 때 기준이 되는 반드시 필요한 키이다.
  • 특징
    • NULl을 저장할 수 없다.
    • 후보키 중에서 하나를 선정한다.
    • 테이블에는 하나의 기본키만 존재한다.

아래 테이블은 학생 ID라는 기본키가 있는데, 유일성과 최소성을 만족한다.

  • 유일성 : 학생 ID로 유일한 학생이름을 결정 가능하다.
  • 최소성 : 학생 ID만으로 학생이름을 결정할 수 있다.

 

외래키

  • 테이블 간의 관계를 나타내며, 다른 테이블의 기본키를 참조하여 외래키로 사용한다.

왼쪽 테이블에서 student_id 속성을 기본키로 사용하고 있는데, 오른쪽 테이블에서 해당 기본키를 참조하여 외래키로 사용하고 있다.

외래키를 사용하면 데이터 무결성(데이터가 정확한 값을 갖는다)을 보장할 수 있다. 예를 들어, 오른쪽 테이블이 외래 키를 사용하는 것이 아닌 직접 student_id를 관리한다면, 왼쪽 테이블의 student_id 값이 변경되었을 때 오른쪽 테이블의 값이 함께 변경되지 않았을 때 문제가 발생할 수 있다.

 

대체키 (Alternate Key)

기본키를 제외한 후보키들을 의미한다.

Total
Today
Yesterday
최근에 올라온 글
«   2024/11   »
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