[DB] Key

thingzoo·2023년 8월 14일
post-thumbnail

Key

키(Key)는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 Attribute(속성)이다.

Key의 종류

슈퍼 키(Super Key)

슈퍼키는 유일성의 특성을 만족하는 속성 또는 속성들의 집합이다.

  • 유일성(uniqueness)은 키가 갖추어야 하는 기본 특성으로, 하나의 릴레이션에서 키로 지정된 속성 값은 투플마다 달라야 한다는 의미다. 즉, 키 값이 같은 투플은 존재할 수 없다.
  • 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족시키지 못한다.
  • 예: {학번 + 이름}, {주민등록번호 + 학번}

복합 키(Composite Key)

복합 키는 2개 이상의 속성들의 집합이다.

후보 키(Candidate key)

후보키는 유일성과 최소성을 만족하는 속성 또는 속성들의 집합이다.

  • 후보키는 투플을 유일하게 구별하기 위해 꼭 필요한 최소한의 속성들로만 이루어지므로 수퍼키 중에서 최소성을 만족하는 것이 후보키가 된다.
  • 예: 주민등록번호, 학번 등

기본 키(Primary key)✨

기본키는 후보키들 중에서 하나를 선택한 키로 최소성과 유일성을 만족하는 속성이다.

  • 테이블에서 기본키는 오직 1개만 지정할 수 있다.
  • NULL 값을 절대 가질수 없고, 중복된 값을 가질 수 없다.
  • 예: 학번 등

대체 키(Surrogate key)

대체키는 기본키로 선택되지 못한 후보키들이다.

  • 예: 주민등록번호 등

외래 키(Foreign Key)✨

외래키는 어떤 테이블(Relation) 간의 기본 키(Primary key)를 참조하는 속성이다.

  • 테이블(Relation)들 간의 관계를 나타내기 위해서 사용된다.
  • 외래키로 지정되면 참조 테이블의 기본키에 없는 값은 입력할 수 없다.

질문 예시

Primary Key, Foreign Key에 대해 설명해주세요.

Primary Key(기본 키)는 테이블 내에서 고유한 레코드를 식별하는 키이며, 중복과 NULL 값을 허용하지 않습니다. Foreign Key(외래 키)는 다른 테이블의 기본 키를 참조하여 두 테이블 간의 관계를 형성하고 데이터 무결성을 유지하는 키입니다. 두 키는 RDBMS에서 데이터베이스 테이블 간의 관계를 구축하는 데 사용됩니다.

FK가 설정된 테이블에 데이터를 삽입할 때 참조한 테이블의 PK가 존재하지 않는다면 데이터를 삽입할 수 없어 잘못된 데이터가 저장되는 것을 방지할 수 있습니다. PK, FK는 고유 식별 값이고 인덱스가 생성되기 때문에 PK, FK값으로 조회시 빠른 조회가 가능합니다.

Reference

🔗 [DB] 📚 데이터베이스 키(KEY) 종류 🕵️ 정리
🔗 [데이터베이스/DB] 4.관계형 데이터베이스의 키(key)의 종류

profile
공부한 내용은 바로바로 기록하자!

0개의 댓글