키는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 애트리뷰트 (속성)이다.
후보키(Candidate Key) :
- 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합, 즉 기본키로 사용할 수 있는 속성들을 말함.
- 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야 함.
- 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야 함
예) <학생> 릴레이션에서 학번이나 주민번호는 다른 레코드를 유일하게 구별할 수 있는 기본키로 사용할 수 있으므로 후보키이다.
--------------------------------------------------------------------------------------------------------------------------------
기본키(Primary Key) :
- 후보키 중에서 선택한 주키(Main Key)
- 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성
- Null 값을 가질 수 없음
- 기본키로 정의된 속성에는 동일한 값이 중복되어 저장될 수 없음
예) <학생> 릴레이션에서는 학번이나 주민번호가 기본키가 될 수 있고, <수강> 릴레이션에서는 학번 + 과목명으로 조합해야 기본키가 만들어진다.
예) 학번이 <학생> 릴레이션의 기본키로 정의되면 이미 입력된 '1001'은 다른 튜플의 학번 속성의 값으로 입력할 수 없다.
---------------------------------------------------------------------------------------------------------------------------------
대체키(Altermate Key) :
- 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키들을 말함
- 보조키라고도 함
예) <학생> 릴레이션에서 학번을 기본키로 정의하면 주민번호는 대체키가 된다.
---------------------------------------------------------------------------------------------------------------------------------
슈퍼키(Super Key) :
- 슈퍼키는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로서 릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않는다.
- 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족시키지만, 최소성은 만족시키지 못함
예) <학생> 릴레이션에서는 학번, 주민번호, 학번+주민번호+성명 등으로 슈퍼키를 구성할 수 있다.
---------------------------------------------------------------------------------------------------------------------------------
외래키(Foreign Key) :
- 관계를 맺고 있는 릴레이션 R1, R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1 릴레이션의 속성
- 외래키는 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간에 참조 관계를 표현하는데 중요한 도구임
- 외래키로 지정되면 참조 테이블의 기본키에 없는 값은 입력할 수 없음.
'전공공부 > 데이터베이스' 카테고리의 다른 글
50. 스택(Stack) (0) | 2020.02.12 |
---|---|
39. 트랜잭션의 정의 ~ 44. 병행 제어(Concurrency Control) (0) | 2020.02.12 |
관계해석 (0) | 2020.02.02 |
27.관계대수의 개요 / 28.순수 관계 연산자 (0) | 2020.02.02 |
관계 데이터베이스의 Relation 구조 / 릴레이션의 특징 (0) | 2020.02.02 |
댓글