[Database] 기본키(Primary Key), 외래키(Foreign Key)란?
[Database] 기본키(Primary Key), 외래키(Foreign Key)란?
- PK와 FK는 테이블의 필수 요소로써 모든 테이블은 이들 중 하나 이상을 반드시 포함해야 함
- DB에서 테이블을 생성할 때 하나 또는 그 이상의 항목을 기본키(PK)로 설정할 수 있음
- PK = Not null + Unique
Primary Key
- 기본키는 다른 항목과 절대로 중복되어 나타날 수 없는 단일 값(unique)을 가짐
- PK와 unique는 column의 uniquness를 보장해주지만, UNIQUE는 여러개 있을 수있다.
- 기본키는 절대 null(아무런 값이 없는 상태)값을 가질 수 없음
- ex) 주민등록번호와 같은 개념
- 하나이상의 컬럼이 그룹화 되어 기본키로도 쓰일 수 있음
- 고유 인덱스가 자동으로 생성 됨
- 테이블은 기본키를 하나까지만 가질 수 있음
- 기술적 측면에서 기본키는 단일값(unique)하고 not Null이면 기능적으로 동일하게 작동하지만,
실제적으로 기본키처럼 구분되는건 오직 하나, 즉 다 똑같이 Unique하고 not Null이라고 기본키가 되는것이 아님
Foregin Key
- 테이블을 생성할 때 FK를 정의한다
- FK가 정의된 테이블은 자식 테이블이다.
- 참조되는 테이블을 부모 테이블이라고 한다
- 부모 테이블은 미리 생성되어 있어야 한다.
- 부모 테이블의 참조되는 칼럼에 존재하는 값만을 입력 할 수 있다.
- 부모 테이블은 FK로 인해 삭제가 불가능하다.
출처
댓글
댓글 쓰기