주요 스키마에 대해 알기: 별 대 눈송이
다차원 스키마는 데이터 웨어하우스 시스템을 구성하기 위한 모델링 기법입니다.
이러한 스키마의 주된 목적은 OLAP(Online Analytical Processing)와 같은 분석 목적에 맞춰 설계된 대규모 데이터베이스의 요구를 충족하는 데 있습니다.
데이터베이스 내의 정보를 효과적으로 분류하고 정렬하는 데 사용되며, 이를 통해 사용자는 비즈니스 및 시장 동향과 관련된 다양한 질문에 대한 답을 얻을 수 있습니다.
다차원 스키마는 데이터 큐브 형태로 정보를 시각화하여 다양한 관점과 차원에서 데이터를 분석하고 모델링할 수 있도록 지원합니다.
세 가지 주요 유형이 존재하지만, 많은 사람들이 별 스키마와 눈송이 스키마를 혼동하여 어떤 모델을 선택해야 할지 어려움을 겪습니다.
이 글에서는 이러한 혼란을 해소하기 위해 정의, 장단점, 다이어그램, 특징 등을 비교 분석하여 별 스키마와 눈송이 스키마의 차이점을 명확히 설명하고자 합니다.
다차원 스키마란 무엇인가?
스키마는 전체 데이터베이스 또는 데이터 마트에 대한 논리적 구조를 나타냅니다. 여기에는 레코드의 이름, 설명 및 집계된 데이터 항목과 같은 정보가 포함됩니다.
일반적으로 데이터베이스는 관계형 모델을 사용하여 설명되는 반면, 데이터 웨어하우스 시스템은 스키마 모델을 사용합니다.
다차원 스키마는 DMQL(Data Mining Query Language)을 사용하여 정의할 수 있으며, 데이터 마트와 데이터 웨어하우스를 정의하는 데 사용되는 차원 정의와 큐브 정의라는 두 가지 기본 요소로 구성됩니다.
다차원 스키마는 다음과 같은 다양한 스키마 모델 유형을 활용합니다.
- 별 스키마
- 눈송이 스키마
- 갤럭시 스키마
이제 별 스키마와 눈송이 스키마가 무엇인지 자세히 살펴보겠습니다.
별 스키마 vs. 눈송이 스키마: 비교 분석
별 스키마란 무엇인가?
별 스키마는 데이터 웨어하우징 및 비즈니스 인텔리전스 모델로, 측정 데이터와 트랜잭션 데이터를 저장하는 데 단일 팩트 테이블을 사용합니다. 또한 다양한 차원 테이블을 통해 비즈니스 데이터의 속성을 관리합니다.
별 모양의 구조로 인해 이러한 이름이 붙여졌습니다. 중앙에 위치한 팩트 테이블을 중심으로 다양한 차원 테이블이 마치 가지처럼 펼쳐져 별 모양을 이룹니다.
별 스키마는 단일 팩트 테이블과 여러 개의 작은 차원 테이블로 구성됩니다. 팩트 테이블은 기록된 성과, 재무 데이터 또는 판매 기록과 같이 분석에 필요한 측정 가능 데이터를 포함합니다. 이는 특정 시점 또는 특정 거래에 대한 기록 데이터를 나타낼 수 있습니다.
별 스키마는 데이터 웨어하우스 및 데이터 마트 스키마 중에서 가장 단순하고 기본적인 구조를 가지고 있습니다. 기본 쿼리를 처리하는 데 효과적이며, 일반적으로 비즈니스 인텔리전스, 임시 쿼리, 분석 애플리케이션 및 OLAP 큐브를 지원합니다.
또한, 별 스키마는 다수의 레코드에 대한 카운트, 평균, 합계와 같은 다양한 집계 연산을 지원합니다. 사용자는 차원별로 집계를 필터링하거나 그룹화하여 원하는 데이터를 쉽게 분석할 수 있습니다. 예를 들어, "6월의 모든 판매 기록" 또는 "2022년 XYZ 사무실의 총 수익 분석"과 같은 쿼리를 생성할 수 있습니다.
눈송이 스키마란 무엇인가?

