Key란?
조건에 만족하는 튜플을 찾거나, 정렬할 때에 기준이 되는 속성
#1 기본키 - Primary Key
서로 다른 튜플을 유일하게 식별할 수 있는 기준이 되는 속성
- 중복된 값을 가질 수 없다.
- 널 값을 가질 수 없다.
- 테이블 당 1개만 설정할 수 있다.
#2 외래키 - Foreign Key
다른 테이블의 기본 키를 참조하는 속성으로 테이블의 관계를 정의, 데이터가 일관될 수 있도록 돕는 다리 역할을 한다.
- 한 테이블의 필드이며, 다른 테이블의 기본이다.
- 각 외부키와 기본키는 1:1로 매칭되어야 한다.
- 참조되는 테이블의 기본키에 없는 값은 지정할 수 없다.
CREATE TABLE customer(
id VARCHAR(10) PRIMARY KEY,
name VARCHAR(10),
address VARCHAR(30)
);
CREATE TABLE order_history(
customer_id VARCHAR(10),
order_id VARCHAR(14),
FOREIGN KEY (customer_id) REFERENCES customer(id), // order_history의 customer_id가 FK이며, customer의 id를 참조함
CONSTRAINT order_history_pk PRIMARY KEY (customer_id, order_id)
);
#3 기타
- 후보키: 기본키가 될 수 있는 키 (기본키 ⊂ 후보키)
- 대체키: 후보키 중 기본키가 아닌 키 (대체키 ⊂ 후보키)
- 슈퍼키: 튜플을 식별할 수 있는 유일성은 만족하지만 최소성은 만족하지 않는 키
'Database' 카테고리의 다른 글
[SQL] 계층형 질의 - WITH, CTE (0) | 2024.05.12 |
---|---|
[SQL] 집합 연산자 (0) | 2024.05.12 |
[DB/SQL] 서브쿼리 (0) | 2024.04.07 |
[DB/SQL] 다수의 테이블 제어 - 데이터 그룹 짓기 (0) | 2024.04.07 |
[DB/SQL] 관계형 데이터베이스 쿼리 명령어 - DDL, DML, DCL (1) | 2024.04.07 |