이력 데이터란?

이력관리

이미 존재하는 인스턴스의 속성 값이 변할 때 기존 값(이력/스냅샷 데이터)를 관리하는 것


이력/내역

이력내역
변경되는 데이터(변경이력)발생하는 데이터(발생내역)
UPDATE 수반INSERT 수반
계약이력, 주문이력주문내역, 거래내역, 로그인기록

※ 이력/내역 데이터 판단 기준 : 업무나 데이터 성격이 아니라 데이터 자체가 변경되는지 여부


이력/내역 모델

내역 데이터를 관리하는 모델보안카드 발급시 마다 보안카드 엔터티에 데이터가 생성되므로 내역 엔터티
이력 데이터를 관리하는 모델보안카드 재발급시 고객 엔터티의 관련된 변경 이전 데이터를 보안카드이력 엔터티에 생성하므로 이력 엔터티, 보안카드이력 엔터티에 현재 시점 데이터를 중복 관리할 수 있음(비정규화)
내역 데이터에 대한 이력 데이터를 관리하는 모델데이터 성격을 명확하게 정의한 바람직한 모델, 실체 엔터티는 현재 상태의 데이터만을 관리하려는 경향이 있음


이력 데이터로 관리할지에 대한 판단

  • 데이터를 무조건 통합하려는 것과 같은 경향이 이력 관리에도 존재
  • 이력 데이터의 필요성과, 관리 수준에 대한 명확한 판단 필요
  • 대부분 업무에서 이력 데이터를 보관하는 것은 중요 함
    • 예) 고객의 현재 보험료와 구성 상품 같은 현재 상태 뿐 아니라, 과거 특정 시점의 상태와 미래 임의 시점의 정보가 필요 하기도 함.


이력 데이터 관리 여부 판단 시점

  • 핵심 엔터티를 도출하는 개념 모델링 단계에서 시작 (필자, 이력 관리 대상 여부 결정)
  • 이력 데이터 고려 이전에 본질 데이터가 먼저 확고해져야 하나, 물리 모델링 단계에서 고려시 모델 구조가 바뀔 수 있어 바람직 하지 않음 (다른 엔터티가 영향을 받는 등)
  • 이력 관리 방법, 이력 엔터티의 주 식별자 등 상세한 방법은 논리 모델링에서 결정


이력 데이터 관리 선정 기준

  • 데이터가 시간의 흐름에 따라 변할 수 있는가? (변해야 함)
  • 특정 데이터의 과거 상태를 추적할 필요가 있는가? (있어야 함)
    • 없더라도 시간의 흐름에 따라 데이터가 변할 수 있다면 이력을 관리할 수 있는 모델 고려
  • 가급적 중요 엔터티는 이력 데이터 관리 요건이 생길 것을 대비