키(Key) 정리

key 란?

테이블 내 튜플(행) 을 식별하기 위한 단일 속성 혹은 속성들의 집합을 의미한다.

Key 의 종류

유일성: Key 하나로 튜플을 유일하게 식별  
최소성: 꼭 필요한 속성으로만 구성

슈퍼키

  • 유일성을 만족하는 키

  • 어떤 속성끼리 묶던 중복값이 나오지 않고 서로 구별 가능

한 팀에 4명의 팀원이 있다. 한 학생마다 [ 학번, 주민번호, 이름, 나이 ] 에 대한 정보가 있다.

이름과 나이를 합쳐서 4명을 구분할 수 있다면 슈퍼키가 될 수 있다. 학번과 주민번호, 학번과 주민번호와 이름 각각 묶어서도 중복값 없이 구별 가능하다면 슈퍼키로 가능하다.

후보키

  • 유일성과 최소성을 만족하는 키.

  • 기본키가 될 수 있는 후보이기 때문에 후보키라고 불린다.

위에서 말한, 4명을 구분하기 위한 슈퍼키들 중에서 최소한의 속성 개수로 4명을 구분할 수 있어야 후보키가 될 수 있다.

속성 1개의 슈퍼키 : 학번, 주민번호 속성 2개의 슈퍼키 : 이름 + 나이, 학번 + 주민번호 등 --> 최소성 만족 X

결국, 유일성을 만족하는 슈퍼키들 중 최소성을 만족하는 학번과 주민번호만이 후보키에 속한다.

기본키

  • 후보키에서 선택된 키.

  • NULL 값이 들어갈 수 업삳.

  • 기본키로 선택된 속성은 동일한 값이 들어갈 수 없다.

테이블에는 오직 1개의 기본키만 지정할 수 있다.

대체키

  • 후보 키 중에서 기본키로 선택되지 않은 키

후보키 : 학번, 주민번호 기본키로 학번을 지정하면, 대체키는 주민번호가 된다.

학번 기본키가 없어지면, 주민번호가 없어진 기본키를 대체한다.

외래키

  • 어떤 테이블간의 기본키를 참조하는 속성이다.

  • 테이블 간 관계를 나타내기 위해 사용

위 사진은 학번이 외래키이다. 부모 테이블: 학생 테이블, 자식테이블 : 수강테이블

  • 학생테이블은 학번이 기본키이자 참조되는 참조키이다.

  • 수강테이블은 학번이 참조하는 키이자 외래키이다.

참조되는 부모테이블이 먼저 생성된 뒤 데이터를 넣고, 참조하는 자식 테이블이 다음에 생긴다.

부모테이블을 먼저 삭제하는 경우 --> 부모테이블을 참조하는 자식테이블에 외래키 오류 발생 외래키 관계에서 부모테이블을 삭제하려면 자식테이블을 먼저 삭제한 후 가능

Last updated