Схема на снежинка в модел на склад за данни
⚡ Умно обобщение
Схемата „Снежинка“ в моделирането на хранилище за данни подрежда нормализирани таблици с измерения, които се разклоняват от централна таблица с факти, наподобявайки снежинка. Тя разширява звездната схема, намалява излишествата на данни и организира йерархии в множество свързани таблици за търсене.

Какво е схема на снежинка?
A Схема на снежинка В хранилището за данни е логическа подредба на таблици в многомерна база данни, чието диаграма на връзката между обекти (ER) наподобява формата на снежинка. Това е размерен модел в която централна таблица с факти е свързана с таблици с измерения, а тези таблици с измерения са допълнително разделени на свързани таблици с подизмерения.
Схемата „снежинка“ е разширение на схемата „звезда“. Докато схемата „звезда“ съхранява всяко измерение в една плоска таблица, схемата „снежинка“ нормализира тези измерения, разделяйки повтарящи се групи от данни в допълнителни таблици за търсене. Тази нормализация премахва излишествата и създава разклоняващата се, йерархична структура, която дава името на схемата.
Пример за схема на снежинка
В следващия пример на схема тип „снежинка“, таблица с факти за продажбите е разположена в центъра, заобиколена от измерения като „Продукт“, „Дата“ и „Магазин“. Вместо да се съхранява всеки атрибут в една таблица с измерения, географската информация се нормализира, така че „Държава“ се премества в отделна таблица.

Тук измерението Store препраща към таблица City, таблицата City препраща към таблица State, а таблицата State препраща към таблица Country. Всяка стойност се съхранява само веднъж и е свързана чрез външен ключ, така че името на държавата никога не се повтаря в милиони редове. Тази многопластова нормализация е това, което отличава схемата „снежинка“ от схемата „плоска звезда“.
Характеристики на схемата на снежинка
Схемата на снежинката има няколко определящи характеристики:
- Използва по-малко дисково пространство, защото нормализираните таблици с измерения избягват съхраняването на повтарящи се стойности.
- Нови измерения могат да бъдат добавени към схемата с относително малко усилия.
- Производителността на заявките може да спадне, тъй като извличането на данни изисква обединяване на много таблици.
- Необходими са повече усилия за поддръжка, тъй като трябва да се управляват по-голям брой справочни таблици.
Как да проектирате схема на снежинка
Проектирането на схема тип „снежинка“ започва по същия начин като всеки размерен модел и след това добавя стъпка за нормализиране. Целта е да се идентифицира бизнес процесът, който искате да анализирате, първо да се моделира като звездна схема и след това да се нормализират измеренията, които съдържат дълбоки йерархии. Следвайте следните стъпки:
- Идентифицирайте бизнес процеса и зърното. Решете какво представлява един ред от таблицата с факти, например една транзакция за продажба, и дефинирайте числовите мерки или факти, за които трябва да докладвате.
- Изградете централната таблица с факти. Добавете числовите мерки заедно с външните ключове, които сочат към всяко измерение; заедно тези външни ключове обикновено образуват съставния първичен ключ.
- Дефинирайте таблиците с размери. Създайте по една таблица за всяко описателно измерение, като например Продукт, Клиент, Дата и Магазин, и задайте на всяко заместител на първичен ключ.
- Нормализирайте йерархиите. Разделете всяко измерение, което съдържа повтарящи се атрибути, на таблици с подизмерения, например преместете Категория от Продукт или Град, Щат и Държава от измерението Магазин.
- Свържете таблиците с външни ключове. Свържете всяко подизмерение обратно с неговата родителска таблица, така че клоновете да образуват ясни йерархии „едно към много“, наподобяващи снежинка.
- Валидирайте и тествайте със заявки. Изпълнете представителни заявки за отчитане, за да потвърдите, че съединенията връщат правилни резултати и че общата производителност остава приемлива.
Тъй като дизайнът нормализира данните към третата нормална форма, документирайте ясно пътищата на свързване, така че анализаторите да разберат как да се ориентират във всеки клон. След като структурата е дефинирана, си струва да се преценят предимствата на схемата спрямо нейните разходи.
Предимства на схемата „Снежинка“
Схемата „снежинка“ предлага редица предимства:
- Основното му предимство е намаленото дисково пространство, тъй като обединяването на по-малки нормализирани таблици за търсене избягва дублирането на данни за измерения.
- Това осигурява по-голяма мащабируемост във връзките между компонентите и нивата на измеренията.
- Това премахва излишествата, което подобрява целостта на данните и прави модела по-лесен за поддръжка.
- Описателният атрибут се актуализира само на едно място, което намалява риска от непоследователни данни.
Недостатъци на схемата „Снежинка“
Дизайнът е съпроводен и с компромиси, които трябва да се вземат предвид:
- Нормализираната структура увеличава поддръжката, необходима за управление на много свързани таблици.
- Сложните заявки, които обхващат множество съединения, могат да бъдат трудни за писане и разбиране.
- По-голям брой таблици означава повече съединения, което удължава времето за изпълнение на заявките.
- Бизнес потребителите често намират модела на разклоняване за по-труден за навигиране, отколкото обикновена звездна схема.
Схема „Снежинка“ срещу схема „Звезда“
Схемата на снежинката и звездна схема са двата най-често срещани многомерни дизайна в хранилищата на данни, а ключовата разлика между тях е нормализирането. Звездната схема съхранява всяко измерение в една плоска, денормализирана таблица за максимална скорост на заявките, докато схемата „снежинка“ нормализира тези измерения в няколко свързани таблици, за да спести място за съхранение и да защити целостта на данните. Поради това двете схеми отговарят на различни приоритети.
| Аспект | Звездна схема | Схема на снежинка |
|---|---|---|
| Таблици с размери | Денормализирано, по една таблица на измерение | Нормализирано в таблици с подизмерения |
| Съхранение | Използва повече място поради излишък | Използва по-малко място, без излишни ресурси |
| Изпълнение на заявката | По-бързо, по-малко присъединявания | По-бавно, повече присъединявания |
| Сложност на заявката | Лесно за писане | По-сложни |
| Най-подходящ за | Бързо отчитане и бизнес разузнаване | Големи, йерархични измерения |
Накратко, изберете схема тип „звезда“, когато скоростта на заявките и простотата на отчитане са най-важни, и изберете схема тип „снежинка“, когато ефективността на съхранението, чистите йерархии и ниската излишност на данни са приоритет. Много реални хранилища комбинират и двата модела в зависимост от размера и дълбочината на всяко измерение.
Кога да използвате схема със снежинки
Схемата тип „снежинка“ не винаги е правилният избор, така че е полезно да се съобрази дизайнът с работното натоварване и нуждите от отчитане. Тя обикновено работи най-добре в следните ситуации:
- Размерите са много големи и съдържат много повтарящи се атрибути, които губят място за съхранение, когато се денормализират.
- Размерите имат дълбоки, добре дефинирани йерархии, като например регион към държава, щат и град, които естествено се съпоставят в отделни таблици.
- Целостта и съгласуваността на данните са по-важни за проекта от скоростта на суровите заявки.
- Разходите за съхранение са реален проблем, а спестяването на дисково пространство в таблиците с огромни измерения е значимо.
- Моделът се захранва OLAP инструменти, които могат ефективно да навигират в нормализирани йерархии.
Обратно, когато приоритет е бързото и лесно отчитане за бизнес анализаторите, звездната схема или хибридният дизайн на звезден клъстер обикновено са по-подходящи. Много архитектури на хранилища за данни умишлено съчетават двата подхода, за да балансират скоростта и паметта.
Какво е схема на галактика?
A Схема на галактиката съдържа две или повече таблици с факти, които споделят таблици с измерения помежду си. Нарича се още схема на съзвездие от факти и тъй като може да се разглежда като колекция от звезди, си носи името схема на галактика.

