Схема сніжинки в моделі сховища даних
⚡ Розумний підсумок
Схема «сніжинка» в моделюванні сховища даних упорядковує нормалізовані таблиці вимірів, що розгалужуються від центральної таблиці фактів, нагадуючи сніжинку. Вона розширює схему «зірка», зменшує надлишковість даних та впорядковує ієрархії в кількох пов'язаних таблицях пошуку.

Що таке схема сніжинки?
A Схема сніжинки у сховищі даних — це логічне розташування таблиць у багатовимірній базі даних, діаграма зв'язків між сутностями (ER) нагадує форму сніжинки. Це розмірна модель в якій центральна таблиця фактів пов'язана з таблицями вимірів, а ці таблиці вимірів далі поділяються на пов'язані таблиці підвимірів.
Схема «сніжинка» є розширенням схеми «зірка». У той час як схема «зірка» зберігає кожен вимір в одній плоскій таблиці, схема «сніжинка» нормалізує ці виміри, розділяючи повторювані групи даних на додаткові таблиці пошуку. Ця нормалізація усуває надлишковість і створює розгалужену, ієрархічну структуру, яка дала схемі назву.
Приклад схеми сніжинки
У наведеному нижче прикладі схеми «сніжинка» таблиця фактів «Продажі» розташована в центрі, оточена такими вимірами, як «Продукт», «Дата» та «Магазин». Замість того, щоб зберігати кожен атрибут в одній таблиці вимірів, географічна інформація нормалізується, тож «Країна» переміщується в окрему таблицю.