눈송이 스키마는 별 스키마의 확장된 형태로 볼 수 있는 다차원 데이터 모델입니다. 눈송이 스키마의 특징은 차원 테이블이 하위 차원 테이블로 세분화된다는 점입니다.
스키마에서 하나 이상의 차원 테이블이 팩트 테이블에 직접 연결되지 않고 다른 차원 테이블을 통해 연결되면 눈송이 스키마로 간주됩니다.
눈송이 스키마는 별 스키마에서 차원 테이블을 정규화하여 생성됩니다. 모든 차원 테이블을 정규화하면 팩트 테이블이 중앙에 위치한 눈송이와 유사한 구조가 만들어집니다.
간단히 말해서, 눈송이 스키마는 중앙에 팩트 테이블을 두고, 이 팩트 테이블이 차원 테이블에 연결되고, 다시 이 차원 테이블들이 다른 차원 테이블에 연결되는 구조입니다. 이 스키마는 쿼리 성능을 향상시키는 데 사용됩니다.
이 모델은 복잡한 관계와 다양한 차원에서 빠르고 유연한 쿼리를 수행할 수 있도록 설계되었습니다. 다양한 차원 수준 간의 일대다 및 다대다 관계를 처리하는 데 유용합니다.
눈송이 스키마는 더 많은 정규화 표준을 따르기 때문에 저장 공간 효율성이 높습니다. 그러나 데이터 중복은 무시할 수 있을 정도로 적으며, 별 스키마와 같은 비정규화된 데이터 모델에 비해 성능이 다소 떨어질 수 있습니다.
별 스키마 vs. 눈송이 스키마: 작동 방식 비교

별 스키마의 작동 방식
별 모델 중앙에 있는 팩트 테이블은 숫자 데이터와 차원 속성 값이라는 두 가지 유형의 정보를 저장합니다. 판매 데이터베이스를 예로 들어 설명하겠습니다.
- 숫자 값은 각 행과 데이터 요소에 고유하며, 다른 행에 저장된 데이터와는 직접적인 연관성이 없습니다. 예를 들어, 총액, 주문 수량, 정확한 시간, 순이익, 주문 ID 등과 같은 특정 거래에 대한 실제 데이터를 나타냅니다.
- 차원 속성 값은 실제 데이터를 직접 저장하지 않고, 차원 테이블에 대한 외래 키 값을 저장합니다. 중앙 테이블의 다른 행은 데이터 값, 영업 사원 ID, 지점 ID, 제품 ID 등과 같은 정보를 참조합니다.
차원 테이블은 항상 팩트 테이블의 보조 정보를 저장합니다. 각 차원 테이블은 차원 값과 함께 팩트 테이블의 열과 연결되며, 해당 값에 대한 추가 데이터를 저장합니다.
예를 들어, 직원 차원 테이블은 직원 ID를 키 값으로 사용하며, 이름, 성별, 주소 및 전화 번호와 같은 추가 정보를 포함합니다. 마찬가지로, 제품 차원 테이블은 제품 이름, 색상, 최초 출시 날짜, 제조 비용 등의 정보를 저장합니다.
눈송이 스키마의 작동 방식

눈송이 모양의 디자인을 상상해보십시오. 중앙 박스와 이 박스를 통해 다른 지점으로 연결되는 구조입니다. 눈송이 스키마 디자인은 데이터 마트와 데이터 웨어하우스를 유지 관리하는 데 필요합니다.
별 스키마와 유사하지만 몇 가지 미묘한 차이점이 있습니다. 별 스키마와 달리 눈송이 스키마는 차원 테이블에 연결된 하위 차원 테이블을 확장합니다.
이 모델의 주된 목적은 별 모델의 비정규화된 정보를 정규화하는 것입니다. 이러한 방식으로 별 스키마와 관련된 일반적인 문제를 해결할 수 있습니다.
스키마의 핵심에는 차원 테이블에 포함된 정보와 연결되는 팩트 테이블이 있습니다. 이러한 차원 테이블은 다시 차원 테이블 정보를 설명하는 자세한 정보가 포함된 하위 차원 테이블로 연결됩니다.
예를 들어, 눈송이 스키마에는 판매 사실 테이블과 매장 위치, 라인, 제품군, 제품 및 시간 차원 테이블이 포함될 수 있습니다. 시장 차원은 상점이라는 기본 차원 테이블과 상점의 위치라는 하위 차원 테이블로 구성됩니다. 제품 차원에는 제품, 라인 및 제품군 하위 차원 테이블을 참조하는 세 개의 하위 차원 테이블이 있습니다.
별 스키마 vs. 눈송이 스키마: 특징 비교

