식별자와 비식별자 본문

백앤드 개발일지/데이터베이스

식별자와 비식별자

giron 2021. 8. 11. 22:18
728x90

자주 햇갈려서 정리해두었다. 짧고 굵게 이해하기 쉽게 정리해봤다.

 

식별자

예시 테이블 관계

  • 부모테이블(상품, 주문테이블) 기본키(PK)가 자식 테이블(주문_상품)의 외래키이자 기본키로 사용되는 관계이다.
  • 자식 테이블의 행(정보)를 추가할 때 부모테이블의 참조 행(상품번호 또는 주문번호)이 없다면 자식테이블의 행을 추가 할 수 없다.
    : 주문_상품테이블은 상품번호와 주문번호 중 하나라도 없다면 기본키를 만들 수 없게 되고(두개의 외래키가 합쳐 기본키가 되므로) 기본키가 없어 정보를 식별할 수 없으므로 데이터를 넣을 수 없다.
    : 예를 들면 게시판의 작성글과 댓글의 관계를 식별관계라고 할 수 있다.(작성글이 없다면 댓글도 없다)
  • 식별관계는 - 복합키 관계

 

비식별자

예시 테이블 관계

  • 부모 테이블(상품, 주문테이블) 기본키가 자식 테이블(주문_상품테이블)의 일반컬럼이나 외래키(Foreign Key) 컬럼에 저장되는 관계이다.
  • 자식 테이블의 행(정보)를 추가할 때 부모테이블의 참조 행(상품번호 또는 주문번호)이 없어도 자식테이블의 행을 추가 할 수가 있다.
    : 예를 들면 회사의 부서와 사원의 관계를 비식별관계라고 할 수 있다. (사원이 부서가 배정되지 않을 수도 있으므로)

 

 

Reference

 

[DATABASE] 식별과 비식별 관계

ERD를 작성하다보니 테이블간의 관계를 설정할 때 두 테이블의 관계가 식별관계인지 비식별관계인지 판단함에 어려움을 겪었다. 찾아본 여러 참조문서를 종합해 정리해놔야겠다. 우선 앞에 내

velog.io

 

728x90
Comments