[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로 인해 삭제가 불가능하다.



출처

댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?