업무 식별자

정의

  • 업무적으로 엔티티 인스턴스 구분하게 하는 식별자


특성

  • 인스턴스를 구분하는 식별자이므로 인스턴스의 갯수 늘리는데 영향을 줌
  • 업무 데이터를 쌓는 기준이 됨
  • ex) EMP 테이블에서
    • 사원번호가 주식별자
    • 주민번호가 업무식별자 일 때
    • --> 주민번호가 같으면 새로운 사원으로 인식하지 않겠다는 의미
    • --> 새 인스턴스 추가 기준은 주민번호 속성
    • --> 주 식별자인 사원번호는 인스턴스를 유일하게 구분하는 기능은 가지고 있지만 인스턴스 갯수를 늘리지는 못 함


  • --> 동일 인물이 재 입사 시 다른 사번을 부여 한다면 사원번호+주민번호가 업무 식별자가 되어야 함



  • --> 지정 방법에 따라 업무 데이터 관리 방법 변경


사례

  • 종속 엔티티에서의 업무 식별자는 애매 해 질 수 있다
  • 고객 - 고객주소 구조에서 고객 별 주소가 여러 개 있을 수 있음(ex 직장, 자택, ...)
  • 주 식별자는 고객번호+순번 - 고객 테이블에서 상속 + 여러 주소를 넣을 경우 고려으로
  • 업무 식별자는 고객번호+주소유형




  • 8-6 의 그림에 순번 외 주소유형코드를 식별자로 넣었을 때 업무-주 식별자가 일치
  • 주소유형코드는 부분 주 식별자(Partial Primary Identifier) 라고 함


  • 8-5 처럼 설계 하는 이점이 있는지?
  • 8-5 처럼 설계 하는것은 부분 주 식별자 + 인조 식별자로 주 식별자를 구성하는 방법
  • 엔티티에서 업무 내용을 파악하기 어려우므로 추천하지 않음


업무 식별자가 되기 위한 조건

  • 유일한 값을 가지고 있어야 함
  • 널을 허용하면 안됨
  • 수정되지 않는게 기본 원칙
  • 인스턴스를 발생시키는 값이며
  • 수정되었을 시 외래 식별자(자식 엔티티)의 값에 영향을 미치므로


생성 요령

  • 어떤 데이터를 관리 할 것인지 정한다
  • 어떤 기준으로 데이터가 생성되는지 정한다
  • 고객을 "인격체"로 정의하면 업무식별자는 주민번호
  • 고객을 "인격체 + 역할" 로 정의하면 업무식별자는 주민번호+고객유형