관계형 데이터 모델링 프리미엄 가이드 DB구축 (2014년)
주 식별자 선정 절차 0 0 37,895

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


주식별자 선정 단계



1. 업무 식별자 도출
  • 업무 식별자 도출 후에 그 중 하나를 주 식별자로 선정
  • 업무 식별자는 엔티티 정의 단계에서 규명 되어야 함


2. 후보 식별자 도출
  • 인스턴스 유일성 보장하는 가능한 많은 식별자 도출
  • 후보 식별자를 모두 도출 후 업무 식별자를 도출 할 수도 있지만(2-1번 순) 권고하지 않음
  • 업무 식별자를 제외한 후보 식별자는 실무에 크게 많지 않으며
  • 업무 식별자가 존재 한다면 후보 식별자의 유니크 인덱스는 생략해도 큰 지장이 없다
  • 업무 식별자가 올바르게 도출 되었는지 다시 한번 검토하는 차원에서 후보 식별자 도출하는 것이 좋다


3. 주 식별자 도출
  • 가능한 업무 식별자를 주 식별자로 사용
  • 불가능 할 시 후보 식별자를 주 식별자로 사용
  • 불가능 할 시 인조 식별자 사용
  • 엔티티 종류/카디널리티에 따른 주 식별자 구성의 일반적인 예는 아래와 같다



4. 주 식별자 속성 순서 정하기
  • 속성의 순서는 조회 성능에 많은 영향을 미치므로 중요하다
  • 순서를 모델링 단계에서 Fix 하는것은 어렵다
  • 조회 요건을 검토할 수 있을 때는 모델링 이후 개발 단계에서 SQL 이 나올 시기이다
  • 이로인해 개발 후 테스트 단계에서 성능 문제로 인한 주 식별자 속성 순서 변경 문제가 발생할 수 있다
  • 자주 사용되는 조건을 논의해 파악하거나 주요 화면을 확인 해 순서를 논의 하며 추 후 SQL 을 분석해서 최종 순서 결정해야 한다


성능을 고려 한 주 식별자 정하는 방법

  • 자주 사용되는 조건이 선행
  • 조건절의 자주 사용되는 조건의 분포도가 좋은 속성을 선행
  • 분포도는 엔티티 전체 데이터의 분포도를 의미 하는 것이 아님
  • 상위 엔티티의 값과 관계 있는 하위 엔티티의 인스턴스 개수를 의미(카디널리티가 적은 것)(?)
  • WHERE 조건절의 데이터 분포가 적은 속성이 선행
  • WHERE 조건에서 = 나 Between 조회 속성이 선행


주 식별자로 인조 식별자 선택 시 특성 및 주의사항

  • 데이터를 일반화 할 수록 인조 식별자를 사용하게 되는 경향이 있다
  • 인조 식별자는 확장성이 좋으므로 통합(일반화) 모델 엔티티에서 자주 사용된다
  • 실체/자립 엔티티에서도 인조 식별자가 주로 사용된다


  • 업무 식별자(후보 식별자)는 대체 식별자가 되므로 반드시 유니크 인덱스를 생성해야 한다
  • 인스턴스 중복을 방지 목적
  • 데이터 발생의 기준이 되는 업무 식별자는 특히 유니크 인덱스 설정이 필수적이다


"구루비 데이터베이스 스터디모임" 에서 2014년에 "관계형 데이터 모델링 프리미엄 가이드" 도서를 스터디하면서 정리한 내용 입니다.

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

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

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

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