본문 바로가기
CS/데이터베이스

데이터베이스의 키(Key)

qbang 2021. 9. 26.

키(Key)

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

 

기본키(Primary Key)

  • 후보키 중에서 선택한 키
  • 한 릴레이션에서 튜플을 유일하게 식별 가능한 속성

 

기본키의 조건

  • 테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다
  • 값의 중복이 없어야 한다(개체 무결성)
  • Null 값을 가질 수 없다(개체 무결성)

 

후보키(Candidate Key)

  • 릴레이션을 구성하는 속성들 중 튜플을 유일하게 식별할 수 있는 속성들의 부분집합
  • 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야 함
  • 릴레이션에 있는 모든 튜플에 대해 유일성과 최소성을 만족시켜야 한다

 

유일성 / 최소성

  • 유일성: 하나의 키 값으로 하나의 튜플만 식별할 수 있어야 한다.
  • 최소성: 모든 레코드를 유일하게 식별하는데 꼭 필요한 속성만으로 구성되어야 한다.

 

대체키(Alternate Key)

  • 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키
  • 보조키라고도 부름

 

슈퍼키(Super Key)

  • 한 릴레이션 내의 속성들의 집합으로 구성된 키
  • 유일성은 만족하지만, 최소성을 만족시키지 못함

 

외래키(Foreign Key)

  • 관계를 맺고 있는 릴레이션 A, B에서 릴레이션 A가 참조하고 있는 릴레이션 B의 기본키와 같은 릴레이션 A의 속성
  • 참조되는 릴레이션의 기본 키와 대응되어 릴레이션 간에 참조관계를 표현
  • 참조 테이블의 기본키로 존재하지 않는 값은 사용할 수 없음

 

복합키(Composite Key)

  • 각 튜플을 식별할 수 있는 두개 또는 그 이상의 속성들로 구성된 후보키
  • 컬럼을 기본키로 정의하게 되면 유니크한 클러스터드 인덱스가 정의되어 복합키 중 주로 조회의 조건으로 사용되는 컬럼을 먼저 정의하는 것이 성능에 좋음

 

키의 범위

슈퍼키는 튜플을 고유하게 식별할 수만 있으면 되는 큰 범위의 키로 후보키, 기본키, 대체키를 모두 포함한다. 슈퍼키에서 최소성이 추가되면 후보키가 되고, 후보키에서 유일성이 추가되면 기본키가 된다.

 

참고

'CS > 데이터베이스' 카테고리의 다른 글

MySQL Workbench의 다이어그램 자동 생성  (0) 2021.10.12
서버와 클라이언트  (4) 2018.03.31
DB와 MySQL 입문기!  (7) 2018.03.25

댓글