eunnnn 2023. 3. 23. 11:28

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

 

유일성과 최소성

key의 종류에 대해 알아보기 전에, 유일성과 최소성의 개념에 대해 먼저 알아보도록 하자.

 

  • 유일성 : 하나의 키값으로 튜플을 유일하게 식별할 수 있는 성질
  • 최소성 : 키를 구성하는 속성들 중 가장 최소로 필요한 속성들로만 키를 구성하는 성질

예를 들어 (주민번호, 나이, 사는 곳, 혈액형) 의 속성으로 구성된 릴레이션이 있다고 하자.

이 때 나이, 사는 곳, 혈액형은 튜플끼리 중복될 수 있는 속성이지만 주민번호는 중복될 수 없는 속성이다. 이 릴레이션의 주민번호처럼, 각각의 튜플을 구분지을 수 있게 하는 속성을 유일성이라고 한다.

그리고 이 릴레이션에서 현재 키가 (주민번호, 나이)로 지정이 되어 있다고 가정한다면, 이 key로도 튜플을 구분할 수 있겠지만 (주민번호) 만으로도 튜플을 구분할 수 있다. 그래서 (주민번호, 나이)로 구성된 키는 최소성을 만족시키지 않고, (주민번호) 로 구성된 키는 최소성을 만족시킨다.

 

Key의 종류와 개념

1. 슈퍼키

슈퍼 키(Super Key)는 유일성을 만족하는 속성, 또는 속성들의 집합이다.

유일성은 키가 갖추어야 하는 기본 특성으로, 키 값이 다른 튜플은 존재할 수 없다.

키 값들 중 가장 넓은 범위를 칭하고, 최소성은 만족하지 않아도 된다.

 

2. 후보키

후보 키(Candidate Key)는 유일성과 최소성을 모두 만족하는 속성 또는 속성들의 집합이다.

슈퍼 키 중 최소성을 만족하는 것이 후보키가 된다.

 

3. 기본 키

기본 키 (Primary Key)는 데이터베이스 계자나 관리자가 여러 후보 키 중에서 기본적으로 사용할 키로 선택한 키이다.

기본 키를 선택하는 데 있어 다음과 같은 기준이 존재한다.

  • 널 값을 가질 수 있는 속성이 포함 된 후보 키는 기본 키로 부적절하다.
  • 값이 자주 변경 될 수 있는 속성이 포함 된 후보 키는 기본 키로 부적절하다.
  • 단순한 후보키를 기본 키로 선택한다.

4. 대체 키

후보 키 중에서 기본 키로 선택되지 않은 키를 말한다.

앞서 말한 기본 키 선택의 기준을 불충족하는 경우가 많다.

 

5. 외래 키

외래 키는 다른 릴레이션의 기본 키를 그대로 참조하는 속성의 집합을 말한다.

 

예를 들어 다음과 같이 고객, 주문 릴레이션이 있다고 생각해보자.

고객 릴레이션은 고객에 관한 데이터를 가지며, 주문 릴레이션은 주문에 대한 데이터를 가진다.

이 때 주문 릴레이션은 고객에 대한 상세 정보를 따로 가지고 있을 필요 없이, 고객 릴레이션의 기본 키를 참조함으로써 고객의 정보를 추후 조인 등의 방법을 통해 확인 할 수 있다.

 

일반적으로 주문 릴레이션과 같이 외래 키를 가진 릴레이션을 '참조하는 릴레이션(=자식 테이블)'이라 하고, 고객 릴레이션과 같이 기본 키를 가진 릴레이션을 '참조 되는 릴레이션(=부모 테이블)'이라고 한다.

 

또한 외래 키 속성의 도메인과 참조되는 기본 키 속성의 도메인은 반드시 같아야 한다. (두 속성의 데이터 타입과 길이가 같다)

 

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

예를 들어 고객 릴레이션의 고객 아이디가 변경되었는데 주문 릴레이션의 주문 고객의 값은 변경되지 않았다면 두 값은 서로 같은 값이어야 하는데 다른값이 된다. 이는 무결성(= 데이터가 항상 정확한 값을 유지하는 성질)이 깨지는 것을 의미하며, 이는 서비스의 결함으로 이어질 수 있다. 

 

 

 

 

출처

더보기