관계형 데이터베이스에서 키(key)는 데이터베이스 테이블에서 각 행을 유일하게 식별하는 데 사용되는 필드나 필드의 조합을 말한다.
기본키(Primary key)
유일성과 최소성을 만족하는 키이다.
중복된 값을 가질 수 없다.
Null 값을 가질 수 없다.
유일성: 하나의 키 값으로 하나의 튜플만을 유일하게 식별
최소성: 모든 레코드들을 유일하게 식별하는데 꼭 필요한 속성으로만 구성
ex) 사용자 테이블에서의 사용자 ID
후보키(Candidate key)
기본키가 될 수 있는 후보들이며 유일성과 최소성을 모두 만족해야 한다.
후보키의 조합 중에 기본키를 선택한다.
ex) 사용자 테이블의 이메일 주소, 전화번호
대체키(Alternate key)
후보키가 둘 이상일 때 기본키로 선택되지 않고 남은 키이다.
ex) 사용자 테이블의 전화번호(만약 이메일이 기본키인 경우)
슈퍼키(Super key)
각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 모든 키의 조합이다.
한가지 속성일 땐 key가 될 수 없지만 여러 속성이 합쳐 key의 속성을 가진다.
최소성은 만족하지 못한다.
ex) 사용자 테이블의 사용자 ID + 이메일 주소
외래키(Foreign Key)
다른 테이블의 기본키를 그대로 참조하여 개체와의 관계를 식별하는 데 사용한다.
참조하는 테이블의 기본키와 동일한 값이거나 Null 이어야 한다.
ex) 주문 테이블의 사용자 ID => 사용자 테이블의 사용자 ID를 참조
자연키
비즈니스 도메인에서 가져온 실제 데이터의 키이다.
ex) 사람의 주민등록번호, 책의 ISBN
인조키
인위적으로 id 부여해 생성된 키이다.
- Oracle: sequence, MySQL: auto increment
- 자연키와 대조적으로 변하지 않는다.
- 보통 인조키를 기본키로 설정한다.
ex) 사용자 테이블에서 자동 증가하는 ID
'DB' 카테고리의 다른 글
[MySQL] 프로시저, 이벤트 스케줄러 만들기 (1) | 2024.06.01 |
---|---|
[DB] 프로시저, 트리거, 사용자 정의 함수 (0) | 2024.01.31 |
[DB] 데이터베이스 용어 정리 (0) | 2024.01.31 |
[MySQL] CMD이용해 CRUD 하기 (0) | 2023.05.04 |
[MYSQL] 같지 않음을 나타내는 부정 연산자(!=, NOT, <>) (0) | 2023.03.27 |