Skip to main content

Key


Key란?

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


Key의 특징

Key의 특징으로는 다음과 같은 종류가 있다. 이 특징들은 Key의 종류에 따라 만족하는 경우도 있고, 그렇지 않은 경우도 있다.

  • 유일성 : 유일한 값을 가져야 한다
  • 최소성 : 최소한의 값으로 식별할 수 있어야 한다.
  • 불변성 : 변하는 값이어선 안된다

Key의 종류


키의 종류에는 슈퍼키, 후보키, 기본키, 대체키, 외래키가 있으며, 다음 학생 릴레이션, 수강 릴레이션로 예시를 들어 종류 별로 알아보도록 한다.


슈퍼키

  • 유일성 O , 최소성 X
  • 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키. 유일성을 만족하므로 릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않는다

<학생> 릴레이션에서는 학번, 주민등록번호, (학번,주민등록번호), (학번,주민등록번호,이름) 등이 슈퍼키이다.


후보키

  • 유일성 O , 최소성 O
  • 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
  • 최소성을 만족하므로 최소의 개수로 이루어져야 한다.

<학생> 릴레이션에서는 학번, 주민등록번호가 후보키가 되며,
<수강> 릴레이션에서는 (학번,과목명)으로 조합해야 유일성과 최소성을 만족하므로 (학번,과목명)이 후보키가 된다.


복합키(Comosite Key)란?

<수강> 릴레이션의 후보키인 (학번,과목명)처럼 2개 이상의 필드를 조합해서 만든 키를 복합키라고 한다.


기본키

  • 후보키 중 선택받은 키
  • 후보키의 성질을 가지므로 유일성과 최소성을 만족한다
  • NULL 값과 중복된 값을 가질 수 없다.

<학생> 릴레이션에서 후보키인 학번이나 주민등록번호 중에 하나를 기본키로 설정할 수 있고, <수강> 릴레이션 에서는 (학번,과목명)을 기본키로 설정 할 수 있다.

만약 학번이 <학생> 릴레이션의 기본키로 정의되면 이미 입력된 학번 값들 (190001 등)은 다른 튜플의 학번 속성 값으로 입력할 수 없다.


대체키

  • 후보키 중 선택받지 못한 키

<학생> 릴레이션에서 학번이 기본키가 된다면 주민등록번호는 대체키가 된다.


외래키

  • 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
  • 릴레이션 간의 관계를 표현할 때 사용한다
  • 참조 릴레이션의 기본키와 동일한 키 속성을 가진다

<수강> 릴레이션의 학번은 <학생> 릴레이션의 기본키인 학번을 참조하고 있으므로, <수강> 릴레이션에서 학번은 외래키가 된다.

이로써 <학생> 릴레이션과 <수강> 릴레이션이 학번을 기준으로 관계가 설정된 것이라 할 수 있다.


왜 외래키가 필요할까?

외래키의 존재 이유는 데이터 무결성 때문이다.

무결성은 데이터가 항상 정확한 값을 유지하는 성질을 의미하는데, 예를 들어 학생 릴레이션의 학번이 변경되었는데 수강 릴레이션의 학번 값이 변경되지 않았다면 무결성이 깨지게 되는 현상이 있을 수 있다.



면접에 나올 수 있는 질문


Q. 데이터베이스의 key란?

A. key는 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때, 다른 튜플들과 구별 할 수 있는 유일한 기준이 되는 속성을 말한다


Q. key의 종류는 어떤것들이 있는가?

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



참고




기여자



Jongminfire

📦