[데이터베이스] Key에 대해서 알아보자

네민·2025년 5월 13일
0

우당탕탕 cs 공부

목록 보기
13/14

Key

데이터베이스 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때, 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 속성입니다. 그러므로 각각의 튜플에 포함된 속성들 중 어느 하나 이상은 값이 달라져야 한다. (한 행이 같은 중복값이 없어야 한다.)

튜플: 릴레이션을 구성하는 각각의 행, 속성의 모임. 파일 구조에서는 레코드와 같은 개념

기본키(Primary Key)

여러 후보키 중 하나를 선정하며 대표로 삼는 키

고려사항

  • 릴레이션 내 튜플을 식별할 수 있는 고유한 값을 가져야 한다.
  • NULL값은 허용하지 않는다. → 기본키가 NULL 값이 된다면 다른 튜플과 식별할 수 없기 때문에 안됨
  • 키 값의 변동이 일어나지 않아야 한다. → 변경되면 중복이 될 수도 있기 때문임
  • 최대한 적은 수의 속성을 가진 것이어야 한다.
  • 향후 키를 사용하는 데 있어서 문제 발생 소지가 없어야 한다.
  • 유일성최소성을 만족해야 한다.

유일성: 테이블 내의 모든 튜플을 유일하게 식별, 중복된 값이 X

최소성: 꼭 필요한 속성만 포함되어야 한다. → 후보키에서 어떤 속성을 빼면 유일성 조건을 만족하지 못해야 한다. 예를 들어, (고객번호, 도서번호)가 후보키인데, 도서번호만으로도 유일하다면 → 고객번호는 불필요한 속성이라 최소성에 위배된다.

대체키(Alternate Key)

기본키로 선정되지 않은 후보키

후보키(Candidate Key)

튜플을 유일하게 식별할 수 있는 속성의 최소 집합

위와 같이 주문 릴레이션에서 단일 속성으로 튜플을 유일하게 식별하는 것은 불가능하다. 그래서 (고객번호 + 도서번호) 2개의 속성을 합한게 후보키가 되며 복합키(Composite Key)라고 부른다.

여기서 주문번호와 같은 값이 있었다면 단일 후보키가 되고 기본키로 설정할 수 있다.

슈퍼키(Super Key)

튜플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합

이름, 주소는 동일한 값이 올 수 있고, 핸드폰은 없을 수도 있음.

그래서 슈퍼키가 될 수 있는 건 (주민번호), (주민번호, 이름), (고객번호), 등… 이다.

슈퍼키 - 후보키 - 기본키 - 대체키 관계

슈퍼키 > 후보키 > 기본키 | 대체키

외래키(Foreign Key)

다른 릴레이션의 기본키를 참조하는 속성

profile
기록하자

0개의 댓글