✔️ 데이터베이스의 키(Key) 란?
릴레이션 테이블에 존재하는 튜플을 유일하게 식별할 수 있는 속성 또는 속성의 집합으로, 유일성 (uniqueness)와 최소성(minimization)을 만족해야 한다.
유일성 (unique)
- 하나의 튜플을 유일하게 식별할 수 있는 속성의 부분 집합을 말한다.
- 즉, 동일한 키 값을 가진 레코드는 데이터베이스 내에서 하나만 존재해야 하며 이는 중복된 데이터를 방지하고 데이터 일관성을 유지하는데 중요하다.
- 예를 들어, 회원을 나타내는 {회원번호, 회원명, 성별, 생년월일, 주민번호} 릴레이션 테이블에서 회원번호, 주민번호는 유일한 값이므로, 해당 키 값이나 해당 키 값으로 구성되어 있는 속성 (ex. {회원번호}, {주민번호}, {회원번호, 성별}, {회원번호, 주민번호, 생년월일), 등)은 유일성을 만족하는 키가 될 수 있다.
최소성 (minimization)
- 최소의 속성으로 튜플을 유일하게 식별할 수 있는 속성의 부분 집합을 말한다.
- 즉, 최소성은 키가 가능한 작아야 한다는 개념으로 꼭 필요한 속성으로만 구성되어 있어야 하므로, 불필요한 속성을 포함하지 않아야 한다.
- 예를 들어, 회원을 나타내는 {회원번호, 회원명, 성별, 생년월일, 주민번호} 릴레이션 테이블에서 {회원번호}, {주민번호}는 최소성을 나타내는 키 값이라고 할 수 있다.
✔️ 데이터베이스의 키(Key)의 종류
슈퍼키 (Super Key)
- 튜플들을 유일하게 구별할 수 있는 한 개 이상의 속성의 집합
- 유일성은 만족하지만, 최소성은 만족하지 않을 수 있음
- 예를 들어, 회원을 나타내는 {회원번호, 회원명, 성별, 생년월일, 주민번호} 릴레이션 테이블에 {회원번호}, {주민번호}, {회원번호, 성별}, {회원번호, 주민번호, 생년월일), 등 여러 슈퍼키 가능
후보키 (Candidate Key)
- 슈퍼키 중에서 최소성을 만족하는 키
- 즉, 회원을 나타내는 {회원번호, 회원명, 성별, 생년월일, 주민번호} 릴레이션 테이블에서 {회원번호}, {주민번호}는 후보키가 될 수 있음
기본키 (Primary Key)
- 후보키 중에서 하나를 선택하여 기본키로 지정
- 예를 들어, 후보키인 {회원번호}, {주민번호} 중에서 {회원번호}를 기본키로 설정할 수 있음
- 최소성과 유일성 만족 (중복이 불가능, 데이터베이스의 무결성 유지)
- 널(Null)값 불가능
대체키 (Alternate Key)
- 후보키 중에서 기본키가 아닌 나머지 후보키들
- 예를 들어, 후보키인 {회원번호}, {주민번호} 중에서 {회원번호}를 기본키로 설정하면 대체키는 {주민번호}가 됨
외래키 (Foreign Key)
- 참조할 테이블의 기본키 값을 사용하기 위해 설정한 키로, 테이블 간의 관계를 나타내기 위해 사용
- 예를 들어, {회원번호, 회원명, 성별, 생년월일, 주민번호, 등급번호} 로 구성된 회원정보 테이블과 {등급번호, 등급명, 할인율} 로 구성된 등급정보 테이블이 존재하는 경우, 회원정보 테이블의 {등급번호}는 등급정보 테이블의 {등급번호}를 참조하는 외래키임 (즉, 회원정보 테이블의 {등급번호}를 통해 등급정보 테이블의 {등급명, 할인율} 검색 가능)
- 외래키를 통해 데이터 무결성을 유지할 수 있음
✔️ Reference
오라클 11G로 배우는 데이터베이스 관리 실무 (최용구)
'✔️ CS > 데이터베이스' 카테고리의 다른 글
[데이터베이스/DB] 정규화 (Normalization) : 1NF, 2NF, 3NF, BCNF (0) | 2023.09.13 |
---|---|
[데이터베이스/DB] 함수적 종속성 (Functional Dependency) (0) | 2023.09.11 |
댓글