본문 바로가기

데이터 Story/모델링 이론

이력 엔터티 확정 절차

[그림1]은 이력 엔터티 확정 절차입니다.



[그림1]

 

가장 먼저 해야 할 일은 이력 데이터를 관리해야 하는지를 분석하는 것입니다. 이력(지나간 과거) 데이터를 사용하는 업무가 없다면 이력 데이터 관리 요건은 없는 것입니다. 그냥 기존 데이터를 최신 데이터로 업데이트하면 끝입니다. 속 편하게 그냥 업데이트하고 싶지만 업무가 그렇게 간단하지 않습니다.

 

변경된 과거 데이터를 관리해야 하는지에 대해서는 현업의 의견이 가장 중요한 기준이 됩니다. 동종 업체의 업무를 참조할 수도 있고요.

 

현업의 판단이 이력 데이터는 필요 없다는 것이라도 모델러가 판단하기에 필요하다고 생각되면 이력 엔터티를 채택할 수도 있습니다.

 

당장에는 사용하지 않지만 이력 데이터를 쌓아 두면, 업데이트해서 이전 데이터를 없애는 대신 저장해서 새로운 인스턴스로 쌓아 두면 추후에 유용하게 사용될 수 있습니다. 데이터의 중요도를 고려해야 하지만 가능한 순수 업데이트와 삭제는 없도록 하는 것이 좋습니다.

 

그리고 현업의 요건과는 무관하게 IT 담당자 입장에서 이력 데이터를 보관해야 할 때도 있습니다. 잘못된 작업의 복구나 잘잘못을 따지기 위해 필요할 수 있습니다.

 

이렇게 분석해서 변경 데이터를 관리해야 하는 요건이 있다면 이력 관리 대상 엔터티가 됩니다.

 

다음은 이력 데이터를 어떤 방법으로 관리하는 것이 가장 효율적일지를 고려해야 합니다. 이력 데이터를 관리하는 방법은 크게 다섯 가지가 있으며 자세한 내용은 이어서 설명하겠습니다.

 

이력 모델 유형을 결정하는 단계가 가장 어려운 단계입니다. 대부분은 거의 기계적으로 이력 모델 유형을 결정할 수 있지만 때에 따라서는 판단하기 까다로울 수 있습니다. 엔터티 정의(본질 데이터 정의가 어려우면 이력 데이터는 정의하기 더욱 어려움)나 중복 데이터 등과 연관돼 기준이 흔들릴 때가 있습니다.

 

이력 관리 유형이 정해졌으면 그다음으로는 선분 이력을 채택할지를 결정합니다. 선분 이력은 이력 모델 유형과도 연관 있어 이력 모델 유형을 결정하면서 동시에 이루어질 수 있습니다.

 

성능 이슈가 없다면 일반 이력 엔터티(변경일자 존재)를 채택하고 성능 문제가 발생할 가능성이 있다면 선분 이력 엔터티(시작일자•종료일자 존재)를 채택해야 합니다. 이전 글에서 언급했지만 선분 이력(종료일자)을 무조건 채택하는 것은 바람직하지 않습니다.

 

마지막으로 이력 엔터티의 주 식별자(PK)를 확정합니다. 이 단계도 이력 모델 유형을 결정하거나 선분 이력을 고민하면서 함께 이루어지기도 합니다.

 

물론 여기서의 주 식별자는 자신 엔터티 입장에서 확정하게 됩니다. 많진 않지만 추후에 하위 엔터티까지 고려해서 주 식별자가 바뀔 수도 있습니다.

 

주 식별자를 확정하면 이력 엔터티가 확정됩니다.