-
이력 유형 데이터 모델링Technique/RDBMS 2015. 12. 21. 22:06반응형
이력 : 시간에 따라 발생하는 데이터 형식
이력 데이터 : 시간에 따라 발생하고, 동일한 컬럼의 유형에 발생한다.
또는 시간에 따라 반복적으로 발생하기 때문에 다른 테이블에 비해 대량의 데이터가 테이블에 적재될 가능성이 크다.
이러한 특성으로 인해 데이터베이스에 발생하는 트랜잭션의 성능 저하로 이어지는 경우가 빈번한다.
이력의 유형은 테이블 구분에 따라, 컬럼과 로우 단위에 따라, 이력 데이터의 발생 방법에 따라 분류 할 수 있다.
1.테이블 구분에 따라 구분하는 방법
1.내부 스탭샷 이력
- 별도의 테이블 없이 시간에 따라 자기 자신의 테이블에 데이터가 발생되는 구조
- 이력 테이블이 마스터이므로 관계를 통해 PK구조도 모두 상속됨
- 특징 : 일부 속성값이 변경되어도 전체 속성값 생성
2.1:M 스냅샷 전체 이력
- 별도의 테이블에 마스터 테이블이 현재 정보를 포함해 변경된 모든 정보를 보관함
- 특징 : 현재 정보 포함, 일부 변경되어도 전체 생성
3. 1:M 스탭샷 과거 이력
- 마스터 테이블에는 현재 정보만 존재, 이력 테이블에는 과거 변경 정보만 보관
- 특징 : 과거정보, 일부 변경 되어도 전체생성
4. 1:M 스탭샷 군집 전체 이력
- 마스터 테이블의 일부 컬럼들을 묶어 별도의 테이블에 마스터 테이블의 현재정보를 포함한 모든 변경된 정보를 보관함
- 특징 : 트랜잭션 형식이 비슷하게 발생하는 컬럼을 묶어서 이력 테이블 구성, 현재 + 과거
5. 1:M 스냅샷 군집 과거 이력
- 마스터 테이블의 일부 컬럼들을 묶어 별도의 테이블에 마스터 테이블의 과거정보만을 변경된 정보도 보관함
- 특징 : 트랜잭션 형식이 비슷하게 발생하는 컬럼을 묶어서 이력 테이블 구성, 과거 정보
2. 컬럼과 로우데 따라 구분하는 방법
1. 로우 단위 이력
- 이력 테이블에는 마스터 테이블의 변경된 내용이 하나의 로우에 전체적으로 기록되는 형색 ( 일반적인 이력 )
2. 컬럼 단위 이력
- 이력 테이블에는 마스터 테이블의 변경된 내용이 하나의 로우에 하나의 컬럼 변경된 내용이 기록된 형태
3. 이력 데이터 발생 방법에 따라 구분하는 방법
1. 변경이력
- 마스터 테이블의 컬럼이 변경되면 이력을 관리하는 형태
2. 발생이력
- 마스터 테이블의 PK를 포함하여 전체에 대해 인스턴스 생성
- 엄격하게 구분하면 이력 형식이 아닌 인스턴스 생성이라고도 구분할 수 있음.
3. 진행이력
- 업무진행 상태에 따라 업부의 상태정보를 관리하는 관리
- 상태정보가 계속 영향을 미치는 형태
업무적으로 먼저 이력 유형을 결정하고, 그 이후에 이력 테이블에 데이터가 대량으로 적재될 것이 예상되면 성능을 고려한 기능상 컬럼을 추가하거나 테이블 통합/분리를 고려 하면 된다.
발생이력, 변경이력은 최신 값에 대한 기능성 컬럼이 존재하지 않으면 성능이 저하 된다.
진행이력은 발생이ㅕㄱ이나 변경이력과는 달리 발생된 시점 이외에도 데이터 조회가 빈번하게 이루어진다.
이력 모델 선택 방법
업무적 성격에 따라 이력을 선택한다는 것은 크게 보아 변경에 대한 추적을 어디까지 할 것인지, 엔티티타입의 관계는 어떻게 형성되는지를 보고 판한다는 의미이다.
1:M 스탭샷 전체 이력형식 을 가장 많이 사용한다
특징
- 두개의 테이블을 사용
- 현재와 현재+과거 테이블 보유
장점
- 현재/이력 관계 설정이 용이함
- 현재 데이터에 대한 성능 처리 용이함
고려할 점
- 현재 데이터 중복
- 관리 항목 증가
일부 중복은 있지만 관리 항목이 명확하고 대량 데이터 처리 시 현재 테이블에 영향을 주지 않는 특성을 가지고 있기 때문이다.
이력 데이터의 양이 적다면 테이블을 분리하여 관리 항목을 증가시키기보다는 하나의 테이블로 구성하여 단순한 모습을 확보하는 것도 좋은 방법이다.
반응형'Technique > RDBMS' 카테고리의 다른 글
[ 메모 ] is null 을 사용한 order by (0) 2016.03.31 Primary Key, Unique Index 에 대하여 (0) 2015.12.23 엔티티타입, 통합? 분리? (0) 2015.12.23 식별자관계와 비식별자관계 설정 (0) 2015.12.21 PK 컬럼 순서, 대충 하지 말자 (0) 2015.12.20