업무가 변경될 가능성이 있을 때는 이를 대비해서 모델을 유연하게 만드는 인조 식별자를 주 식별자로 설계한다.
[그림1] 계좌 엔터티의 주 식별자인 세 개 속성을 붙여서 계좌번호로 사용한다.
[그림1]
현재 업무에 의해서 계좌번호는 10자리 번호이며, 이를 3-2-5 체계로 구성해서 주 식별자를 세 개의 속성으로 설계했지만 향후에 계좌번호 체계가 3-8 등으로 바뀔 수 있으며, 상품번호 자체가 3자리로 변경될 수 있다면 [그림1] 계좌 엔터티로는 대처하기 어렵다.
위와 같이 업무가 바뀜으로써 주 식별자까지 변경되는 상황을 방지하기 위한 방법 중 하나가 [그림2] 계좌 엔터티처럼 인조 식별자를 사용하는 것이다.
[그림2]
[그림2] 계좌 엔터티와 같이 인조 식별자를 사용하면, 체계가 3-2-5에서 3-8 정도로 변경돼도 자릿수만 늘리면 되므로 모델 변경이나 프로그램 변경을 최소화할 수 있다. 상품번호가 3자리로 늘어나면 3-3-4로 할 수 있는 등 [그림1] 계좌 엔터티보다 변화에 대처하기 수월하다.
업무가 변경될 가능성이 있을 때는 인조 식별자를 사용하는 것이 모델을 확장하기 좋은 유연한 모델을 만드는 방법이다.
만약 업무 식별자를 주 식별자로 사용한 상태에서 주 식별자를 변경해야 할 정도로 업무가 바뀌었을 때 해당 엔터티의 하위 엔터티가 있다면 주 식별자를 변경하기 사실상 어렵다. 이때 인조 식별자를 사용한 상태라면 주 식별자는 변경하지 않고, 업무 식별자에 생성한 유니크 인덱스만 변경하면 된다. 업무가 바뀌더라도 주 식별자가 바뀌지 않는다면 감당할 수 있는 정도다.
인조 식별자를 사용하는 주요 이유는 두 가지다. 업무(후보) 식별자가 복잡하면서 하위 엔터티가 많을 때 인조 식별자를 사용해서 모델을 단순하게 만드는 게 주요 이유다.
또 다른 이유는 모델을 의도적으로 유연하게 만들기 위해서다. 하나의 속성으로 구성된 인조 식별자는 주로 무의미하게 증가하는 번호를 사용하기 때문에 업무 식별자와 직접 연관이 없다. 따라서 자유롭게 사용할 수 있어 모델이 유연해진다.
'데이터 Story > 모델링 매뉴얼' 카테고리의 다른 글
주 식별자 설계 원칙-변경되지 않는 속성 (0) | 2016.08.30 |
---|---|
사원 엔터티의 업무 식별자 (0) | 2016.08.14 |
엔터티에 인스턴스를 생성하는 기준이 되는 속성을 주 식별자로 설계 (2) | 2016.07.16 |
업무 식별자를 도출할 때는 논리적으로 인스턴스를 구분할 수 있는지로 검토 (0) | 2016.07.13 |
실체 엔터티의 주 식별자와 시각(일자/일시) 속성 (0) | 2016.07.07 |