Знайте про основну схему: зірка проти сніжинки

Багатовимірна модель даних: Огляд та порівняння схем “зірка” і “сніжинка”

Багатовимірна схема є важливим інструментом для створення моделей систем зберігання даних. Її головне завдання – забезпечити ефективну обробку великих обсягів даних, спеціально розроблених для аналітичних цілей (OLAP). Цей підхід дозволяє організувати дані в базі таким чином, щоб їхнє розташування сприяло зручному доступу та аналізу. Завдяки цьому, користувачі можуть ставити запитання, що стосуються бізнесу або ринкових трендів, і отримувати на них швидкі відповіді.

Багатовимірна схема представляє інформацію у формі кубів даних, що дає можливість досліджувати та моделювати дані з різних перспектив та вимірів. Існує три основні типи таких схем, але найчастіше виникає плутанина між схемами “зірка” і “сніжинка”. Для багатьох вибір між ними стає складним завданням. Тому, давайте розглянемо відмінності між цими двома моделями, починаючи з їхніх визначень, переваг та недоліків, а також характеристик.

Що таке багатовимірна схема?

Схема в контексті баз даних – це логічний опис структури всієї бази даних або сховища даних. Вона містить перелік назв записів, їх опис, а також агрегати та пов’язані елементи даних. Зазвичай для опису бази даних застосовується реляційна модель, тоді як для систем зберігання даних використовують моделі схем.

Багатовимірна схема може бути визначена за допомогою мови запитів інтелектуального аналізу даних (DMQL). Для опису вітрин даних та сховищ, вона використовує два основних елементи – визначення виміру та визначення куба.

Існує кілька типів моделей багатовимірної схеми, а саме:

  • Зіркова схема
  • Схема сніжинки
  • Галактична схема

Розгляньмо детальніше схеми “зірка” і “сніжинка”.

Порівняння схем “Зірка” та “Сніжинка”: Основні поняття

Що являє собою зіркова схема?

Зіркова схема – це архітектурна модель для сховищ даних, яка використовує єдину таблицю фактів для зберігання вимірюваних та транзакційних даних. Крім того, вона використовує менші таблиці вимірів, в яких зберігаються атрибути бізнес-даних. Свою назву вона отримала завдяки структурі: таблиця фактів розташована в центрі діаграми, а таблиці вимірів – навколо неї, як гілки зірки.

Кожна зіркова схема включає одну таблицю фактів та кілька таблиць вимірів. Таблиці фактів містять конкретні вимірювані дані, що потребують аналізу, наприклад, фінансові дані, результати продажів. Це можуть бути знімки історичних даних або записи про окремі транзакції.

Зіркова схема – найпростіша та фундаментальна серед схем для сховищ даних. Вона ефективна для обробки основних запитів, підтримки бізнес-аналітики та аналітичної обробки онлайн-кубів.

Така схема підтримує операції підрахунку, обчислення середнього значення, суми та інші агрегації даних. Користувачі можуть легко фільтрувати та групувати агрегації за різними параметрами. Наприклад, вони можуть генерувати запити на зразок “знайти всі записи продажів за червень” або “проаналізувати загальний дохід від офісу XYZ у 2022 році”.

Що таке схема “сніжинка”?

Схема “сніжинка” є багатовимірною моделлю даних, яку можна розглядати як розширення зіркової схеми. Таблиці вимірів у схемі “сніжинка” поділяються на підвиміри.

Структура вважається сніжинкою, якщо хоча б одна таблиця вимірів не пов’язана безпосередньо з таблицею фактів, а з’єднана через інші таблиці вимірів. “Сніжинка” виникає в результаті нормалізації таблиць вимірів у зірковій схемі. Коли всі таблиці розмірностей нормалізовані, утворена структура нагадує сніжинку, де в центрі розташована таблиця фактів.

Простіше кажучи, схема “сніжинка” включає таблицю фактів в центрі, яка з’єднана з таблицями вимірів, а ті, у свою чергу, пов’язані з іншими таблицями вимірів. Ця схема призначена для підвищення швидкості запитів у складних зв’язках і вимірах. Вона корисна для зв’язків “один до багатьох” та “багато до багатьох” між різними рівнями вимірів.