별 스키마의 특징
- 별 스키마는 정규화된 데이터에서 데이터를 필터링하여 데이터 웨어하우징 요구 사항을 충족합니다. 각 팩트 테이블의 관련 정보에서 고유 키를 생성하여 모든 행을 식별합니다.
- 매월 말의 소득 및 총 판매 항목과 같은 빠른 계산 및 집계를 제공합니다. 이러한 세부 정보는 필요에 따라 적절한 쿼리를 구성하여 필터링할 수 있습니다.
- 외래 키로 구성된 유한한 숫자 값을 포함하는 이벤트 측정값입니다. 이러한 키는 차원 테이블과 연결됩니다. 원자 수준의 값으로 구성된 다양한 유형의 팩트 테이블이 존재합니다.
- 트랜잭션 팩트 테이블에는 판매 및 휴일과 같은 특정 이벤트에 대한 데이터가 포함됩니다.
- 스냅샷 팩트 테이블에는 연말 또는 분기별 계정 정보와 같은 지정된 기간의 정보가 포함됩니다.
- 차원 테이블은 중앙 테이블에 있는 속성 또는 레코드에 대한 자세한 데이터를 제공합니다.
- 사용자는 필요에 따라 테이블을 직접 디자인할 수 있습니다.
- 별 스키마를 사용하여 스냅샷 테이블을 누적할 수 있습니다.
눈송이 스키마의 특징
- 눈송이 스키마는 디스크 공간을 적게 차지합니다.
- 이 모델은 별도의 기본 차원 테이블로 인해 구현하기 쉽습니다.
- 차원 테이블은 여러 수준에서 정보를 정의하는 두 개 이상의 속성을 가지고 있습니다.
- 여러 테이블로 인해 별 스키마에 비해 성능이 다소 떨어집니다.
- 눈송이 스키마는 정규화로 인해 데이터 무결성 수준이 높고 데이터 중복성이 낮습니다.
별 스키마 vs. 눈송이 스키마: 장점 비교

별 스키마의 장점
- 별 스키마는 데이터 마트 스키마 중에서 가장 간단한 방법입니다.
- 간단한 보고 논리를 가지고 있으며, 이 논리는 동적으로 파악될 수 있습니다.
- OLTP(Online Transaction Process)를 통해 적용된 피딩 큐브를 사용하여 설계되어 큐브가 효율적이고 효과적으로 작동할 수 있습니다.
- 별 스키마는 트랜잭션 프로세스에서 쉽게 추출할 수 있는 간단한 논리와 쿼리로 구성되어 있습니다.
- 보고 애플리케이션에 대한 향상된 성능을 제공합니다.
- 데이터의 빠른 복구를 제어하기 위해 배포됩니다.
- 필터링되고 선택된 정보는 다양한 상황에 쉽게 적용할 수 있습니다.
눈송이 스키마의 장점
- 눈송이 스키마는 디스크 저장 공간 요구 사항이 적기 때문에 쿼리 성능을 향상시키는 데 사용됩니다.
- 구성 요소 및 차원 수준 간의 관계에서 더 큰 확장성을 제공합니다.
- 유지 관리가 더 쉽습니다.
- 빠른 데이터 검색을 제공합니다.
- 데이터 웨어하우징을 위한 일반적이고 간단한 데이터 스키마입니다.
- 데이터 품질 향상에 도움이 됩니다.
- 구조화된 데이터는 데이터 무결성 문제를 줄입니다.
별 스키마 vs. 눈송이 스키마: 한계점 비교
별 스키마의 한계점
비정규화 및 무결성 상태가 높기 때문에 사용자가 데이터 업데이트에 실패하면 전체 프로세스가 원활하게 진행되지 않을 수 있습니다. 보안 및 보호 기능도 제한적입니다. 또한 별 스키마는 분석 모델만큼 유연하지 않으며, 다양한 관계에 대한 효율적인 지원을 제공하지 않습니다.
눈송이 스키마의 한계점
눈송이 스키마의 주요 한계점은 하위 차원 테이블 수가 증가함에 따라 추가적인 유지 관리 노력이 필요하다는 점입니다. 복잡한 쿼리가 많으면 필요한 데이터를 찾기가 어려워질 수 있습니다. 또한 테이블 수가 많아 쿼리 실행 시간이 길어질 수 있습니다. 이 모델은 견고하고 유지 관리 비용이 많이 들 수 있습니다.
별 스키마 vs. 눈송이 스키마: 주요 차이점 요약

