5. 다차원 모델링
다차원 모델링 (Star, Snowflake Scheme)
I. DW 모델링, 다차원 모델링
DW 모델링 시 사실 테이블과 차원 테이블 간 상호관계를 정의하여 다차원으로 구현하는 모델링 기법
II. 다차원 모델링의 구성요소
구분구성요소
사실 (Facts) |
중심테이블로서 관련성이 높은 매체 집합 두 가지 Type의 Measure – Raw(Base) fact / Derived(Calculated) metric |
차원 (Dimensions) |
부속 테이블(minor 테이블) 각 Fact를 분석하는 하나의 관점 |
속성 (Attribute) |
각 차원 테이블이 가지고 있는 속성임 사실을 검색하고, 여과하고 분류할 때 사용됨 |
속성계층 (Hierarchies) |
차원 내 정의된 속성들 간 존재 계층 관계 아래로 가기(Drill-down)/위로 가기(Roll-up) |
III. 다차원 모델링 기법
가. Star Scheme 모델링
구성도설명
![]()
|
– 하나의 사실 테이블 – 다수의 차원 테이블 – 적은 Join, 빠른 Query 성능 (+) 쉬운 이해, 계층 정의 용이 (-) 상위레벨 조회 성능 저하 |
나. Snowflake Scheme
구성도설명
![]()
|
– 차원 테이블을 정규화 – 데이터 중복 문제 해결 – Star Join으로 속도 저하 가능 (+) 데이터 중복 해결, 정규화 (-) Star Join으로 속도 저하 |
IV. 다차원 모델 기법 간 비교
항목 Star Scheme Snowflake Scheme
정규화 |
– 비정규화 |
– Dimension Table 정규 |
정합성 |
– 보장 불가 |
– 정합성 보장 |
Join정도 |
– 적은 Join 성능, 빠름 |
– Join 횟수 증가, 느림 |
특징 |
– 다차원 분석 |
– 계층화 및 분석 가능 |
장점 |
– 조인 수 적임, 고성능 |
– 소형 테이블, 정규화 |
단점 |
– Data 일관성 낮음 |
– 조인수 많음, 저성능 |
@ 다차원 모델링
다차원 분석은 ROLAP 과 MOLAP 모두 할 수 있다. 그러나 MOLAP 에서는 다차원 데이터베이스 구조 자체에서 지원하기 때문에 다차원 분석을 위한 특별한 모델링이 필요치 않다.
l ER-모델링 : OLTP 시스템에서 빈번한 데이터의 변환에 대한 전체데이터의 무결성에 중점.
l 다차원 모델링 : 사용자의 다양한 요구사항을 충족시키는 복잡한 질의를 신속하게 처리하는 데 목적.
* 다차원 모델링 (Multidimensional Modeling)
l 차원 : 기간(년/분기/월), 조직(본부/지사/영업소)
l 사실 : 매출액, 매출수량
다차원 모델링은 이러한 차원과 사실 컬럼을 복합하여 관계형 데이터베이스 테이블로 만든다.
1) 스노우 플레이크 스키마(Snowflake Schema)
l 특징 : 차원요소마다 1 개의 차원 테이블을 가지고 있고, 이 차원 테이블에는 차원요소에 대한 정보와 상위 차원테이블로 조인하기 위한 Key 를 가지고 있다. 각 차원 테이블은 정규화가 잘 되어 있어 중복이 안 된다. 크기도 작다.
l 스타조인(star join) : 여러 개의 작은 테이블과 한 개의 큰 테이블을 조인하는 것이다.
스노우 플래이크 스키마의 단점은 차원 테이블이 많기 때문에 스타 조인을 많이 해야 한다.
2) 스타스키마(Star Schema)
스타 스키마는 각 차원마다 하나씩 차원 테이블이 있다.
스타스키마의 장점은 조인 수가 적다.
3) 요약(Summary)
많이 사용되는 차원 요소를 결합하여 요약 테이블을 만들어 놓는다면 질의응답 시간이 많이 줄어들게 된다. 이러한 요약과정은 주로 SQL 스크립트를 만들어 정해진 시간에 수행한다.
요약 테이블이 많을수록 관리문제와 요약 테이블간의 데이터의 무결성(integrity) 문제가 생긴다.
요약 테이블을 만드는 기준은 요약을 했을 때 요약 테이블의 크기나 응답시간이 1/10정도로 단축되는 것에 둔다. 왜냐하면 사용자는 1/10 정도로 단축되었을 때만 빠르다고 느낄 수 있기 때문.
4) 다차원 모델의 중요한 Tips
① 스키마의 무결성에 유의하라.
DW 에서 사용되는 정보는 기존의 여러 시스템에서 나온다. 따라서 동음이의어(Synonym)의 문제가 발생.
만약 A 시스템에서 매출금액은 카드별 매출금액이고, B 시스템에서 매출금액은 고객별 매출금액이라고 할 경우 매출금액은 동음이의어이다.
이것은 정제된 후 DW 에 저장되어야 한다.
②Bitmap Index 를 많이 사용하라.
데이터의 변화정도(cardinality)가 크지 않을 경우 반드시 사용해야 한다. 예를 들면, 연령대별, 성별, 직업별, 고객의 구분 등 등급을 나누어 분석할 때 최적이다.
③ 뷰(View)를 절제하라.
구축 중에는 테이블의 구조가 바뀔 상황이 많기 때문에 많은 뷰의 남용은 관리와 성능에 문제가 발생한다.
뷰를 계속 만든다면 사용이 편리하다는 이득 외에는 별다른 이득이 없다.
④ ROLAP 엔진이 만드는 SQL 의 적합성을 검증하라.
다차원 모델링은 채택하는 ROLAP 도구에 따라 상당히 달라진다. ROLAP 도구가 지원하는 여러 가지 기능을 잘 알고 있어야 그 ROLAP 도구에 맞는 최적의 모델링을 할 수 있다.
[출처] DW와 다차원 모델링 기법|작성자 열이
1. DW 모델링의 개요
가. DW 모델링 유형
1) EDW - ER모델링 기법을 적용하지만 차이점은 운영계 시스템으로부터 Reverse Modeling 과정을 거침
2) Data Mart - 다차원 모델링 기법적용
나. Reverse Modeling 의 목적
- 현행 시스템을 형상화하여 운영계 시스템의 데이터실체와 데이터구조를 파악할 수 있음
- 최종적으로 사용되고 있는 물리적인 스키마로부터 리버스 모델링을 수행하는 과정에서 변경,추가된 항목을 도출 할 수 있음
- EDW Data Model의 기초자료로 이용하여 분석작업의 효율화를 이룸
- ETT 작업 EDW Data Model의 데이터와 mapping 관계를 파악할 수 있음
- 데이터 무결성이 깨진 오류 데이터 등 cleansing 대상을 파악할 수 있음
2. 다차원 모델링 기법의 개요
가. 다차원 모델링 기법의 정의
-관계형 데이터베이스로 다차원 데이터를 구현 하는데 사용되는 기법으로 Data Warehouse의 요소기술
나. 다차원 모델링 기법의 종류
1) Star Schema - 정규화된 Fact Table을 중심으로 비정규화된 Dimension Table들이 배치되는 형태의 모델링 기법
2) Snowflake Schema - 정규화된 Fact Table을 중심으로 정규화된(제3 정규형 수준) Dimension Table들이 배치되는 형태의 모델링 기법
다. 다차원 모델의 특징
- 식별된 질문에 답하는 데 필요한 세분화 수준을 정의
- 모델링 단계에서 DSS / EIS 분석자 참여
- 논리적 DW 모델링에서는 Performance 보다는 Integrity, Completeness Clarity(완벽한 명확성) 중요
3. 다차원 모델링 기법의 특징
4. 다차원 모델링 기법
가. 스타스키마 (Star Schema)
- 다차원 의사결정 지원 데이터를 관계형 데이터베이스로 전환하는 데 사용되는 데이터 모델링 기법
- 사실 테이블을 중심으로 차원 테이블들이 관계를 맺고 있는 형태가 별 모양과 유사해서 Star Schema 명칭부여
나. 스노우플레이크 스키마 (Snowflake Schema)
- 스타스키마에서 차원이 대용량일 경우 발생하는 처리속도 저하 문제를 해결하기 위해 제시된 데이터모델링 기법
- 스타스키마의 차원 테이블을 완전 정규화시킨 것임.
5. 다차원 모델링 기법 비교
6. DW 모델링의 성능향상 기법
가. Aggregation (De-normalization : 비정규화) 기법
- Query 수행능력 향상
- CPU 사용시간 감소
- View 이용
- Summarized Table 이용
나. Partition 기법
- large Size Table을 다수의 Small Size Table로 분할함으로써 질의응답 속도향상
- 메타데이터 필요
다. PCTAS(Parallel Create Table As Select) 기법
- Parallel Query 수행, 속도 10 ~15배 향상
- Table Create 시 Parallel Option을 사용
라. DW 모델링 기법의 경향
- Snowflake Schema의 최대 장점은 정규화를 통해서 저장공간을 절약하는 것인데, 비용부담이 적어지면서 검색속도만 저하시키는 결과를 초래하여 별로 사용되지 않음
데이터베이스 스키마(Database Schema) 란?
데이터베이스의 구조와 제약 조건에 관한 전반적인명세를 기술한 메타데이터의 집합이며, 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.
스키마는 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나뉜다.
외부 스키마(External Schema) : 서브 스키마라고도 불린다. 하나의 외부 스키마는 여럿이 공유 가능하며, 하나의 DB시스템에 여러 개의 외부 스키마가 존재할 수 있다. 프로그래머나 사용자의 입장에서 데이터베이스의 모습으로 조직의 일부분을 정의한다.
개념 스키마(Conceptual Schema) : 모든 응용 시스템과 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스 구조를 논리적으로 정의하며 개체간의 관계와 제약조건을 나타낸다. 또한, 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
내부 스키마(Internal Schema) : 시스템 프로그래머, 설계자의 관점에서 바라본다. 전체 데이터베이스의 물리적 저장 형태를 기술하기에 하나만 존재하여야 한다. 일반적으로 스키마를 말할 때 내부스키마를 가리킨다.
1. OLTP (온라인 트랜젝션 처리 = on-line transaction processing)
- 여러 과정 또는 연산이 하나의 단위 프로세스로 실행되도록 하는 프로세스
- 현재 업무의 효율적인 처리에만 관심이 있음
- 관계형 데이터베이스(RDB)
2. OLAP (온라인 분석처리 = online analytical processing)
- 다차원으로 이루어진 데이터로부터 통계적인 요약정보를 제공할 수 있는 기술
- 의사결정에 도움되는 데이터 분석에 관심이 있음
- 다차원 데이터베이스(MDB OR MDDB)
3. 다차원 모델링의 정의
- DW 모델링 시 사실 테이블(FACT)과 차원 테이블(DIMENSION) 간 상호관계를 정의하여 다차언으로 구현하는 모델링 기법
4. 다차원 모델링의 구성요소
- 사실(FACT) : 중심 테이블로서 관련성이 높은 매체 집합
- 차원(DIMENSION) : 부속 테이블. 각 FACT를 분석하는 하나의 관점
- 속성(ATTRIBUTE) : 각 차원의 테이블이 가지고 있는 속성. 사실을 검색하고 여과하고 분류할 때 사용됨.
- 속성계층(HIERARCHIES) : 차원 내 정의된 속성들 간 존재 계층 관계. 아래로 가기(DRILL-DOWN) 및 위로가기(ROLL-UP)등 기능
5. 다차원 모델링의 기법
- Star Schema
: 정규화된 Fact Table을 중심으로 비정규화된 Dimension Table들이 배치되는 형태의 모델링 기법
- Snowflake Schema
: 정규화된 Fact Table을 중심으로 정규화된(제 3정규형 수준) Dimension Table들이 배치되는 형태의 모델링 기법
6. 스타 스키마와 스노우 플레이크 기법 비교
|
Star Schema |
Snowflake Schema |
장점 |
- 조인의 수가 적으므로 쿼리에 대한 성능이 좋다. - 모델이 단순하여 사용자가 이해하기 쉽다. |
- 정규화가 잘되어 있어 데이터의 중복이 적다. - 테이블의 크기가 작아 저장 공간이 작다. - Performance flexibility, maintain 능력을 향상 시킬 수 있다. |
단점 |
- 중복이 많다. - 많은 수의 요약이 필요하다. - 많은 저장 공간이 필요하다. - 데이터 일관성에 문제가 발생한다. - Inflexible하다. |
- 조인의 수가 많아 속도가 저하된다. - 복잡하기 때문에 사용자가 이해하기 어렵다. - 데이터베이스 내 관리 테이블의 수가 증가한다. |
7. 스키마의 개념
- 데이터 베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합이다.
- 스키마는 데이터 베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.
- 스키마는 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나누어진다.
8. 스키마의 특징, 3계층
- 데이터베이스 관리 시스템은 외부적 스키마에 따라 명시된 사용자의 요구를 개념적 스키마에 적합한 형태로 변경하고 이를 다시 내부적 스키마에 적합한 형태로 변환한다.
- 스키마는 데이터 구조적 특성을 의미한다.
- 스키마는 데이터 사전(Data Dictionary)에 저장된다.
- 스키마는 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어진다.
- 스키마는 시간에 따라 불변인 특성을 갖는다.
- 스키마는 데이터 논리적 단위에 명칭을 부여하고 그 의미를 기술한다.
1) 외부스키마(External Schema) = 사용자 뷰(View)
è 외부스키마는 사용자나 응용프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것
è 외부스키마는 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마(Sub Schema)라고도 함
è 하나의 데이터베이스 시스템에는 여러개의 외부스키마가 존재할 수 있으며 하나의 외부스키마를 여러개의 응용 프로그램이나 사용자가 공용할 수도 있음
è 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용함
è 일반 사용자는 질의어(SQL)을 이용하여 DB를 쉽게 사용할 수 있음
è 응용 프로그래머는 C, JAVA 등의 언어를 사용하려 DB에 접근함
EX) 한 사용자는 SELECT * FROM TABLE; 을 사용해 데이터를 볼 수 있다. 다른 사용자는 JOIN을 통해 테이블을 결합해 조회할 수 있다.
SELECT 쿼리를 던졌을 때 볼 수 있는 테이블을 외부스키마의 대표적인 예 라고 할 수 있다.
2) 개념스키마(Conceptual Schema) = 전체적인 뷰(View)
è 개념스키마는 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재함
è 개념스키마는 개체간의 관계와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의함
è 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것으로, 단순히 스키마(Schema)라고 하면 개념스키마를 의미함
è 기관이나 조직체의 관점에서 데이터베이스를 정의
è 데이터베이스 관리자(DBA)에 의해서 구성됨
EX) E-R 다이어그램의 테이블 구조와 같이 테이블의 구성과 속성이 어떻게 되는지 또한 어떤 테이블과 릴레이션을 갖고 있는지 등의 점을 개념스키마라고 한다.
3) 내부스키마(Internal Schema) = 저장스키마(Storage Schema)
è 내부스키마는 물리적 저장장치의 입장에서 본 데이터베이스 구조로, 물리적인 저장장치와 밀접한 계층
è 내부스키마는 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타냄
è 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마
EX) INSERT 문에 의해 저장되는 VALUES가 어떠한 알고리즘으로 하드디스크의 어떠한 부분에 저장이 되는데 이러한 시스템적, 물리적의 시각의 스키마를 내부스키마라고 한다.