728x90
반응형
1. 이력관리란?
- 데이터는 현재의 프로세스만 처리하고 버리는 것이 아니라 마치 후손에게 물려주어야 할 귀중한 문화유산처럼 오랜 기간의 데이터를 유지시켜 좀 더 가치 있는 정보를 제공할 수 있는 밑거름이 되도록 해야 한다.
- 예를 들면 통화 데이터에서 관리되고 있던 환율 데이터에 대한 다음과 같은 업무 요구 사항이 발생하면 환율에 대한 이력을 관리하게 됨
- 데이터 모델이 구현되어 실제 데이터가 들어가 있는 모습이다. 즉, 환율별로 이력이 관리되고 있는 모습을 보여주고 있다.
2. 이력 관리 대상 선정
가) 사용자 조사
- 데이터의 이력을 관리한다는 것은 관리하지 않을 때와 비교했을 때 많은 비용이 들어가는 일이다.
- 이력을 관리할 필요가 없는 데이터에 대해서 이력을 관리하는 것은 여러 가지 측면에서 낭비이다.
나) 인력 데이터 종류
- 발생 이력(Occurrence History) 데이터
- 어떤 데이터가 발생할 때마다 이력 정보를 남겨야만 한다면 이력은 발생 이력이라고 볼 수 있다.
- 변경 이력 (Modification History) 데이터
- 데이터가 변경될 때마다 변경 전과 후의 차이를 확인해야 한다면 변경 이력을 남길 수 있다. - 진행 이력 (Progress History) 데이터
- 업무의 진행에 따라 이 데이터를 이력 정보로 남겨야만 하는 경우가 있다. 가장 대표적인 것이 주문과 같은 업무 처리이다.
다) 이력 관리 형태
- 시점 이력 : 데이터의 변경이 발생한 시각만을 관리
- 선분 이력 : 데이터 변경의 시작 시점부터 그 상태의 종료 시점까지 관리
라) 선분 이력 관리 유형
- 인스턴스 레벨 이력 관리
- 하나의 인스턴스의 어떤 변경이라도 발생하면 전체 인스턴스를 새롭게 생성하는 방식의 이력 관리 유형이다.
- 한번의 액세스로 스냅숏을 참조하는 것이 가능하다. 즉, 한 번의 액세스로 해당 시점의 모든 데이터를 참조하는 것이 가능하다.
- 로그성 데이터를 저장할 목적인 경우 적당한 방법이다.
- 다른 이력 관리 유형에 비해서 저장하기가 쉽다.
- 가장 큰 단점 중에 하나는 하나 이상의 칼럼에 변경이 발생했을 때 이벤트가 모호해진다는 점이다.
- 속성 레벨 이력 관리
- 이력을 관리할 대상 속성에서 변화가 생길 때만 이력을 생성하는 방식이다.
- 인스턴스 레벨과 속성 레벨의 장점을 모두 수용하는 형태의 이력 관리 형태이다.
- 목적이 분명한 엔터티를 생성함으로써 확장성을 확보할 수 있는 용도로 사용할 수 있다.
- 변경 부분만 처리가 가능하다.(독립적 처리 가능)
- 다른 엔터티와 통합 이력 관리가 가능하다.
- 속성 레벨의 단점을 해소할 수 있다.
- 전체를 참조할 때 인스턴스 레벨에 비해 Merge가 발생하는 문제점이 존재한다.
- 부문에 따라 변경 정도의 차이가 심한 경우 유리하다.
3. 선분 이력 관리용 식별자 확정
가) 선분 이력에서 식별자 결정 시 고려사항
- 선분 이력을 관리하는 엔터티의 UID를 확정하는 것은 향후에 테이블로 만들어지고 사용될 때의 성능 측면도 고려되어야 한다.
나) 선분 이력에서 종료점 처리 시 주의사항
- 종료점이 미정이므로 NULL
- 논리적으로는 타당하지만 비교가 불가능
- 인덱스를 사용하지 못하므로 수행 속도 저하 - 수렴하므로 최대치 부여
- 아직 종료되지 않았으므로 무한히 계속되는 것으로 간주
- 최대치 부여 (예 일자라면 9999/12/31)
- 가능한 TABLE creation 시 Default constraints 부여
- 수행 속도에 유리
728x90
반응형
'자격증 > 데이터아키텍처 준전문가(DAsP)' 카테고리의 다른 글
DAsP(4과목) 3-1. 논리 데이터 모델링 이해 (49) | 2023.09.11 |
---|---|
DAsP(4과목) 3-5. 논리 데이터 모델 품질 검토 (44) | 2023.09.10 |
DAsP(4과목) 3-3. 엔터티 상세화 (41) | 2023.09.10 |
DAsP(4과목) 3-2. 속성 정의 (45) | 2023.09.10 |
DAsP(4과목) 2-6. 개념 데이터 모델 작성 (49) | 2023.09.08 |