스타 스키마(Star Schema)는 데이터를 차원 테이블(Dimension Table), 팩트 테이블(Fact Table), 구체화된 뷰(Materialized View)로 구성하는 데이터 웨어하우스 설계 방식입니다. 모든 데이터는 컬럼 단위로 저장되며, 다차원 객체 역할을 하는 컬럼을 식별하기 위해서는 메타데이터가 필요합니다.
스타 스키마는 관계형 스키마의 한 종류로, 그 설계 자체가 다차원 데이터 모델을 정의합니다. 이 스키마의 엔티티-관계 다이어그램이 마치 중앙 테이블에서 여러 지점이 뻗어 나가는 별(star) 모양과 닮았다고 하여 '스타 스키마'라는 이름이 붙었습니다. 스키마의 중심에는 규모가 큰 팩트 테이블이 위치하고, 별의 꼭짓점에 해당하는 부분은 차원 테이블입니다.
차원 테이블(Dimension Tables)
스타 스키마는 하나의 차원에 대한 모든 데이터를 단일 테이블에 저장합니다. 계층 구조의 각 수준은 차원 테이블 내의 하나의 컬럼 또는 컬럼 집합으로 정의됩니다. 차원 객체를 활용하면 계층 구조의 두 수준을 정의하는 두 컬럼(또는 컬럼 집합) 사이의 계층적 관계를 명시적으로 기술할 수 있으며, 차원 객체가 없을 경우 계층 관계는 메타데이터에만 표현됩니다. 속성(Attribute)은 차원 테이블의 컬럼에 저장됩니다.
팩트 테이블(Fact Tables)
측정값(Measure)은 팩트 테이블에 저장됩니다. 팩트 테이블은 각 차원 테이블을 참조하는 여러 외래 키와, 해당 차원을 사용하는 각 측정값에 대한 컬럼으로 구성된 복합 기본 키를 포함합니다.
구체화된 뷰(Materialized Views)
집계 데이터는 차원 테이블에 표현된 계층 관계를 기반으로 계산됩니다. 이렇게 계산된 집계 결과는 요약 테이블(Summary Table) 또는 구체화된 뷰(Materialized View)라고 불리는 독립적인 테이블에 저장됩니다. Oracle은 자동 새로 고침(Automatic Refresh)과 쿼리 재작성(Query Rewrite)을 포함해 구체화된 뷰에 대한 폭넓은 지원을 제공합니다.
쿼리는 팩트 테이블 또는 구체화된 뷰 어느 쪽을 대상으로든 작성할 수 있습니다. 결과 집합에 집계 데이터가 필요한 쿼리가 팩트 테이블을 대상으로 작성된 경우, 쿼리 재작성을 통해 최신 구체화된 뷰로 리디렉션되거나, 데이터가 실시간으로 즉석 집계됩니다.
스타 스키마의 주요 특징
- 비정규화(DE-normalization)된 데이터베이스를 구축하여 빠른 쿼리 응답 속도를 지원합니다.
- 개발 주기 전반에 걸쳐, 그리고 데이터베이스가 성장하는 과정에서도 손쉽게 변경하거나 확장할 수 있는 유연한 설계를 지원합니다.
- 최종 사용자가 일반적으로 정보를 인식하고 활용하는 방식과 유사한 직관적인 구조를 제공합니다.
- 개발자와 최종 사용자 모두를 위해 메타데이터의 복잡성을 줄여줍니다.