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

[데이터베이스/DB] 키(Key)의 개념과 종류

by Eunse 2023. 9. 10.

✔️ 데이터베이스의 키(Key) 란?

릴레이션 테이블에 존재하는 튜플을 유일하게 식별할 수 있는 속성 또는 속성의 집합으로, 유일성 (uniqueness)와 최소성(minimization)을 만족해야 한다.

 

유일성 (unique)

  • 하나의 튜플을 유일하게 식별할 수 있는 속성의 부분 집합을 말한다.
  • 즉, 동일한 키 값을 가진 레코드는 데이터베이스 내에서 하나만 존재해야 하며 이는 중복된 데이터를 방지하고 데이터 일관성을 유지하는데 중요하다.
  • 예를 들어, 회원을 나타내는 {회원번호, 회원명, 성별, 생년월일, 주민번호} 릴레이션 테이블에서 회원번호, 주민번호는 유일한 값이므로, 해당 키 값이나 해당 키 값으로 구성되어 있는 속성 (ex. {회원번호}, {주민번호}, {회원번호, 성별}, {회원번호, 주민번호, 생년월일), 등)은 유일성을 만족하는 키가 될 수 있다.

최소성 (minimization)

  • 최소의 속성으로 튜플을 유일하게 식별할 수 있는 속성의 부분 집합을 말한다.
  • 즉, 최소성은 키가 가능한 작아야 한다는 개념으로 꼭 필요한 속성으로만 구성되어 있어야 하므로, 불필요한 속성을 포함하지 않아야 한다.
  • 예를 들어, 회원을 나타내는 {회원번호, 회원명, 성별, 생년월일, 주민번호} 릴레이션 테이블에서 {회원번호}, {주민번호}는 최소성을 나타내는 키 값이라고 할 수 있다.

 

✔️ 데이터베이스의 키(Key)의 종류

슈퍼키 (Super Key)

  • 튜플들을 유일하게 구별할 수 있는 한 개 이상의 속성의 집합
  • 유일성은 만족하지만, 최소성은 만족하지 않을 수 있음
  • 예를 들어, 회원을 나타내는 {회원번호, 회원명, 성별, 생년월일, 주민번호} 릴레이션 테이블에 {회원번호}, {주민번호}, {회원번호, 성별}, {회원번호, 주민번호, 생년월일),  여러 슈퍼키 가능

후보키 (Candidate Key)

  • 슈퍼키 중에서 최소성을 만족하는 키
  • 즉, 회원을 나타내는 {회원번호, 회원명, 성별, 생년월일, 주민번호} 릴레이션 테이블에서 {회원번호}, {주민번호}는 후보키가 될 수 있음

기본키 (Primary Key)

  • 후보키 중에서 하나를 선택하여 기본키로 지정
  • 예를 들어, 후보키인 {회원번호}, {주민번호} 중에서 {회원번호}를 기본키로 설정할 수 있음
  • 최소성과 유일성 만족 (중복이 불가능, 데이터베이스의 무결성 유지)
  • 널(Null)값 불가능

대체키 (Alternate Key)

  • 후보키 중에서 기본키가 아닌 나머지 후보키들
  • 예를 들어, 후보키인 {회원번호}, {주민번호} 중에서 {회원번호}를 기본키로 설정하면 대체키는 {주민번호}가 됨

외래키 (Foreign Key)

  • 참조할 테이블의 기본키 값을 사용하기 위해 설정한 키로, 테이블 간의 관계를 나타내기 위해 사용
  • 예를 들어, {회원번호, 회원명, 성별, 생년월일, 주민번호, 등급번호} 로 구성된 회원정보 테이블과 {등급번호, 등급명, 할인율} 로 구성된 등급정보 테이블이 존재하는 경우, 회원정보 테이블의 {등급번호}는 등급정보 테이블의 {등급번호}를 참조하는 외래키임 (즉, 회원정보 테이블의 {등급번호}를 통해 등급정보 테이블의 {등급명, 할인율} 검색 가능)
  • 외래키를 통해 데이터 무결성을 유지할 수 있음

 


✔️ Reference

오라클 11G로 배우는 데이터베이스 관리 실무 (최용구)

댓글