Завдяки жорсткішому дотриманню стандартів нормалізації можна досягти більшої ефективності зберігання. Однак, надлишковість даних незначна, а продуктивність нижча порівняно з денормалізованими моделями, такими як зіркова схема.

Як працюють схеми “Зірка” та “Сніжинка”?

Принцип роботи зіркової схеми

Таблиця фактів у центрі зіркової моделі зберігає два типи інформації – числові значення та значення атрибутів вимірів. Розглянемо їх на прикладі бази даних продажів.

  • Числові значення унікальні для кожного рядка та точки даних. Вони не співвідносяться з даними, що зберігаються в інших рядках. Це факти про конкретну транзакцію, такі як загальна сума, кількість замовлення, точний час, чистий прибуток, ідентифікатор замовлення.
  • Значення атрибутів вимірів не зберігають безпосередньо дані, вони зберігають значення зовнішнього ключа для рядка в таблиці вимірів. Різні рядки в центральній таблиці посилатимуться на цю інформацію, як-от значення даних, ідентифікатор продавця, ідентифікатор філії, ідентифікатор товару.

Таблиці вимірів завжди містять допоміжну інформацію з таблиці фактів. Кожна таблиця вимірів пов’язана зі стовпцем таблиці фактів, а також містить додаткові дані про це значення. Наприклад, таблиця параметрів співробітника використовує ідентифікатор працівника як ключ, а також містить інформацію, таку як ім’я, стать, адреса та номер телефону. Таблиця вимірів товару зберігає інформацію, включаючи назву товару, колір, дату першого надходження на ринок, вартість виробництва.

Принцип роботи схеми “сніжинка”

Уявіть структуру сніжинки з центральним ядром і різними з’єднаннями через це ядро з різними точками. Саме такий дизайн схеми “сніжинка” використовується для вітрин даних і сховищ. Вона схожа на зіркову схему, але з кількома відмінностями. На відміну від зіркової схеми, схема “сніжинка” розширює свої таблиці підрозмірів, які пов’язані з таблицями вимірів.

Основна мета цієї моделі – нормалізувати денормалізовану інформацію зіркової моделі. Таким чином, можна вирішити типові проблеми, пов’язані зі зірковою схемою. В основі схеми знаходиться таблиця фактів, яка пов’язана з інформацією таблиць вимірів. Ці таблиці знову з’єднані з таблицями підвимірів, які містять детальну інформацію, що описує дані таблиць вимірів.

Наприклад, схема “сніжинка” може містити таблицю фактів продажів та таблиці параметрів розташування магазину, лінії, сімейства, продукту та часу. Вимір ринку складається з двох таблиць вимірів, де магазин є основною, а розташування магазину – таблицею підвимірів. Вимір продукту містить три таблиці підвимірів: таблиця підвимірів продукту, лінії та родини.

Характеристики схем “Зірка” і “Сніжинка”

Характеристики зіркової схеми

  • Зіркова схема може фільтрувати дані з нормалізованих даних для задоволення потреб у сховищі. Унікальний ключ генерується з пов’язаної інформації для кожної таблиці фактів для ідентифікації кожного рядка.
  • Вона забезпечує швидкі обчислення та агрегації. Ці деталі можна відфільтрувати, створюючи відповідні запити.
  • Це вимірювання подій, яке включає числові значення, що складаються із зовнішнього ключа. Ці ключі пов’язані з розмірними таблицями.
  • Таблиця фактів транзакцій містить дані про певні події.
  • Факти запису включають певні періоди.
  • Розмірна таблиця надає детальні дані щодо атрибутів або записів, знайдених у центральній таблиці.
  • Користувач може самостійно розробити таблицю відповідно до своїх потреб.
  • Ви можете використовувати зіркову схему для накопичення таблиць знімків.

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

  • Схемі “сніжинка” потрібен менший простір на диску.
  • Ця модель проста у виконанні завдяки окремій та основній таблицям вимірів.
  • Таблиці вимірів містять щонайменше два атрибути для визначення інформації.
  • Через кілька таблиць продуктивність нижча порівняно зі зірковою схемою.
  • Схема “сніжинка” має високий рівень цілісності даних і низьку надмірність завдяки нормалізації.

