데이터 모델링
이력 관리 데이터 모델 (History management data model)
데이터모델링을 하다보면 닥치게 되는 업무 요구사항 중
하나가 이력관리 데이터 모델을 필요로 하는 경우가 많다
이력관리란 ?
말그대로 데이터를 이력을 관리하겠다라는 의미이다.
데이터 이력이 필요한 이유는 무엇을까
그리고 주로 관리해야 하는 이력에는 어떠한 것들이
있을까라는 것에는 다양하다.
모든 업무는 언제 시작해서 언제 끝난는지에 관한 정보가
기록된다.
예를 들어 주민등록증의 경우 뒷부분에는 주소변경란이 있다.
주소지를 옮길때마다 그곳에 주소이력이 기록된다.
다시 말해 주민등록증 뒷면에는 그사람이 어디에서 살았고
현재는 어디에 사는지 알 수 있다.
이것이 이력관리 이다.
여러가지 이유로 인해서 이력을 관리한다.
언제 이 작업을 수행했는지, 그리고 데이터의 변경사항을
알기 위해 누가 이 업무를 담당하는지 또는 처리하는지 알기위해
고객의 요구사항 변경을 확인하기 위해 등등
다양한 이유들로 이력 데이터를 만들어 관리한다.
이력들은 크게 세가지로 나눌 수 있다.
1. 발생이력 (Occurrence history)
어떤 데이터가 발생할때마다 이력 정보를 남겨야 한다면
이것은 발생이력이라고 볼 수 있다.
예를 들어 고객의 접속기록을 남겨야 하는 경우가 그것이다.
또는 웹사이트를 접속할때마다 남겨야 하는경우이다.
이것이 발생이력이다.
2. 변경이력 (Modification history)
데이터가 변경 될 때마다 변경 전과 변경 후의 차이를 확인해야한다면
변경 이력을 남길 수 있다.
예를 들어 고객이 주문을 한 후 주문 정보가 변경되었을 때 이전 주문과
변경된 정보들을 관리하기 위해 변경된 새로운 주문정보를 이력정보로
남겨야 한다.
3. 진행이력 (Progress history)
업무의 진행에 따라서 이 데이터들을 이력 정보로 남겨야 할 경우가 있다.
가장 대표적인게 주문과 같은 업무처리이다.
주문의 경우 구매신청 -> 입금완료 -> 배송준비중 -> 배송중 -> 배송완료
혹은 주문취소등과 같은 업무 진행상황이 있다.
만약 주문 정보들 중에서 어느 한단계의 정보만을 저장한다면
의미있는 정보일까?
대부분의 주문 업무 처리의 경우 각 단계가 언제 누구에 의해 처리되고
현재 단계는 무엇인지 관련 정보가 필요한 경우가 많다.
이러한 업무가 진행될때 진행이력이 중요하게 사용된다.
이력 관리를 심플하게 발생, 변경, 진행 이력으로 구분할 수 있지만
이러한 이력관리의 구분보다 중요한 것은
이 데이터에 이력관리가 필요한 것인지 결정하고
이력관리를 한다면 어떤 데이터까지 다시말해 이력관리할 범위를
결정하는 것이다.
또하나는 오래된 이력 데이터들을 어떻게 처리할 것인지 결정하는 것이다.
1. 이력관리가 필요한가?
2. 어느 범위에 이력 관리가 필요한가?
3. 오래된 이력 데이터들을 처리하는 방법은?
'데이터' 카테고리의 다른 글
데이터베이스 SQL 조인 (0) | 2020.05.31 |
---|---|
SQL을 어떻게 하면 잘 작성할가 (0) | 2020.04.21 |
IT개발 정보요구사항 및 요건분석 (0) | 2020.04.20 |
인덱스 유형을 알아보자 클러스터드 인덱스 넌 클러스터드 인덱스 (0) | 2020.04.10 |
데이터베이스 모델링 - 슈퍼타입과 서브타입 Super Type Sub Type Entity (0) | 2020.04.10 |
댓글