Схема зіркиУ комп'ютингу схема зірки є найпростішим стилем схеми вітрин даних і є найпоширенішим підходом для розробки сховищ даних і вітрин просторових даних.[1] Схема зірки містить одну або більше таблиць фактів, що посилаються на будь-яку кількість таблиць розмірностей. Схема зірки є важливим випадком схеми сніжинки і є більш ефективною для обробки простіших запитів.[2] Схема зірки отримала свою назву через подібність фізичної моделі даних[3] до форми зірки з таблицею фактів у центрі та таблицями розмірностей, які утворюють вершини зірки навколо неї. МодельСхема зірки відокремлює дані бізнес-процесів від фактів, які містять вимірювані, кількісні дані про бізнес, і розмірності, які є описовими атрибутами, пов'язаними з даними про факти. Приклади фактичних даних включають ціну продажу, кількість продажів, час, відстань, швидкість і вагу. Відповідні атрибути розмірностей включають моделі продуктів, кольори продуктів, фізичні розміри продуктів, географічні місця розташування та імена продавців. Схема зірки, яка має багато розмірностей, іноді називається схемою сороконіжки.[4] Коли є розмірності лише декількох атрибутів, хоча їх і простіше підтримувати, проте це призводить до запитів з багатьма приєднаннями таблиць і робить схему зірки менш зручною у використанні. Таблиці фактівТаблиці фактів записують вимірювання або показники для конкретної події. Вони, як правило, складаються з числових значень і зовнішніх ключів до розмірних даних, де зберігається описова інформація.[4] Такі таблиці розраховані на низький рівень уніфікованих деталей (називають «зернистістю» або «зерном»), тобто факти можуть записувати події на дуже атомному рівні. Це може призвести до накопичення великої кількості записів у таблиці фактів з плином часу. Таблиці фактів поділяють на три типи:
Таблицям фактів, як правило, призначаються сурогатні ключі для забезпечення однозначної ідентифікації кожного рядка. Цей ключ є простим первинним ключем. Таблиці розмірностейТаблиці розмірностей зазвичай мають відносно невелику кількість записів у порівнянні з таблицями фактів, але кожен запис може мати дуже велику кількість атрибутів для опису даних про факти. Розмірності можуть визначати найрізноманітніші характеристики, але деякі з найбільш поширених атрибутів, визначених таблицями розмірностей, включають:
Таблицям розмірностей, як правило, призначаються сурогатні первинні ключі, зазвичай цілого типу, що займають один стовпчик. Вони утворюються, як поєднання атрибутів розмірностей, які утворюють природний ключ. ПеревагиСхеми зірки денормалізовані, тобто звичайні правила нормалізації, притаманні транзакційним реляційним базам даних, розмиті під час розробки і реалізації схем. Переваги денормалізації схеми зірки:
НедолікиОсновний недолік схеми зірки полягає в тому, що цілісність даних не забезпечується належним чином, оскільки вона знаходиться в дуже денормалізованому стані. Одноразові вставки і оновлення можуть призвести до аномалій даних, яких уникають нормалізовано розроблені схеми. Взагалі кажучи, схеми зірки завантажуються у високо контрольованому режимі за допомогою пакетної обробки або майже у реальному часі, щоб компенсувати відсутність захисту, що надається нормалізацією. Схема зірки також не є такою гнучкою з точки зору аналітичних потреб, як нормалізована модель даних. Нормалізовані моделі дозволяють виконувати будь-які аналітичні запити, якщо вони дотримуються бізнес-логіки, визначеної в моделі. Схема зірки, як правило, більш цілеспрямовані для конкретного перегляду даних, отже, не дозволяють більш складну аналітику. Вони не підтримують відносини типу many-to-many між суб'єктами господарювання — принаймні, не дуже природно. Зазвичай ці співвідношення спрощуються в схемі зірки, щоб відповідати простої розмірної моделі. ПрикладРозглянемо базу даних продажів, можливо, з мережі магазинів, класифікованої за датою, магазином і виробом. Зображення схеми праворуч є версією схеми зірки зразкової схеми, наведеної в статті про схему сніжинки.
Кожна таблиця розмірностей має первинний ключ у своєму Наприклад, наступний запит відповідає, скільки телевізорів було продано, для кожної марки та країни, у 2019 році: SELECT
P.Brand,
S.Country AS Countries,
SUM(F.Units_Sold)
FROM Fact_Sales F
INNER JOIN Dim_Date D ON (F.Date_Id = D.Id)
INNER JOIN Dim_Store S ON (F.Store_Id = S.Id)
INNER JOIN Dim_Product P ON (F.Product_Id = P.Id)
WHERE D.Year = 2019 AND P.Product_Category = 'tv'
GROUP BY
P.Brand,
S.Country
Див. такожПримітки
Посилання
|