본문 바로가기
TIL : 컴퓨터 지식

데이터베이스 : 키 (DATABASE : KEY)

by 이페코장인 2024. 2. 28.

키(Key)란?

키는 데이터베이스에서 조건을 만족하는 튜플(행)을 찾거나 순서대로 정렬할 때 튜플들을 서로 구분할 수 있도록 기준이 되는 애트리뷰트(속성, 열)을 의미한다.

키의 종류로는 후보키, 기본키, 대체키, 슈퍼키, 외래키 등이 있다.

 

 

키의 유일성, 최소성

먼저 키의 속성 중 중요한 유일성과 최소성에 대해 정리하겠다.

유일성 : 하나의 키 값으로 하나의 튜플만을 식별할 수 있어야 함. 서로 중복되는 키 값이 없이 유일한 값만으로 있어 튜플들을이 각각 고유의 키값을 가지고 있음을 의미.

 

최소성 : 한 튜플이 반드시 갖고 있어야 하는 속성값들을 모두 갖고 있을 때, 최소성을 만족함.

 

 

다음과 같은 데이터 릴레이션(테이블)을 예시로 설명을 하겠다.

식당 이름 전화번호 사업자번호 소재 구 음식 구분 종업원 수
김밥천국 02-123-1234 12312345 서대문구 한식 3
차돌마을 02-555-5555 33344322 성북구 한식 6
북경성 02-999-9999 99889898 성북구 중식 NULL

 

후보키 (Candidate Key)

  • 튜플을 유일하게 식별할 수 있는 속성들의 집합
  • 기본키로 사용될 수 있는 속성들의 집합
  • 유일성 O, 최소성 O

예시에서 후보키로 쓰일 수 있는 속성은 전화번호와 사업자번호이다. 이 둘은 현재 릴레이션에서 모든 식당(튜플)마다 서로 다른 고유 값을 가지고 있으며, 모두 NULL 없이 값이 존재하기 때문이다. 반면 소재 구, 식당 이름, 음식 구분, 종업원 수는 서로 중복값이 있거나, NULL값을 갖고 있기에 후보키가 될 수 없다. 

 

 

기본키 (Primary Key)

  • 후보키 중에서 선정한 메인 키
  • 기본키이기에 중복값이 없고, 유일하게 튜플을 식별할 수 있음
  • NULL값을 가질 수 없음
  • 유일성 O, 최소성 O

예시에서 기본키를 사업자번호로 할 수 있다. 전화번호도 가능은 하지만, 여기 예시에서는 사업자번호를 기본키로 설정했다고 가정을 하겠다.

 

 

대체키 (Alternative Key)

  • 후보키 중에서 기본키로 선택되지 않은 후보키
  • 보조키와 동일한 의미
  • 유일성 O, 최소성 O

예시에서 사업자번호를 기본키로 가정을 했기 때문에, 나머지 남은 후보키인 전화번호가 대체키가 된다.

 

 

슈퍼키 (Super Key)

  • 한 릴레이션(테이블)에 존재하는 속성(열)들의 집합으로 구성된 키
  • 릴레이션을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성과 동일한 값은 없음
  • 유일성 O, 최소성 X

예시의 속성들의 집합인 {소재 구, 음식 구분, 종업원 수}, {식당이름}, {식당이름, 음식 구분}, ... 등이 슈퍼키가 된다.

 

 

외래키 (Foreign Key)

  • 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
  • 외래키 설정을 하지 않아도 데이터 조회가 가능하지만, 데이터 무결성을 위해 설정함