본문 바로가기
자격증/데이터아키텍처 준전문가(DAsP)

DAsP(4과목) 3-4. 이력관리 정의

by 김엉배 2023. 9. 10.
728x90
반응형

1.  이력관리란?

- 데이터는 현재의 프로세스만 처리하고 버리는 것이 아니라 마치 후손에게 물려주어야 할 귀중한 문화유산처럼 오랜 기간의 데이터를 유지시켜 좀 더 가치 있는 정보를 제공할 수 있는 밑거름이 되도록 해야 한다.


  • 예를 들면 통화 데이터에서 관리되고 있던 환율 데이터에 대한 다음과 같은 업무 요구 사항이 발생하면 환율에 대한 이력을 관리하게 됨
    - 데이터 모델이 구현되어 실제 데이터가 들어가 있는 모습이다. 즉, 환율별로 이력이 관리되고 있는 모습을 보여주고 있다.

 

 

 

 

2.  이력 관리 대상 선정


가) 사용자 조사

  • 데이터의 이력을 관리한다는 것은 관리하지 않을 때와 비교했을 때 많은 비용이 들어가는 일이다.
  • 이력을 관리할 필요가 없는 데이터에 대해서 이력을 관리하는 것은 여러 가지 측면에서 낭비이다.

나) 인력 데이터 종류

  • 발생 이력(Occurrence History) 데이터
    - 어떤 데이터가 발생할 때마다 이력 정보를 남겨야만 한다면 이력은 발생 이력이라고 볼 수 있다.

 

  • 변경 이력 (Modification History) 데이터
    - 데이터가 변경될 때마다 변경 전과 후의 차이를 확인해야 한다면 변경 이력을 남길 수 있다.

  • 진행 이력 (Progress History) 데이터
    - 업무의 진행에 따라 이 데이터를 이력 정보로 남겨야만 하는 경우가 있다. 가장 대표적인 것이 주문과 같은 업무 처리이다.

 

다) 이력 관리 형태

  • 시점 이력 : 데이터의 변경이 발생한 시각만을 관리
  • 선분 이력 : 데이터 변경의 시작 시점부터 그 상태의 종료 시점까지 관리

 

라) 선분 이력 관리 유형

  • 인스턴스 레벨 이력 관리
    - 하나의 인스턴스의 어떤 변경이라도 발생하면 전체 인스턴스를 새롭게 생성하는 방식의 이력 관리 유형이다.
    - 한번의 액세스로 스냅숏을 참조하는 것이 가능하다. 즉, 한 번의 액세스로 해당 시점의 모든 데이터를 참조하는 것이 가능하다.
    - 로그성 데이터를 저장할 목적인 경우 적당한 방법이다.
    - 다른 이력 관리 유형에 비해서 저장하기가 쉽다.
    - 가장 큰 단점 중에 하나는 하나 이상의 칼럼에 변경이 발생했을 때 이벤트가 모호해진다는 점이다.

 

  • 속성 레벨 이력 관리
    - 이력을 관리할 대상 속성에서 변화가 생길 때만 이력을 생성하는 방식이다.
    - 인스턴스 레벨과 속성 레벨의 장점을 모두 수용하는 형태의 이력 관리 형태이다.
    - 목적이 분명한 엔터티를 생성함으로써 확장성을 확보할 수 있는 용도로 사용할 수 있다.
    - 변경 부분만 처리가 가능하다.(독립적 처리 가능)
    - 다른 엔터티와 통합 이력 관리가 가능하다.
    - 속성 레벨의 단점을 해소할 수 있다.
    - 전체를 참조할 때 인스턴스 레벨에 비해 Merge가 발생하는 문제점이 존재한다.
    - 부문에 따라 변경 정도의 차이가 심한 경우 유리하다.

 

 

 

 

3.  선분 이력 관리용 식별자 확정

가) 선분 이력에서 식별자 결정 시 고려사항

  • 선분 이력을 관리하는 엔터티의 UID를 확정하는 것은 향후에 테이블로 만들어지고 사용될 때의 성능 측면도 고려되어야 한다.

 

나) 선분 이력에서 종료점 처리 시 주의사항

  • 종료점이 미정이므로 NULL
    - 논리적으로는 타당하지만 비교가 불가능
    - 인덱스를 사용하지 못하므로 수행 속도 저하

  • 수렴하므로 최대치 부여
    - 아직 종료되지 않았으므로 무한히 계속되는 것으로 간주
    - 최대치 부여 (예 일자라면 9999/12/31)
    - 가능한 TABLE creation 시 Default constraints 부여
    - 수행 속도에 유리
728x90
반응형