본문 바로가기

개발(합니다)/DB

[DB] 식별 관계와 비식별 관계

반응형

개요

ERD를 작성하다보면 테이블 간의 관계를 설정하면서 외래키를 사용해 다른 테이블과의 키를 공유하고 조인을 합니다.
외래키를 이용하여 관게를 정립하기 위해 식별 관계와 비식별 관계 전략이 있습니다.

식별 관계

식별 관계 : 부모 테이블의 기본 키나 유니크 키를 자식 테이블이 자신의 기본키로 이용

-> 부모 데이터가 존재해야지 자식 테이블에 데이터를 추가할 수 있습니다.

위 그림에서는 PK를 part_id로 가지고 PFK로 pc_id를 가집니다.

부모 테이블의 키를 기본키로 가지고 있어서 부모 테이블의 데이터가 있어야지 자식 테이블에 데이터를 추가할 수 있습니다.

장점과 단점

장점

  • 데이터의 정합성 유지를 DB에서 검증

단점

  • 구조 변경이 어려움

비식별 관계

비식별 관계 : 부모 테이블의 기본 키나 유니크 키를 자식 테이블이 외래키로 이용
-> 부모 데이터가 없어도 자식 테이블에서 데이터를 추가할 수 있습니다.

위 그림에서 PK를 part_id로 가지고 FK로 pc_id를 가집니다.
부모 테이블의 키를 외래키로 가지고 있어서 부모 테이블에 데이터가 없어도 생성할 수 있고 의존성을 낮출 수 있습니다.

장점과 단점

장점

  • 구조 변경이 자유로움
  • 부모 데이터로부터 독립

단점

  • 데이터 정합성을 위한 로직 필요
  • 데이터 무결성 보장 하지 않음
반응형