Переваги схем “Зірка” та “Сніжинка”

Переваги зіркової схеми

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

Переваги схеми “сніжинка”

  • Схема “сніжинка” покращує продуктивність запитів завдяки меншим вимогам до пам’яті на диску.
  • Вона забезпечує більшу масштабованість у зв’язках між компонентами та рівнями вимірів.
  • Її легше обслуговувати.
  • Схема “сніжинка” забезпечує швидкий пошук даних.
  • Це звичайна та проста схема даних для сховищ.
  • Вона допомагає підвищити якість даних.
  • Структуровані дані зменшують проблему цілісності.

Обмеження схем “Зірка” та “Сніжинка”

Обмеження зіркової схеми

Вона має високий денормалізований стан та стан цілісності. Весь процес може згорнутись, якщо користувач не оновить дані. Безпека та захист також обмежені. Крім того, зіркова схема не така гнучка, як аналітична модель. Вона не забезпечує ефективної підтримки різноманітних відносин.

Обмеження схеми “сніжинка”

Основним обмеженням є додаткові зусилля з обслуговування через збільшення кількості таблиць малих розмірів. Багато складних запитів ускладнюють пошук необхідних даних. Крім того, час виконання запиту великий через вищі таблиці. Ця модель також жорстка і вимагає більших витрат на обслуговування.

Основні відмінності між схемами “Зірка” та “Сніжинка”

Схеми “зірка” та “сніжинка” належать до багатовимірних, але мають різні структури та властивості. Перша схожа на зірку, а друга – на сніжинку, що і визначає їхні назви.

У зірковій схемі лише одне з’єднання створює зв’язок між центральною таблицею фактів і таблицями вимірів. У схемі “сніжинка” потрібно кілька з’єднань для зв’язування з таблицями вимірів.

Схема “зірка” зазвичай використовується, коли таблиці вимірів мають меншу кількість рядків, тоді як схема “сніжинка” застосовується, коли таблиця вимірів відносно велика.

У таблиці нижче наведено порівняння двох моделей, їхні відмінності.

Параметри Зіркова схема Схема “сніжинка”
Місце на диску Використовує більше місця Використовує менше місця
Надмірність даних Висока Низька
Нормалізація Таблиці розмірів денормалізовані Таблиці розмірів повністю нормалізовані
Ефективність запиту Швидке виконання запитів Виконання запитів займає більше часу
Складність запиту Низька Вища, ніж у зірковій
Обслуговування Складніше через високу надмірність Легше через низьку надмірність
Цілісність даних Висока, оскільки дані зберігаються надлишково Низька, оскільки повністю нормалізовані таблиці
Ієрархії Зберігаються в таблиці вимірів Розділені на окремі таблиці вимірів
Структура БД Проста Складна
Таблиця фактів Оточена кількома таблицями вимірів Оточена таблицями вимірів та підвимірів
Створення Легко розробити та налаштувати Складніше налаштувати
Обробка куба Швидша Повільніша
Зовнішні ключі Мінімальна кількість Максимальна кількість

Висновок

Схеми “зірка” та “сніжинка” є корисними в різних галузях. Рішення про те, яка з них краща, залежить від конкретних вимог.

Схема “сніжинка” є розширенням схеми “зірка”, де нормалізуються таблиці вимірів.

Зіркова схема проста за дизайном, виконує запити швидше та легко налаштовується. Схема “сніжинка” легша в обслуговуванні, займає менше місця на диску та менш схильна до проблем цілісності даних.

Зіркова схема може бути кращим варіантом, якщо потрібен простий дизайн, менше зовнішніх ключів та швидка обробка куба. Якщо ж потрібне менше місця на диску, низька надмірність та невисокі витрати на обслуговування, схема “сніжинка” може бути більш підходящою.

Також варто дослідити рішення для баз даних графів.