1. 원장성 테이블 (Master Table)
구성 형태
업무의 핵심 개체(Entity)들로서 주로 업무성격의 주체(Subject, Source)에 대한 정보를 담고 있으며, 부속된 많은 자식 테이블(child table)들을 거느리고 있다, 또한 이력 테이블(History table)도 부속되어 있기에 dw 시스템을 구축할 때도 이와 같은 원장성 테이블은 아주 중요한 핵심 테이블(Key table) 역할을 하게 된다.
여기서 주체(Source)란 행위(Behavior)의 주체를 말한다. 쉽게 예를 들어 설명하면 모든 업무의 프로세스(process)는 주체와 행위, 그리고 대상(Target, Object)로 집약될 수 있다. 즉, "홍길동은 카드로 멋진 컴퓨터를 구입했다"라는 내용을 업무 프로세스 관점에서 바라보면 [홍길동]과 [카드]는 주체로서 각각 사람주체와 사물주체를 말하는 것이고, [구입했다]는 행위이며, [컴퓨터]는 대상이 되는 것이다.
데이터 성격
현재(가장 최신)의 상태와 속성 정보를 유지, 관리한다. 가령 고객 정보 마스터 테이블을 예로 들면, [홍길동]이란 사람은 많은 속성을 가지고있고 늘 최신의 정보상태를 유지한다. 속성들도 시간이 흘러도 변하지 않는 불변 속성과 시간의 경과에 따라 상태가 변하는 가변 속성이 존재한다. "생년월일", "주민번호", "성별" 등은 불변 속성이기에 처음 올바로 등록했다면 그 값은 절대로 변하지 않는다. "건강상태", "주소", "전화번호" 등은 가변 속성이기에 처음 등록 이후, 계속 변하게 된다, 따라서 최신의 정보를 늘 유지하기 위해 관리되는 항목이며, 이러한 가변 속성들을 관리하기 위해 이력 테이블(History table)이 존재하게 된다.
2. 거래성 테이블 (Transactional Table)
구성 형태
행위 (behavior) 테이블을 마말하는 것으로, "카드 거래 내역 테이블, 입출금 내역 테이블" 등이 해당 된다.
데이터 성격
원칙적으로 거래성 테이블은 등록만 되는 개념이지, 변경되는 개념이 아니다, 즉, "카드 거래 내역 테이블"을 본다면, 카드 승인시에 승인 기록이 저장되고, 이를 정정하기 위해서는 변경이 발생하는 것이 아니라, 취소 기록을 등록하게 된다. 어떠한 경우도 한 번 등록된 내용을 변경하는 경우는 없다, 따라서 이력 테이블은 존재하지 않는다.
3. 양면성 테이블 (Duplicity Table)
구성 형태
예를 들면 카드를 발급받기 위해서는 카드 신청서를 작성하듯 이 프로세스를 전산 시트메에 구축하게 되면 "카드 신청 테이블"이 존재하게 될텐데 신청이라는 행위의 활동이므로 이는 분명 거래성 테이블로 분류될 수 있는데, 온전한 거래성 테이블로 보기 힘든 이유가 신청서를 잘못 ㅏㄱ성했다고 동일한 내용을 수정(update)하는 경우가 발생하기 때문이다, 즉, 신청 시 주소가 틀렸다고 수정하고, 영문 이름이 틀렸다고 수정하고 한다는 것이다, 따라서 이런 특성 때문에 이력 테이블을 거느리는 형태를 띄게 된다. 꼭 이력 테이블이 존재한다는 의미보다는 설계 당시 이력 테이블이 고려되지 않았다면 실제로 이력테이블이 없을 수도 있다.
신청이란 행위의 정보를 저장한다는 측면에서 거래성 테이블(Transactional table)의 성격을 가지고 있고, 변경이 발생하고 이력 테이블을 거느리고 있다는 측면에서 원장성 테이블(Master Table)의 성격을 가지고 있는 것이다, 따라서 업무를 분석할 때, 양면성 테이블인지, 거래성 테이블인지 정확한 파악이 필요하다.
데이터 성격
최신의 상태 정보를 유지하고 있다, 다만 거래성 테이블의 특성을 겸하고 있으므로 이 테이블의 키값(key value) 구성은 [신청 번호]가 될 수 밖에 없다.
이력 테이블 (History Table)
구성 형태
이력 테이블은 원장성 테이블 (master table)의 변경된 상태 속성 정보를 보관하는 역할을 한다. 원장성 테이블의 외부에 동일한 구조를 가지고 있는 외부 이력 테이블(Outer History Table) 형태가 있을 수 있고 원장성 테이블의 내부에 상위키(upper key) 속성 칼럼을 포함시켜 내부순환(recursive) 구조를 가진 내부 이력 테이블(Inner History Table) 형태가 있을 수 있으며, 원장성 테이블이 중요 상태 정보만을 이력 관리하는 중요 항목 이력 테이블(Hot-Item History Table) 구조로 구성될 수 있다.
데이터 성격
변경된 상태 정보를 시작시점~종료시점의 구간으로 하는 선분 이력(Line History) 형태로 관리될 수 있고 변경 시점을 기준으로 하는 점 이력(Point History) 형태로 이력은 관리될 수 있다. 선분 이력 테이블(Line History Table)은 주로 원장성 테이블에 구축되며 점이력 테이블(Point History Table)은 주로 양면성 테이블에 일반적으로 구축된다.
'CS > 데이터베이스' 카테고리의 다른 글
NOSQL (개념, 특징, 장단점, RDBMS와의 차이점, 모델, 종류) (0) | 2024.08.27 |
---|---|
데이터 웨어하우스(DW)란? (0) | 2024.08.16 |
데이터 모델링의 이해 (0) | 2024.08.15 |
[DB] 데이터 딕셔너리 (0) | 2024.08.05 |
함수적 종속 (Functional Dependency) (0) | 2024.07.25 |