키 (Key, 식별자)
- 레코드를 검색/정렬할 때, 다른 레코드들과 구별할 수 있는 기준이 되는 속성
# 키의 특성
1) 유일성
: 식별자에 의해 모든 레코드들이 유일하게 구분됨
2) 최소성
: 꼭 필요로 하는 최소한의 속성만으로 식별자가 구성됨
키의 종류
# 기본키 (PK, Primary Key)
- 테이블의 각 레코드들을 고유하게 식별하는 컬럼 (or 컬럼 집합)
- NULL 값을 허용하지 않음 → 자동으로 NOT NULL로 설정됨
- 기본키에 대한 인덱스는 자동으로 추가됨
- CREATE 문에서 설정하기 : https://young0105.tistory.com/114
# 후보키 (Candidate Key)
- 테이블에서 각 레코드들을 구별하는 데 기준이 될 수 있는 컬럼
- 유일성과 최소성을 만족하는 컬럼 (or 컬럼 집합)
# 대체키 (Alternate Key)
- 후보키 중에서 기본키로 선택되지 않은 컬럼
# 슈퍼키 (Super Key)
- 모든 레코드에 대해 유일성은 만족하지만 최소성을 불만족하는 컬럼
# 외래키 (FK, Foreign Key)
- 다른 테이블의 기본키를 기반하여 생성된 컬럼 (다른 기본키를 참조함)
- 테이블 간의 참조 데이터 무결성을 위한 제약조건
- 하나의 테이블에 여러 외래키 사용 가능
- 외래키를 해당 테이블의 기본키로 사용 가능
- CREATE 문에서 설정하기 : https://young0105.tistory.com/114
- 삭제 옵션을 지정하지 않은 경우, 다른 테이블에서 참조하는 외래키가 있다면
해당 외래키를 삭제해야 참조되는 테이블을 삭제할 수 있음
*** 주의
- 인덱스가 생성된 컬럼만 참조할 수 있음
→ 부모 테이블의 컬럼에 PK or UNIQUE를 설정해서 인덱스를 자동으로 생성하거나,
그렇지 않다면 CREATE INDEX로 인덱스를 따로 생성해줘야 함
'SQL' 카테고리의 다른 글
[SQL] 조인 (JOIN) (0) | 2023.03.08 |
---|---|
[SQL] 관계 차수 (0) | 2023.03.07 |
[SQL] 인덱스 (0) | 2023.03.07 |
[SQL] WHERE 조건절 & 연산자 (0) | 2023.03.07 |
[SQL] DML - 데이터 삽입/변경/삭제 (INSERT, UPDATE, DELETE) (0) | 2023.03.06 |