Схема на снежинка в модел на склад за данни

⚡ Умно обобщение

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

  • 🧩 Основна структура: Централна таблица с факти се свързва с таблици с измерения, които са нормализирани в допълнителни таблици с подразмерения и справки.
  • ❄️ Нормализация: Разделянето на всяко измерение на свързани таблици премахва повтарящите се атрибути и измества йерархиите към трета нормална форма.
  • 🌟 Връзка със звездната схема: Схемата „снежинка“ разширява схемата „звезда“, като нормализира нейните плоски, денормализирани таблици с размери.
  • 💾 Предимство за съхранение: По-малките нормализирани таблици за търсене намаляват използването на дисково пространство и елиминират излишните данни, което улеснява поддръжката.
  • 🔗 Компромис при заявките: Повече таблици означават повече съединения, което може да забави производителността на заявките и да усложни отчитането.
  • 🧭 Кога да използвате: Изберете го за големи измерения с дълбоки йерархии, където спестяването на място за съхранение и целостта на данните са от най-голямо значение.
  • 🪐 Свързани схеми: Дизайните на галактики и звездни купове се основават на концепциите за звезди и снежинки за по-сложни модели.

Схема „Снежинка“ в хранилище за данни с нормализирани таблици с измерения, разклоняващи се от централна таблица с факти

Какво е схема на снежинка?

A Схема на снежинка В хранилището за данни е логическа подредба на таблици в многомерна база данни, чието диаграма на връзката между обекти (ER) наподобява формата на снежинка. Това е размерен модел в която централна таблица с факти е свързана с таблици с измерения, а тези таблици с измерения са допълнително разделени на свързани таблици с подизмерения.

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

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

В следващия пример на схема тип „снежинка“, таблица с факти за продажбите е разположена в центъра, заобиколена от измерения като „Продукт“, „Дата“ и „Магазин“. Вместо да се съхранява всеки атрибут в една таблица с измерения, географската информация се нормализира, така че „Държава“ се премества в отделна таблица.

Пример за схема тип „снежинка“ с централна таблица с факти и нормализирана таблица с измерения на държавата
Пример за схема на снежинка

Тук измерението Store препраща към таблица City, таблицата City препраща към таблица State, а таблицата State препраща към таблица Country. Всяка стойност се съхранява само веднъж и е свързана чрез външен ключ, така че името на държавата никога не се повтаря в милиони редове. Тази многопластова нормализация е това, което отличава схемата „снежинка“ от схемата „плоска звезда“.

Характеристики на схемата на снежинка

Схемата на снежинката има няколко определящи характеристики:

  • Използва по-малко дисково пространство, защото нормализираните таблици с измерения избягват съхраняването на повтарящи се стойности.
  • Нови измерения могат да бъдат добавени към схемата с относително малко усилия.
  • Производителността на заявките може да спадне, тъй като извличането на данни изисква обединяване на много таблици.
  • Необходими са повече усилия за поддръжка, тъй като трябва да се управляват по-голям брой справочни таблици.

Как да проектирате схема на снежинка

Проектирането на схема тип „снежинка“ започва по същия начин като всеки размерен модел и след това добавя стъпка за нормализиране. Целта е да се идентифицира бизнес процесът, който искате да анализирате, първо да се моделира като звездна схема и след това да се нормализират измеренията, които съдържат дълбоки йерархии. Следвайте следните стъпки:

  1. Идентифицирайте бизнес процеса и зърното. Решете какво представлява един ред от таблицата с факти, например една транзакция за продажба, и дефинирайте числовите мерки или факти, за които трябва да докладвате.
  2. Изградете централната таблица с факти. Добавете числовите мерки заедно с външните ключове, които сочат към всяко измерение; заедно тези външни ключове обикновено образуват съставния първичен ключ.
  3. Дефинирайте таблиците с размери. Създайте по една таблица за всяко описателно измерение, като например Продукт, Клиент, Дата и Магазин, и задайте на всяко заместител на първичен ключ.
  4. Нормализирайте йерархиите. Разделете всяко измерение, което съдържа повтарящи се атрибути, на таблици с подизмерения, например преместете Категория от Продукт или Град, Щат и Държава от измерението Магазин.
  5. Свържете таблиците с външни ключове. Свържете всяко подизмерение обратно с неговата родителска таблица, така че клоновете да образуват ясни йерархии „едно към много“, наподобяващи снежинка.
  6. Валидирайте и тествайте със заявки. Изпълнете представителни заявки за отчитане, за да потвърдите, че съединенията връщат правилни резултати и че общата производителност остава приемлива.

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

Предимства на схемата „Снежинка“

Схемата „снежинка“ предлага редица предимства:

  • Основното му предимство е намаленото дисково пространство, тъй като обединяването на по-малки нормализирани таблици за търсене избягва дублирането на данни за измерения.
  • Това осигурява по-голяма мащабируемост във връзките между компонентите и нивата на измеренията.
  • Това премахва излишествата, което подобрява целостта на данните и прави модела по-лесен за поддръжка.
  • Описателният атрибут се актуализира само на едно място, което намалява риска от непоследователни данни.

