| OLAP
BI 도구에서 대화형으로 데이터를 참고하려고 하면, 시각화에 필요한 정보만을 모은 데이터 마트가 필수적이다. 핵심적인 개념 중 하나로 OLAP(online analytical processing) 이라는 구조가 있다.
다차원 모델과 OLAP 큐브
OLAP는 데이터 집계를 효율화하는 접근 방법 중 하나로, '다차원 모델;의 데이터 구조를 MDX(multidimensional expressions) 등의 쿼리 언어로 집계한다.

- 데이터 분석을 위해 만들어진 다차원 데이터를 OLAP 큐브라고 부르며, 그것을 크로스 집계하는 구조가 OLAP이다.
MPP 데이터베이스와 비정규화 테이블
최근 MPP 데이터베이스와 인메모리 데이터베이스 등의 보급으로 사전에 OLAP를 계산하는 것이 아니라, BI 도구와 MPP 데이터베이스를 조합해 크로스 집계하는 경우가 증가하고 있다.
- 시각화에 적합한 데이터 마트를 만드는 것은 BI 도구를 위한 비정규화 테이블을 만드는 프로세스이다.
- MPP 데이터베이스에서 다차원 모델의 개념이 없기 때문에, 이를 대신해 비정규화 테이블을 준비한다. 이를 통해 기존의 OLAP와 동등한 시각화를 실현한다.
| 비정규화
데이터베이스의 설계에서는 테이블을 '마스터'와 '트랜잭션'으로 구분한다.
| 트랜잭션 | 시간과 함께 생성되는 데이터를 기록한 것 |
| 마스터 | 트랜잭션에서 참고되는 각종 정보 |
- 트랜잭션은 한 번 기록하면 변화하지 않지만, 마스터는 상황에 따라서 다시 쓰인다.
[예시]

이것은 RDB에서 일반적으로 취급하는 관계형 모델이며, 테이블을 분석하기 위해 정규화라는 개념을 사용한다.
- 데이터 분석의 경우, 이렇게 정규화된 관계형 모델에서 출발해 반대의 작업을 실행한다 .
팩트 테이블과 디멘전 테이블
| 팩트 테이블 | 데이터 웨어하우스에서, 트랜잭션처럼 사실이 기록된 테이블 |
| 디멘전 테이블 | 팩트 테이블에서 참고되는 마스터 데이터 등 |
- 집계의 기반이 되는 숫자 데이터 (예 : 판매액) 등은 팩트 테이블에 기록되고, 디멘전 테이블은 주로 데이터를 분류하기 위한 속성값으로 사용된다.
| 스타 스키마와 비정규화
스타 스키마
팩트 테이블을 중심으로 여러 개의 디멘전 테이블을 결합하는 방식으로, 별 모양을 띈다.

- 디멘전 테이블 작성을 위해서는 정규화에 의해 분해된 테이블을 최대한 결합해 하나의 테이블로 정리한다.
- 이 과정에서 데이터가 중복되어도 괜찮으며, 이 작업을 비정규화라고 한다.
스타 스키마가 사용되는 이유
데이터 마트에서 스타 스키마가 사용되는 이유는 두 가지가 있다.
1. 단순하기 때문에 이해가 쉽고, 데이터를 분석하기 용이하다.

- 스타 스키마의 테이블을 SQL로 결합하는 쿼리는 위와 같다.
- 쿼리 작성법이 정해져 있어, SQL을 자동으로 생성하기 쉬워 BI 도구는 스키마의 테이블에 효율적으로 쿼리 실행이 가능하다.
2. 성능 상의 이유
데이터의 양이 증가함에 따라 팩트 테이블은 디멘전 테이블보다 훨씬 커져 데이터 양이 집계 시간을 좌우한다.
- 팩트 테이블을 가능한 작게 만들어야 고속화가 가능하다.
- 팩트 테이블에서는 ID와 같은 키만을 남겨두고 나머지는 디멘전 테이블로 옮긴다.
비정규화 테이블
스타 스키마에서 좀 더 비정규화를 진행해 모든 테이블을 결합한 팩트 테이블을 비정규화 테이블이라고 부른다.
- 대부분의 경우 데이터 마트는 비정규화 테이블로 하는 것이 가장 단순하고 효율적이다.
- MPP 데이터베이스와 같은 열 지향 스토리지는 칼럼 단위로 데이터가 저장되므로 칼럼의 수가 늘어나도 성능에 영향을 주지 않는다.
- 따라서, 처음부터 팩트 테이블에 모든 칼럼을 포함해두고, 쿼리 실행 시 테이블 결합을 하지 않는 편이 간단하다.
- 열 지향 스토리지는 칼럼 단위로의 데이터 압축이 있어 디멘전 테이블로 옮길 필요 없이 하나의 팩트 테이블만 있으면 충분하다.
| 테이블 추상화
비정규화 테이블을 준비했다면 그것을 다차원 모델에 의해 추상화 해야한다. BI 도구의 기본이 되는 데이터 모델로 테이블 및 칼럼의 집합을 알기 쉽게 정리해 이름을 붙인 것이다.

| 디멘젼 | 크로스 집계에 있어서의 행과 열을 이용하는 것 |
| 측정값 | 숫자 데이터와 집계 방법을 정의하는 것 |
- 디멘젼을 행과 열로 지정하면 이들의 조합에 대해 측정값을 계산할 수 있다.
- 다차원 모델의 디멘젼은 차원의 개념으로, 이것을 행과 열로 구성된 2차원 테이블로 표현하면 크로스 집계가 된다.
'Database' 카테고리의 다른 글
| [Database] 분산 처리 프레임워크 (1) 구조화 데이터 vs 비구조화 데이터 (1) | 2025.07.28 |
|---|---|
| [Database] 빅데이터 시대에 '열 기반 데이터베이스'가 중요한 이유는 무엇일까? (2) | 2025.07.25 |
| [Database] 빅데이터의 탐색 (2) 열 지향 스토리지 (3) | 2025.07.22 |
| [Database] 빅데이터의 탐색 (1) 크로스 집계 (0) | 2025.07.22 |
| [Database] 빅데이터 기초 지식 (2) 데이터 웨어하우스와 데이터 마트 (0) | 2025.07.22 |