by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

복잡한 주 식별자




복잡한 주 식별자

기본 원칙
  • 업무식별자가 주식별자가 되는 것은 가장 기본적인 원칙
  • 많은 엔터티에서 참조되지 않으면 주 식별자가 복잡한 것은 문제되지 않는다.
유형
  • 기준 데이터를 관리할 때
    이러한 기준 엔터티는 보통 하위 엔터티가 존재하지 않는다.
    그러므로 주식별자가 복잡해지는 것은 문제가 되지 않는다.
  • 집계 데이터를 관리할 때
    이러한 집계 엔터티는 보통 하위 엔터티가 존재하지 않는다.
    그러므로 주식별자가 복잡해지는 것은 문제가 되지 않는다.
  • 인스턴스를 생성하는 기준이 복잡할 때
    기준을 상세하게 가져갈수록 주 식별자는 복잡해 진다.
  • 교차 엔터티일 때
    주식별자가 복잡한 두 엔터티 사의에 다대다(M:M) 관계가 존재하면 교차엔터티의 주 식별자는 더욱 복잡해 진다.

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

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

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

    상위엔터티에 인조식별자 채택(상위엔터티에 다수 하위가 존재할 경우)
  • 슈퍼 식별자가 사용될 때
    고객ID만으로도 주식별자여야만 한다, 고객번호는 일반속성으로 변경해야 함.
  • PK 인덱스(커버링 인덱스)를 사용하려 할 때
    인덱스 사용 편의성을 위한 주식별자 선정
  • 주 식별자 상속이 지속적으로 이루어 질 때
    복잡한 주식별자가 연속적으로 상속되는 경우
    조인 없이 조회하기 편리해 무조건 상속하면 복잡해 지므로 상속과 단절의 적절한 선택이 필요
기본 원칙 + 적절한 판단
  • 업무식별자가 주식별자가 되는 것은 가장 기본적인 원칙
  • 많은 엔터티에서 참조되지 않으면 주 식별자가 복잡한 것은 문제되지 않는다.
    오히려 인조식별자를 채택하면 인덱스만 하나 더 늘어나는 샘
  • 복잡한 주식별자가 나쁜것은 아니지만 무조건 좋은 것도 아니다.
    업무식별자가 너무 복잡한것은 아닌지? 슈퍼식별자가 포함된것은 아닌지? 인조식별자를 채택하는 것은 어떨지?
    다양한 검토 필요

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.