관계형 데이터 모델링 프리미엄 가이드 DB구축 (2014년)
복잡한 주 식별자 0 0 37,653

by 구루비스터디 식별자 [2018.06.10]


복잡한 주 식별자

기본 원칙

  • 업무식별자가 주식별자가 되는 것은 가장 기본적인 원칙
  • 많은 엔터티에서 참조되지 않으면 주 식별자가 복잡한 것은 문제되지 않는다.


유형

기준 데이터를 관리할 때
  • 이러한 기준 엔터티는 보통 하위 엔터티가 존재하지 않는다.
  • 그러므로 주식별자가 복잡해지는 것은 문제가 되지 않는다.


집계 데이터를 관리할 때
  • 이러한 집계 엔터티는 보통 하위 엔터티가 존재하지 않는다.
  • 그러므로 주식별자가 복잡해지는 것은 문제가 되지 않는다.


인스턴스를 생성하는 기준이 복잡할 때
  • 기준을 상세하게 가져갈수록 주 식별자는 복잡해 진다.


교차 엔터티일 때
  • 주식별자가 복잡한 두 엔터티 사의에 다대다(M:M) 관계가 존재하면 교차엔터티의 주 식별자는 더욱 복잡해 진다.


  • 이력관리를 위한 주식별자(변경일자) 추가


  • 한쪽 엔터티의 주식별자만 추가하는 방법(인조식별자 순번 추가)
  • 업무식별자와 인조식별자가 혼합된 방법으로 바람직하지 않음


  • 교차엔터티에 인조식별자 채택(교차엔터티에 하위가 존재할 경우)


  • 상위엔터티에 인조식별자 채택(상위엔터티에 다수 하위가 존재할 경우)


슈퍼 식별자가 사용될 때
  • 고객ID만으로도 주식별자여야만 한다, 고객번호는 일반속성으로 변경해야 함.


PK 인덱스(커버링 인덱스)를 사용하려 할 때
  • 인덱스 사용 편의성을 위한 주식별자 선정


주 식별자 상속이 지속적으로 이루어 질 때
  • 복잡한 주식별자가 연속적으로 상속되는 경우
  • 조인 없이 조회하기 편리해 무조건 상속하면 복잡해 지므로 상속과 단절의 적절한 선택이 필요


기본 원칙 + 적절한 판단

  • 업무식별자가 주식별자가 되는 것은 가장 기본적인 원칙
  • 많은 엔터티에서 참조되지 않으면 주 식별자가 복잡한 것은 문제되지 않는다.
    • 오히려 인조식별자를 채택하면 인덱스만 하나 더 늘어나는 샘
  • 복잡한 주식별자가 나쁜것은 아니지만 무조건 좋은 것도 아니다.
    • 업무식별자가 너무 복잡한것은 아닌지? 슈퍼식별자가 포함된것은 아닌지? 인조식별자를 채택하는 것은 어떨지?
    • 다양한 검토 필요
"구루비 데이터베이스 스터디모임" 에서 2014년에 "관계형 데이터 모델링 프리미엄 가이드" 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/3624

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입