키 (Key) 란?
: 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때, 튜플들을 서로 구분할 수 있는 기준이 되는 속성
Key 종류
후보키 (Candidate Key)
- 기본키로 사용할 수 있는 속성들
- 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합
- 하나의 릴레이션 내 중복된 튜플들이 있을 수 없으므로, 모든 릴레이션에는 반드시 하나 이상의 후보키 존재
- 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족
💡 유일성 : 하나의 키 값으로 하나의 튜플만을 유일하게 식별 가능
💡 최소성 : 모든 레코드들을 유일하게 식별하는 데 꼭 필요한 속성만으로 구성
기본키 (Primary Key)
- 후보키 중에서 선택한 주 키 (Main Key)
- 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성
- NULL 값을 허용하지 않고, 중복이 허용되지 않음 (NOT NULL, UNIQUE)
대체키 (Alternate Key)
- 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키들
- 보조키라고도 부름
슈퍼키 (Super Key)
- 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
- 릴레이션을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 없음
- 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족시키지만, 최소성은 만족시키지 못함
- ex) (학번, 이름) / (학번, 나이)
외래키 (Foreign Key)
- 두 테이블을 서로 연결하는 데 사용되는 키
- 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간 참조관계를 표현하는 데 중요한 도구
- 외래키 값은 NULL이거나, 부모 테이블의 기본키 값과 동일 (참조 무결성 제약 조건)
'CS > 데이터베이스' 카테고리의 다른 글
식별관계 비식별관계 (0) | 2023.04.17 |
---|---|
Index, View, Transaction (인덱스, 뷰, 트랜잭션) (0) | 2023.04.12 |
데이터베이스 정규화(Normalization) (0) | 2023.03.30 |
MySQL 정리 (0) | 2023.02.13 |
DBMS (데이터베이스 관리 시스템) (0) | 2023.01.12 |