스타 스키마
스타 스키마(star schema, 조인 스키마(join schema라고도 불리기도 한다.)는 데이터 웨어하우스 스키마 중 가장 단순한 종류의 스키마인데, 한 개의 사실 테이블과 주 키 및 각 차원과 추가적인 사실들로 이루어진 스키마이다. 스타 스키마라는 이름은 스키마 다이어그램이 마치 "별표(star)" 모양이라 해서 붙인 이름이다.
스타 스키마를 이용하면, 전통적인 관계형 데이터베이스를 활용하여 다차원 데이터베이스(MDDB) 기능을 할 수 있다. 거의 모든 분야에서 관계형 데이터베이스가 가장 일반적인 데이터 관리 시스템이기 때문에, 관계형 데이터베이스를 사용하여 다-차원 뷰를 구현한다는 점은 매우 매력적이다. 설사, 특정한 MDDB가 이용되더라도, 그것의 원천(sources)은 보통 관계형 데이터베이스가 되게 된다.
스타 스키마를 쓰는 이유 중 다른 하나는 스타 스키마를 이해하기 쉽다는 것이다. 스타 스키마의 사실 테이블은 보통 제3 정규형인 데 반해, 차원 테이블(dimensional tables)들은 보통 역정규화(de-normalized)된 제2 정규형이다. 차원 테이블(dimensional table)을 정규화 한다면, 차원 테이블들은 눈꽃송이(snowflake 스노플레이크[*]) 모양으로 보일 것이다. (스노플레이크 스키마 참조) 그리고 제3 정규형의 문제점들이 생길 것이다. 즉, 복잡한 쿼리를 날려야 할 것이고, 비즈니스 유저들은 데이터의 의미들을 잘 이해 못하게 될 것이다. 비록, 최신예 DBMS 기술과 하드웨어의 지원을 받아 쿼리 퍼포먼스는 향상될 수 있다해도, 높은 차수로 정규화된 테이블들은 리포팅(reporting)을 어렵게 하고 애플리케이션을 복잡하게 만들 뿐일 것이다.
SQL 예제 편집
SELECT
sum (f_sales.units_sold)
FROM
f_sales, d_customer, d_time, d_store, d_product
WHERE
f_sales.customer_id = d_customer.customer_id AND
f_sales.date_id = d_time.date_id AND
f_sales.store_id = d_store.store_id AND
f_sales.product_id = d_product.product_id AND
d_time.year_id = 1997 AND
d_product.category_id = 'tv'
GROUP BY
d_product.brand, d_store.country_iso_id
같이 보기 편집
외부 링크 편집
- (영어) Designing the Star Schema Database by Craig Utley
- (영어) Star Schema for Retail Sales
- (영어) Stars: A Pattern Language for Query Optimized Schema
- (영어) Star schema optimizations
이 글은 소프트웨어에 관한 토막글입니다. 여러분의 지식으로 알차게 문서를 완성해 갑시다. |