8.1 업무 식별자

  • 식별자 (Unique Identifier)는 엔터티에서 데이터의 유일성을 보장해 주는 속성이나 속성 집합이다
  • 식별자가 하는 가장 중요한 역할은 엔터티에서 인스턴스를 유일하게 구별해 주는 것
  • 논리 모델의 주 식별자는 물리 모델에 서 주 키(Primary Key)가 된다


8.1 업무 식별자(Business Identifiers)란?

  • 엔터티에 존재히는 인스턴스의 유일성을 보장해 주는 것이 식별자이다.
  • 엔터티 내의 인스턴스마다 서로다른 값을 가지는 속성이 식별자이다.
  • 업무적으로 인스턴스를 구분하게 히는 식별자를 업무 식별재(Business Identifier)라고 한다.


예1) 사원번호

  • 엔터티의 주 식별자(PK)는 사원번호가 일반적이다. 사원 엔터티의 인스턴스가 추가되면 사원번호도 새롭게 생성된다.


요건
  • 홍길동이 퇴사하고 재입사 할때 다른 사원번호를 부여
  • 주식별자는 사원번호이므로 사원번호로도 엔터티의 인스턴스를 유일하게 식별할 수 있다.
  • 사원번호 속성은 인스턴스를 구별하여 사용하지만 엔터티의 인스틴스를 늘리는 데는 영향력이 없다.
    ( 새로운 인스턴스가 추가되는 기준은 사원주민등록번호 )


요건
  • 퇴사하고 재입사 하더라도 같은 사원변호를 사용


유의할점
  • 같은 사람임에도 입사 연도에따라 사원변호가 달라짐으로써 사원 데이터를 통합관리 하는데 어려움을 겪는 경우를 종종 본다.
  • 한 사람에 대한 사원번호가 여러 개 존재하는 것은 바람직하지 않다.
  • 입사연도를 사용체계가 사원번호에 존재하면 유연하지 않으므로 바람직하지 않다.
  • (그림 8.2) 와 같이 주 식별자 체계가 속성에 종속되는 것은 좋지 않다. (그림 8.2) 의 사원번호 속성 값에는
  • 입사연도+순번헝태의 체계가 존재하는데 입사연도 값은 입사일자 속성에 종속된다 (입사 연도가 변경되면 사원변호도 변경)


예2) 고객 번호

  • 고객주소 엔터티에서 Pk가 고객번호+고객순번은 보다 고객번호+주소유형코드 바람직하다.(고객순번은 인조식별자)
  • 고객주소 엔터티의 업무 식별자는 고객번호 속성과 주소유형 코드 속성이다. 비록 고객변호가 고객 엔터티의 인조 식별자이지만
    고객주소가 종속 엔터티이므로 고객 엔터티의 주 식별자 인 고객번호는 업무 식별자에 포함된다.
  • 고객의 주소를 업무적으로 구분해 줄 수 있는 주소유형 코드 속성이 고객주소 엔터티의 업무 식별자이다.
  • 종속 엔터티 일 때 부모 엔터티의 주 식별자와 자신 엔터티의 부분주 식별자를 합쳐야 자신의 주 식별자가 된다.
  • 일반적으로 업무식별자(고객번호)와 인조식별자(주소순번)를 혼합한 형식으로 주 식별자를 사용하는 것은 비람직하지 않다.


  • 부모 엔터티의 주 식별자도 업무 식별자에 포함되므로(그림 8.6) 모델과 같이 고객번호와 주소유형코드 속성이 주식별자면서 업무식별자가된다
  • 주소유형코드속성은 고객주소엔터티의 부분주식별자(Partial Primary Identifier)라고 한다.


  • 주식별자를 단순하게 하려면 (인조식별자사용) (그림 8.7) 과 같은 모델을 사용할수 있다.


업무 식별자는 특징과 제약
  • 업무 식별자는 유일한 값을 가지고 있어야 한다.
  • 만약 업무 식별자가 여러 속성으로 구성됐다면 조합된 값이 엔터티에서 유일하게 존재
  • 업무 식별자는 널(Null) 값을 가지면 안 된다.
  • 업무 식별자는 대체로 수정되지 않는다.(인스턴스를 발생시키는 기준/업무식별자자 주식별자로 사용됐다면 하위(자식) 엔터티의 외래 식별자에 영향을 미친다.)


기타
  • 식별자를 모르고는 엔터티를 명확하게 정의할 수 없다.
  • 정확하지 않은 엔터티 정의가 잘못된 모델링의 시발점이 된다.
  • 속성을 정하려면 엔터티에 어떤 데이터를 관리할 것인지를 정해야 한다.
  • 엔터티에서 관리할 데이터가 정해진 다음에는 그 데이터가 어떤 기준에 의해서 생성되는지를 정의해야 한다 (예:고객 데이터를 관리히는 엔터티가 필요하면 고객 엔터티의 인스턴스를 발생시키는 기준을 정의 )


정리
  • 모델링의 초반 단계인 개념 모델링 단계에서 업무 식별지를 도출해야 한다
  • 최종 모델인 물리 모델에서는 주 식별자(Primary Key)가 정해지게 된다 대부분 업무 식별자가 주 식별자로 결정
  • 업무 식별자의 채택이 여러 가지 이유로 불리할 경우 인조 식별자가 주 식별자로 사용