정보 처리/데이터베이스

데이터 모델링 - 이력 엔티티타입 설계 방법

본클라쓰 2012. 4. 11. 11:40

 

하나의 업무 단위가 시간이 흐름에 따라 발생하는 과거와 현재 데이터를 지속적으로 유지하는 관리 방법을 이력 관리라 하고, 이력 관리를 위해 데이터 모델에 반영하여 표현하는 엔티티타입을 이력 엔티티타입이라 한다. 이력 관리는 정보화 시스템을 구축하는 해당 업무에서 가장 중요한 업무에 많이 적용된다. 예를 들어, 과거 데이터를 추적하거나 통계 데이터 활용 등 데이터 분석을 많이 하는 엔티티타입에 적용된다.

 

시스템을 구축하면 대부분의 데이터는 지속적으로 유지되고 관리되므로 해당 업무의 모든 데이터가 결국 이력 데이터다. 그래서 이력이 무엇이냐는 기준이 중요한데, 우리가 데이터 모델링을 진행할 때 이력이라고 하는 기준은 업무 단위의 시작과 끝을 가지고 판단해야 한다.

 

기업 경영 정보를 위해 단순히 조회만을 위한 데이터 웨어 하우징이나 통계 정보가 아닌 일반적인 업무는 업무 단위의 시작과 끝이 있다. 인사 관리에서 사원은 입사하면 반드시 퇴사한다. 주문 관리에서 상품을 주문하면 배송을 하든지 취소를 하든지 업무를 종결할 것이다.

 

이와 같이 시작과 끝이 존재하는 업무에서 하나의 업무 단위가 진행하는 중에 시간에 따라 변화하는 데이터가 존재하는 경우가 있다. 이때 데이터를 단순히 수정하여 관리한다면 그 데이터는 항상 그 시점의 현재 데이터만 유지하는 형태가 될 것이다. 만약 데이터를 수정하지 않고 계속 입력하여 관리한다면 그 시점의 과거 데이터도 유지되면서 현재 데이터가 발생할 것이다. 정보화 시스템을 구축하면서 이력의 대상이 되는 항목은 후자, 즉 하나의 업무 단위가 동일한 관리 항목에 대해 과거 데이터도 유지되면서 현재 데이터도 관리되는 형태다.

 

 

 

이력 데이터 발생의 세 가지 유형

 

이력의 종류는 이력이 발생하는 유형에 따라 세 가지로 구분될 수 있다.

 

 · 변경이력 - 하나의 엔티티타입이 변경되었을 때 변경 이전과 이후의 데이터를 모두 관리하는 변경 이력

 · 발생이력 - 년,월,일 등 시간 순으로 발생하는 발생 이력

 · 진행이력 - 업무 진행 상태에 따라 업무의 상태 정보를 관리 하는 진행 이력

 

 

 

이력 데이터의 데이터 모델링 방법

 

일단 해당 업무에서 이력 데이터를 관리하고자 했다면 데이터 모델에서 가장 중요하게 고려해야 할 부분은 엔티티타입에 대한 식별 및 구성과 그 엔티티타입이 가지는 관계 그리고 PK이다.

 

먼제 엔티티타입은 변경 이력, 발생 이력, 진행 이력에 따라 세 가지 형태로 구분하여 식별한다. 세 가지 모두 꼭 업무에 필요한지 통계 정보나 기업 의사 결정에 필요한 정보인지 먼저 검토하고 필요한 업무에 대해서만 데이터 모델에 반영한다.

 

먼저 엔티티타입의 구성을 결정한다. 이력이 발생한다는 것은 동일한 엔티티타입에 대해 시간에 따라 데이터가 발생하는 것이므로 시간을 나타내는 속성이 필요하다. 이때 엔티티타입을 한 개로 유지할 것인지 두 개로 분리할 것인지 결정해야 한다. 시간에 따라 속성의 일부만 변하는지 아니면 모든 속성이 변하는지 파악하고, 일부 속성만 변할 경우 데이터 중복을 피하기 위해 두 개의 엔티티타입으로 분리하여 설계한다. 또한 동일 엔티티타입의 모든 속성이 시간에 따라 같이 변한다 할지라도 데이터를 조회하는 유형에 따라 엔티티타입의 분리 여부를 결정해야 한다. 만약 업무에서는 항상 현재 유지되는 정보만 조회하고 과거 데이터는 가끔씩 조회한다면 엔티티타입을 현재에 해당하는 엔티티타입과 이력에 해당하는 엔티티타입으로 분리하여 설계할 수 있다.

 


 

출처) 데이터베이스 설계와 구축, 한빛미디어, 이춘식 저