Недостатъци на схемата „Снежинка“

Дизайнът е съпроводен и с компромиси, които трябва да се вземат предвид:

  • Нормализираната структура увеличава поддръжката, необходима за управление на много свързани таблици.
  • Сложните заявки, които обхващат множество съединения, могат да бъдат трудни за писане и разбиране.
  • По-голям брой таблици означава повече съединения, което удължава времето за изпълнение на заявките.
  • Бизнес потребителите често намират модела на разклоняване за по-труден за навигиране, отколкото обикновена звездна схема.

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

Схемата на снежинката и звездна схема са двата най-често срещани многомерни дизайна в хранилищата на данни, а ключовата разлика между тях е нормализирането. Звездната схема съхранява всяко измерение в една плоска, денормализирана таблица за максимална скорост на заявките, докато схемата „снежинка“ нормализира тези измерения в няколко свързани таблици, за да спести място за съхранение и да защити целостта на данните. Поради това двете схеми отговарят на различни приоритети.

АспектЗвездна схемаСхема на снежинка
Таблици с размериДенормализирано, по една таблица на измерениеНормализирано в таблици с подизмерения
СъхранениеИзползва повече място поради излишъкИзползва по-малко място, без излишни ресурси
Изпълнение на заявкатаПо-бързо, по-малко присъединяванияПо-бавно, повече присъединявания
Сложност на заявкатаЛесно за писанеПо-сложни
Най-подходящ заБързо отчитане и бизнес разузнаванеГолеми, йерархични измерения

Накратко, изберете схема тип „звезда“, когато скоростта на заявките и простотата на отчитане са най-важни, и изберете схема тип „снежинка“, когато ефективността на съхранението, чистите йерархии и ниската излишност на данни са приоритет. Много реални хранилища комбинират и двата модела в зависимост от размера и дълбочината на всяко измерение.

Кога да използвате схема със снежинки

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

  • Размерите са много големи и съдържат много повтарящи се атрибути, които губят място за съхранение, когато се денормализират.
  • Размерите имат дълбоки, добре дефинирани йерархии, като например регион към държава, щат и град, които естествено се съпоставят в отделни таблици.
  • Целостта и съгласуваността на данните са по-важни за проекта от скоростта на суровите заявки.
  • Разходите за съхранение са реален проблем, а спестяването на дисково пространство в таблиците с огромни измерения е значимо.
  • Моделът се захранва OLAP инструменти, които могат ефективно да навигират в нормализирани йерархии.

Обратно, когато приоритет е бързото и лесно отчитане за бизнес анализаторите, звездната схема или хибридният дизайн на звезден клъстер обикновено са по-подходящи. Много архитектури на хранилища за данни умишлено съчетават двата подхода, за да балансират скоростта и паметта.

Какво е схема на галактика?

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

Пример за схема на галактика с две таблици с факти, споделящи конформни таблици с измерения
Пример за схема на галактика

Както можете да видите в горния пример, има две таблици с факти:

  1. Revмясто
  2. Продукт

В схема на галактика, измеренията, които се споделят между таблиците с факти, се наричат ​​​​съобразени измерения.

Характеристики на схемата на галактиката

Схемата на галактиката има следните характеристики:

  • Размерите са разделени на отделни измерения въз основа на различните нива на йерархията.
  • Например, ако географията има четири нива на йерархия - регион, държава, щат и град - тогава схемата на галактиката трябва да има четири измерения.
  • Възможно е да се изгради този тип схема чрез разделяне на една звездна схема на повече звездни схеми.
  • Размерите в тази схема са големи и трябва да бъдат изградени според нивата на йерархията.
  • Схемата е полезна за агрегиране на таблици с факти, за да се подпомогне по-добър анализ и разбиране.

Какво е звезда Cluster Схема?

Схемата тип „снежинка“ съдържа напълно разширени йерархии, което може да добави сложност и да изисква допълнителни съединения. Звездообразната схема, от друга страна, съдържа напълно свити йерархии, което може да доведе до излишък. Най-доброто решение често е баланс между тези два дизайна, известен като „звезда“. Cluster Схема.

Пример за схема на звезден куп, която балансира дизайна на звезди и снежинки
Пример за звезда Cluster схема

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

Въпроси и Отговори

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

Нормализацията разделя таблицата с измерения на по-малки свързани таблици, за да премахне повтарящите се данни. В схема тип „снежинка“ атрибути като категория или държава се преместват в собствени таблици, обикновено достигайки трета нормална форма, което намалява излишествата и запазва всяка стойност само веднъж.

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

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

Да. Много складове смесват и двата модела, нормализирайки само големите размери, които се възползват от това, като същевременно запазватping по-малки размери плоски. Този хибрид, понякога наричан схема на звезден клъстер, балансира скоростта на заявките на звездна схема с икономиите на място за съхранение на схема на снежинка.

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

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

Да. ChatGPT намлява Копилот на GitHub Може да създава CREATE TABLE оператори и да свързва заявки за схема тип „снежинка“ от кратък подкаст. Винаги преглеждайте генерираните ключове, типове данни и връзки, преди да ги стартирате в продукция.

Обобщете тази публикация с: