기본키(PK) 와 외래키(FK) 란?

소복치·2024년 4월 14일

PK란?

  1. 테이블의 유일한 값을 가지는 필드
  2. 데이터의 중복이 없는 식별가능한 필드를 선정
  3. 테이블 1개당 PK필드 1개이상
  4. 중복, NULL, 공백은 불가
  5. 해당 PK필드는 다른테이블의 필드에서도 참조 가능
  6. NOT NULL + UNIQUE 속성을 합친것

FK란?

  1. 다른 테이블의 PK와 연결
  2. FK필드명은 PK필드명과 동일시하게 사용
  3. FK필드의 타입은 PK필드의 타입과 동일
  4. 참조하는 테이블에서 FK 필드 선언 (1:M 관계에서 M쪽이 참조하는 테이블)

PK & FK 관계

[1] 1:1 관계


한명의 사원증에 한명의 직원만이 갖는 관계

[2] 1:N 관계


부서 하나에 여러 직원이 있는 관계

[3] N:M 관계


자격증 여러개의 여러 직원들이 가지고 있는 관계

N:M 관계는 서로가 서로를 1:N 관계, 1:M 관계로 갖고 있기 때문에, 서로의 PK 를 자신의 외래키 컬럼으로 갖고 있으면 된다.
일반적으로 N:M 관계는 두 테이블의 대표키를 컬럼으로 갖는 또 다른 테이블(중간 테이블)을 생성해서 관리한다.

참고
https://velog.io/@baekgom/PK-vs-FK
https://keembloo.tistory.com/42

profile
오늘 터져도내일 다시극복

0개의 댓글