Тут вимір Store посилається на таблицю City, таблиця City посилається на таблицю State, а таблиця State посилається на таблицю Country. Кожне значення зберігається лише один раз і пов'язане зовнішнім ключем, тому назва країни ніколи не повторюється в мільйонах рядків. Ця багаторівнева нормалізація відрізняє схему «сніжинка» від схеми «плоска зірка».
Характеристики схеми сніжинки
Схема сніжинки має кілька визначальних характеристик:
- Він використовує менше місця на диску, оскільки нормалізовані таблиці розмірностей уникають зберігання повторюваних значень.
- Нові виміри можна додавати до схеми з відносно невеликими зусиллями.
- Продуктивність запитів може знизитися, оскільки отримання даних вимагає об'єднання багатьох таблиць.
- Це потребує більше зусиль з обслуговування, оскільки потрібно керувати більшою кількістю таблиць пошуку.
Як розробити схему сніжинки
Проектування схеми «сніжинка» починається так само, як і будь-яка вимірна модель, а потім додається крок нормалізації. Мета полягає у визначенні бізнес-процесу, який потрібно проаналізувати, спочатку змоделювати його як схему «зірка», а потім нормалізувати виміри, що містять глибокі ієрархії. Виконайте такі кроки:
- Визначте бізнес-процес та зерно. Визначте, що представляє окремий рядок таблиці фактів, наприклад, одну транзакцію продажу, і визначте числові показники або факти, про які потрібно звітувати.
- Створіть центральну таблицю фактів. Додайте числові міри разом із зовнішніми ключами, що вказують на кожен вимір; разом ці зовнішні ключі зазвичай утворюють складений первинний ключ.
- Визначте таблиці розмірів. Створіть одну таблицю для кожного описового виміру, такого як Продукт, Клієнт, Дата та Магазин, і призначте кожному сурогатний первинний ключ.
- Нормалізуйте ієрархії. Розділіть кожен вимір, який містить повторювані атрибути, на таблиці підвимірів, наприклад, перемістивши Категорію з виміру Продукт або Місто, Штат і Країна з виміру Магазин.
- З'єднайте таблиці за допомогою зовнішніх ключів. Зв'яжіть кожен підвимір з його батьківською таблицею, щоб гілки утворювали чіткі ієрархії «один до багатьох», що нагадують сніжинку.
- Перевіряти та тестувати за допомогою запитів. Виконайте репрезентативні запити звітності, щоб підтвердити, що об'єднання повертають правильні результати та що загальна продуктивність залишається прийнятною.
Оскільки проект нормалізує дані до третьої нормальної форми, чітко задокументуйте шляхи з'єднання, щоб аналітики розуміли, як орієнтуватися в кожній гілці. Після визначення структури варто зважити переваги схеми з її витратами.
Переваги схеми «Сніжинка»
Схема «сніжинка» пропонує низку переваг:
- Його основною перевагою є зменшення обсягу дискового простору, оскільки об'єднання менших нормалізованих таблиць пошуку дозволяє уникнути дублювання даних про виміри.
- Це забезпечує більшу масштабованість у зв'язках між компонентами та рівнями вимірів.
- Це усуває надмірність, що покращує цілісність даних і спрощує підтримку моделі.
- Описовий атрибут оновлюється лише в одному місці, що знижує ризик невідповідності даних.
Недоліки схеми «Сніжинка»
Дизайн також має враховувати певні недоліки:
- Нормалізована структура збільшує обсяг обслуговування, необхідний для керування багатьма пов'язаними таблицями.
- Складні запити, що охоплюють кілька об'єднань, можуть бути важкими для написання та розуміння.
- Більша кількість таблиць означає більше об'єднань, що збільшує час виконання запитів.
- Бізнес-користувачам часто важче орієнтуватися в моделі розгалуження, ніж у простій схемі «зірка».
Схема «Сніжинка» проти схеми «Зірка»
Схема сніжинки та зіркова схема – це два найпоширеніші багатовимірні дизайни у сховищах даних, і ключова відмінність між ними полягає в нормалізації. Зіркова схема зберігає кожен вимір в одній плоскій, денормалізованій таблиці для максимальної швидкості запитів, тоді як сніжинкова схема нормалізує ці виміри в кілька пов'язаних таблиць для економії місця та захисту цілісності даних. Через це ці дві схеми відповідають різним пріоритетам.
| Аспект | Схема зірок | Схема сніжинки |
|---|---|---|
| Таблиці розмірів | Денормалізовано, одна таблиця на вимір | Нормалізовано в таблиці підвимірів |
| зберігання | Використовує більше місця через надмірність | Використовує менше місця, без надмірностей |
| Продуктивність запиту | Швидше, менше приєднань | Повільніше, більше приєднань |
| Складність запиту | Просто написати | Більш складні |
| Найкраще підходить для | Швидка звітність та бізнес-аналітика | Великі, ієрархічні виміри |
Коротше кажучи, оберіть схему «зірка», коли швидкість запитів та простота звітності мають найбільше значення, і оберіть схему «сніжинка», коли пріоритетом є ефективність зберігання, чисті ієрархії та низька надлишковість даних. Багато реальних сховищ поєднують обидві схеми залежно від розміру та глибини кожного виміру.
Коли використовувати схему сніжинки
Схема «сніжинка» не завжди є правильним вибором, тому вона допомагає узгодити дизайн з робочим навантаженням та потребами звітності. Як правило, вона найкраще працює в таких ситуаціях:
- Розміри дуже великі та містять багато повторюваних атрибутів, які марнують місце для зберігання під час денормалізації.
- Виміри мають глибокі, чітко визначені ієрархії, такі як Регіон – Країна – Штат – Місто, які природно відображаються в окремих таблицях.
- Цілісність та узгодженість даних важливіші для проєкту, ніж швидкість обробки запитів.
- Витрати на зберігання є реальною проблемою, а економія дискового простору в таблицях з величезними вимірами є значною.
- Модель годує OLAP інструменти, які можуть ефективно орієнтуватися в нормалізованих ієрархіях.
І навпаки, коли пріоритетом є швидке та просте звітування для бізнес-аналітиків, зіркова схема або гібридна схема зоряного скупчення зазвичай є кращим варіантом. Багато архітектури сховищ даних навмисно поєднують обидва підходи, щоб збалансувати швидкість та обсяг пам'яті.
Що таке схема галактики?
A Схема галактики містить дві або більше таблиць фактів, які спільно використовують таблиці розмірностей. Її також називають схемою сузір'їв фактів, і оскільки її можна розглядати як сукупність зірок, вона отримала назву схеми галактик.

Як видно з наведеного вище прикладу, є дві таблиці фактів:
- Revмісце проведення
- Продукт
У схемі галактики виміри, спільні для таблиць фактів, називаються узгодженими вимірами.
Характеристики схеми галактики
Схема галактики має такі характеристики:
- Виміри розділені на окремі виміри на основі різних рівнів ієрархії.
- Наприклад, якщо географія має чотири рівні ієрархії — регіон, країна, штат і місто — тоді схема галактики повинна мати чотири виміри.
- Цей тип схеми можна побудувати, розділивши одну зіркову схему на більше зіркових схем.
- Розміри в цій схемі великі та повинні бути побудовані відповідно до рівнів ієрархії.
- Схема корисна для агрегації таблиць фактів для кращого аналізу та розуміння.
Що таке Зірка Cluster Схема?
Схема «сніжинка» містить повністю розгорнуті ієрархії, що може додати складності та вимагати додаткових об'єднань. З іншого боку, схема «зірка» містить повністю згорнуті ієрархії, що може призвести до надмірності. Найкращим рішенням часто є баланс між цими двома конструкціями, відомий як схема «зірка». Cluster Схема.

перекриватисяping Виміри відображаються як розгалуження в ієрархіях. Розгалуження відбувається, коли сутність діє як батьківський об'єкт у двох різних вимірних ієрархіях. Ці сутності розгалуження потім ідентифікуються як класифікації зі зв'язками "один до багатьох", що обмежує кількість додаткових таблиць, що створюються в рамках проекту.
