1. 데이터베이스의 키 종류
이번 포스팅에서는 데이터베이스의 여러 키 종류를 정리해보겠습니다.
키 종류에 대한 설명을 위해 아래 샘플 데이터를 사용하겠습니다. 샘플 데이터는 자동으로 생성해주는 dummy data 사이트에서 얻어왔습니다.
1.1 수퍼키 (super key)
-
유일성의 특성을 만족하는 속성들의 집합으로 이루어진 키 를 수퍼키라 한다
- 유일성이란? - 하나의 키로 어떠한 행을 바로 찾아낼 수 있는 성질 을 의미한다
-
예. authors 테이블
- id, (id, firstname), (firstname, last_name), email 등이 수퍼키가 된다
1.2 후보키 (candidate key)
-
유일성과 최소성을 만족하는 속성 또는 속성들의 집합이다. 즉, 수퍼키중에서 최소성을 만족하는 것이 후보키가 된다
- 최소성이란? - 레코드를 식별하는데 꼭 필요한 속성 들로만 구성한다
-
예. authors 테이블
- id와 email이 후보키가 된다
1.3 기본키 (primary key)
- 후보키중에 특별히 선택된 키 이다
- 키본키는 NULL 값이나 중복된 값 을 가질 수 없다
- 예. authors 테이블 * 후보키중에 id를 기본키로 선정할 수 있다. (중복값이나 NULL 값이 없다)
1.4 대체키 (alternate key)
- 대체키란 기본키로 선택되지 못한 후보키 를 의미하고 보조키 라고도 한다
-
예. authors 테이블
- email가 대체키가 된다.
1.5 외래키 (foreign key)
- 어떤 릴레이션에 있는 속성이 다른 릴레이션의 기본키가 되는 키 를 의미한다
- 외래키 속성의 도메인과 참조되는 기본키 속성의 도메인은 같아야 한다
- 외래키는 같은 릴레이션을 참조할 수도 있다
- 외래키는 NULL 값을 가질 수 있다
-
예. posts 테이블
- authors_id가 외래키가 된다