별 스키마와 눈송이 스키마는 모두 다차원 스키마 유형이지만, 구조와 특징이 다릅니다. 전자는 별 모양과 유사하고 후자는 눈송이 모양과 유사하여 이름이 붙여졌습니다.
별 스키마에서는 중앙 팩트 테이블과 측면 차원 테이블 간의 관계를 설정하는 데 단일 조인만 필요합니다. 반면, 눈송이 스키마에서는 차원 테이블에 연결하기 위해 여러 개의 조인이 필요합니다.
별 스키마는 일반적으로 차원 테이블의 행 수가 적을 때 사용되는 반면, 눈송이 스키마는 차원 테이블이 상대적으로 클 때 사용됩니다.
아래 표는 두 모델을 비교하고 차원 테이블과 팩트 테이블이 서로 다른 스키마에서 어떻게 연결되는지 보여줍니다.
| 매개변수 | 별 스키마 | 눈송이 스키마 |
| 디스크 공간 | 별 스키마는 디스크 공간을 더 많이 사용합니다. | 눈송이 스키마는 더 적은 디스크 공간을 사용합니다. |
| 데이터 중복 | 데이터 중복성이 높습니다. | 데이터 중복성이 낮습니다. |
| 정규화 | 차원 테이블이 비정규화되어 테이블 내에서 동일한 값이 반복됩니다. | 차원 테이블은 완전히 정규화되어 있습니다. |
| 쿼리 성능 | 쿼리를 실행하는 데 최소한의 시간이 걸리므로 성능이 향상됩니다. | 쿼리 실행에 별 스키마보다 시간이 오래 걸리므로 성능이 떨어집니다. |
| 쿼리 복잡성 | 쿼리 복잡성이 낮습니다. | 쿼리 복잡성이 별 스키마보다 높습니다. |
| 유지 관리 | 높은 데이터 중복성으로 인해 별 스키마를 유지 관리하는 것이 약간 어렵습니다. | 데이터 중복성이 낮기 때문에 눈송이 스키마를 유지하고 변경하기 쉽습니다. |
| 데이터 무결성 | 데이터가 여러 위치에 중복 저장되기 때문에 데이터 무결성이 높습니다. 차원 테이블에 복사본이 존재합니다. | 차원 테이블을 완전히 정규화하므로 데이터 무결성이 낮습니다. |
| 계층 구조 | 별 스키마의 차원 테이블에 대한 계층이 차원 테이블에 저장됩니다. | 계층 구조가 별도의 차원 테이블로 분할됩니다. |
| DB 설계 | 단순한 DB 디자인을 가지고 있습니다. | 매우 복잡한 DB 디자인을 가지고 있습니다. |
| 팩트 테이블 | 여러 차원 테이블이 팩트 테이블을 둘러싸고 있습니다. | 팩트 테이블은 하위 차원 테이블로 둘러싸인 차원 테이블로 둘러싸여 있습니다. |
| 설정 | 별 스키마는 설계 및 설정이 용이하며 직접 관계가 해당 테이블을 나타내므로 설정하기 쉽습니다. | 눈송이 스키마는 설정하기가 다소 복잡합니다. |
| 큐브 처리 | 큐브 처리가 더 빠릅니다. | 복잡한 조인으로 인해 큐브 처리가 약간 느립니다. |
| 외래 키 | 최소한의 외래 키를 가지고 있습니다. | 최대 외래 키 수를 가지고 있습니다. |
결론
별 스키마와 눈송이 스키마는 모두 다양한 분야에서 유용하게 활용될 수 있습니다. 어떤 스키마가 더 나은지는 요구 사항에 따라 달라집니다.
눈송이 스키마는 별 스키마의 차원 테이블을 정규화하여 확장한 것입니다.
별 스키마는 디자인이 간단하고 쿼리를 더 빠르게 실행하며 설정이 쉽습니다. 반면, 눈송이 스키마는 유지 관리가 더 쉽고 디스크 공간을 덜 차지하며 데이터 무결성 문제가 발생할 가능성이 적습니다.
따라서 단순한 디자인, 적은 외래 키, 더 빠른 큐브 처리가 필요한 경우 별 스키마가 더 나은 선택일 수 있습니다. 그러나 더 적은 디스크 공간, 낮은 데이터 무결성 및 쉬운 유지 관리가 필요한 경우 눈송이 스키마가 더 적합할 수 있습니다.
최고의 그래프 데이터베이스 솔루션에 대해 더 자세히 알아보는 것도 좋은 방법입니다.