RDB 인덱스 - (3) PK, FK, UK

succeeding·2022년 5월 25일
1

RDB 인덱스

목록 보기
3/4

키(key)

  • 레코드를 구별할 수 있는 식별자

후보키

후보키는 다음 두 가지의 성질을 지니고 있습니다.

  • 유일성: 중복되는 Tuple이 없어야 합니다.
  • 최소성: 후보키를 이루는 키는 유일성을 만족하면서 최소의 개수로 이루어져야 합니다.

PK(Primary Key, 기본키)

  • 후보키 중 레코드의 식별자로 이용하기에 가장 적합하다고 판단되어 선택된 키
  • (개체 무결성) Null 값을 가질 수 없으며, 중복되지 않아야 합니다.
    • 무결성 이란 데이터의 정확성과 일관성이 확보되어 데이터에 결함이 없는 상태를 의미합니다.
  • 클러스터형 인덱스를 자동으로 생성합니다.

FK(Foreign Key, 외래키)

  • 한 테이블의 필드 중 다른 테이블의 행을 식별할 수 있는 키
  • (참조 무결성) 외래키 값은 NULL이거나 부모 테이블의 기본키 값과 동일해야 합니다.
    • 외래키가 포함된 테이블을 자식 테이블, 외래키 값을 제공하는 테이블을 부모 테이블이라고 합니다.
  • FK는 제약조건, 두 테이블 간의 관계이며, 인덱스와는 관련이 없습니다.
    • 따라서 각 DB마다 FK의 인덱스 자동생성이 지원되기도 하고 아니기도 합니다.
    • MySQL의 경우 FK에 대해 자동으로 보조형 인덱스를 생성합니다.

PK와 FK의 차이

  • 'NULL을 허용하는가'가 가장 큰 차이라고 생각합니다.
  • 인덱스 관련
    • PK: 클러스터형, 자동생성
    • FK: 보조형, 수동생성(자동생성을 지원하는 DB도 존재)

UK(Unique Key, 고정키)

  • NULL를 허용하며, 중복을 허용하지 않습니다.
  • 보조 인덱스를 자동으로 생성합니다.

참고문헌

0개의 댓글