Снежинка схема срещу звездна схема

Когато избирате схема на база данни за склад на данни, снежинка и звездни схеми са склонни да бъдат популярни избори. Това сравнение обсъжда подходящата схема на звезда срещу снежинка в различни сценарии и техните характеристики.

Сравнителна диаграма

Сравнителна схема на Snowflake спрямо Star Shema
Снежинка схемаЗвездна схема
Лесна поддръжка / смяна Без излишъци, така че схемите на снежинката се поддържат и променят по-лесно. Има излишни данни и следователно по-малко лесен за поддържане / промяна
Лесно използване По-сложни заявки и следователно по-малко лесни за разбиране По-ниска сложност на заявката и лесна за разбиране
Изпълнение на заявката Повече чужди ключове и следователно по-дълго време за изпълнение на заявките (по-бавно) По-малък брой чужди ключове и следователно по-кратко време за изпълнение на заявките (по-бързо)
Тип хранилище за данни Добре да се използва за ядрото на хранилището за данни за опростяване на сложни взаимоотношения (много: много) Подходящ за данни с прости взаимоотношения (1: 1 или 1: много)
присъединява По-голям брой Съединения По-малко присъединявания
Таблица с размери Снежинка схема може да има повече от една таблица с измерения за всяка величина. Една звездна схема съдържа само една единична таблица за всяка величина.
Кога да използвате Когато таблицата с размерите е с относително големи размери, снежинката е по-добра, тъй като намалява пространството. Когато таблицата с измерения съдържа по-малък брой редове, можем да изберем схема Star.
Нормализиране / Денормализиране Таблиците с размерите са в нормализирана форма, но таблицата с факти е в денормализирана форма Таблиците за измерения и факти са в денормализирана форма
Модел на данни Подход отдолу нагоре Подход отгоре надолу

Съдържание: Снежинка схема срещу звездна схема

  • 1 Примери
    • 1.1 Примерна схема със звезди
    • 1.2 Пример за схема на снежинка
  • 2 Референции

Примери

Помислете за база данни за търговец на дребно, който има много магазини, като всеки магазин продава много продукти в много продуктови категории и на различни марки. Склад за данни или март на данни за такъв търговец на дребно трябва да предостави на анализаторите възможността да изготвят отчети за продажбите, групирани по магазин, дата (или месец, тримесечие или година) или категория или марка на продукта.

Примерна схема на звезда

Ако този март с данни използваше звезда схема, тя ще изглежда по следния начин:

Пример за звездна схема

Таблицата с факти ще бъде запис на сделките с продажби, докато има таблици с измерения за дата, магазин и продукт. Таблиците с размери са свързани към таблицата с факти чрез техния първичен ключ, който е чужд ключ за таблицата с факти. Например, вместо да съхранява действителната дата на транзакцията в ред от таблицата с факти, date_id се съхранява. Този date_id съответства на уникален ред в таблицата Dim_Date и той също съхранява други атрибути на датата, които са необходими за групиране в отчетите. например ден от седмицата, месец, тримесечие на годината и така нататък. Данните са денормализирани за по-лесно отчитане.

Ето как човек би получил доклад за броя на телевизорите, продавани по марка и по държави с помощта на вътрешни присъединения.

Пример за схема на снежинка

Същият сценарий може да използва и схема на снежинка, в този случай тя ще бъде структурирана по следния начин:

Пример за схема на снежинка (кликнете за уголемяване)

Основната разлика в сравнение със звездната схема е, че данните в таблиците с размерите са по-нормализирани. Например, вместо да съхраняват месец, тримесечие и ден от седмицата във всеки ред от таблицата Dim_Date, те допълнително се разделят на техните собствени таблици за измерения. Подобно на таблицата Dim_Store държавата и държавата са географски атрибути, които са премахнати една стъпка - вместо да се съхраняват в таблицата Dim_Store, те сега се съхраняват в отделна таблица Dim_Geography.

Същият доклад - броят на телевизорите, продадени по държави и по марки - сега е малко по-сложен, отколкото в звездна схема:

SQL заявка за получаване на брой продукти, продавани по държава и марка, когато базата данни използва схема на снежинка.

Препратки

  • Уикипедия: Snowflake_schema
  • Уикипедия: Star_schema