투플을 유일하게 구별하기 위해 모든 속성을 이용하는 것보다 일부 속성만 이용하는 것이 효율적이다
릴레이션에 포함된 투플들을 유일하게 구별해 주는 역할은 속성 또는 속성들의 집합인 키가 담당한다.
키의 종류
슈퍼키(Super Key)
- 슈퍼키는 유일성의 특성을 만족하는 속성 또는 속성들의 집합이다.
- 유일성은 키가 갖추어야 하는 기본 특성으로, 하나의 릴레이션에서 키로 지정된 속성 값은 투플마다 달라야 한다는 의미다. 즉, 키 값이 같은 투플은 조재할 수 없다.
- 릴레이션을 구성하는 모든 투플에 대해 유일성은 만족하지만, 최소성은 만족시키지 못한다.
후보키(Candidate Key)
- 후보키는 유일성과 최소성을 만족하는 속성 또는 속성들의 집합이다.
- 후보키는 투플을 유일하게 구별하기 위해 꼭 필요한 최소한의 속성들로만 이루어지므로 슈퍼키 중에서 최소성을 만족하는 것이 후보키가 된다.
기본키(Primary Key)
- 릴레이션에서 투플을 구별하기 위해 여러 개의 후보키를 모두 사용할 필요는 없다.
- 데이터베이스 설계자나 관리자는 여러 후보키 중에서 기본적으로 사용할 키를 반드시 선택해야 하는데 이것이 기본키다.
- 만약 후보키가 1개만 존재하면 당연히 해당 후보키를 기본키로 선택해야 하겠지만 여러 개일 경우에는 데이터베이스 사용 환경을 고려하여 적합한 것을 기본키로 선택하면 된다.
(외우도록 하자)
- 후보키들 중에서 하나를 선택한 키로 최소성과 유일성을 만족하는 속성이다.
- 테이블에서 기본키는 오직 1개만 지정할 수 있다.
- 기본키는 테이블 안에서 유일하게 각 행들을 구별할 수 있도록 쓰인다.
- 기본키는 NULL 값을 절대 가질 수 없고, 중복된 값을 가질 수 없다.
- 각 행들을 구별하려면 값이 없어선 안되고, 중복되어서도 안되기 때문이다.
대리키(Alternate Key)
- 대리키는 기본키로 선택되지 못한 후보키들이다.
- 이름에서 알 수 있듯이 대리키는 기본키를 대신할 수 있지만 기본키가 되지 못하고 탈락한 이유가 있을 수 있다.
외래키(Foreign Key)
- 외래키는 어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키다.
- 다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합이 외래키다. 외래키는 릴레이션들 사이의 관계를 올바르게 표현하기 위해 필요하다.
- 외래키로 지정되면 참조 테이블의 기본키에 없는 값은 입력할 수 없다.
'DB' 카테고리의 다른 글
VIEW 와 SELECT 실행 순서 (0) | 2023.09.21 |
---|---|
SQL (0) | 2023.09.21 |
RDBMS(관리형 데이터베이스 관리시스템), 릴레이션 스키마 / 인스턴스 (0) | 2023.09.15 |
스키마와 3단계 데이터베이스 구조 (0) | 2023.09.15 |
DBMS개요 (0) | 2022.08.02 |