Както можете да видите в горния пример, има две таблици с факти:
- Revмясто
- Продукт
В схема на галактика, измеренията, които се споделят между таблиците с факти, се наричат съобразени измерения.
Характеристики на схемата на галактиката
Схемата на галактиката има следните характеристики:
- Размерите са разделени на отделни измерения въз основа на различните нива на йерархията.
- Например, ако географията има четири нива на йерархия - регион, държава, щат и град - тогава схемата на галактиката трябва да има четири измерения.
- Възможно е да се изгради този тип схема чрез разделяне на една звездна схема на повече звездни схеми.
- Размерите в тази схема са големи и трябва да бъдат изградени според нивата на йерархията.
- Схемата е полезна за агрегиране на таблици с факти, за да се подпомогне по-добър анализ и разбиране.
Какво е звезда Cluster Схема?
Схемата тип „снежинка“ съдържа напълно разширени йерархии, което може да добави сложност и да изисква допълнителни съединения. Звездообразната схема, от друга страна, съдържа напълно свити йерархии, което може да доведе до излишък. Най-доброто решение често е баланс между тези два дизайна, известен като „звезда“. Cluster Схема.

застъпванеping Размерите се появяват като разклонения в йерархиите. Разклонение се получава, когато даден обект действа като родител в две различни размерни йерархии. Тези разклонени обекти след това се идентифицират като класификации с връзки „едно към много“, което ограничава броя на допълнителните таблици, създавани от дизайна.
