Что такое звездообразная схема в моделировании хранилища данных?
⚡ Умное резюме
В моделировании хранилищ данных «звездная схема» размещает центральную таблицу фактов в основе окружающих таблиц измерений, создавая денормализованную звездообразную структуру, которая упрощает аналитические запросы, ускоряет создание отчетов и обеспечивает работу OLAP-кубов на платформах бизнес-аналитики.
Что такое звездообразная схема?
A схема звезды В хранилище данных это структура моделирования, в которой одна центральная таблица фактов связана с рядом ассоциированных таблиц измерений. Она называется звездообразной схемой, потому что ее расположение напоминает звезду, где таблица фактов находится в центре, а таблицы измерений расходятся наружу, как точки.
Звездная схема — это простейший тип схемы хранилища данных, также известный как схема соединения «звезда». Благодаря денормализованным таблицам измерений, эта модель оптимизирована для запросов к очень большим наборам данных, что делает её распространённым выбором для размерное моделирование и отчетность.
Что такое многомерная схема?
A многомерная схема Эти схемы разработаны специально для моделирования систем хранилищ данных. Они отвечают уникальным потребностям очень больших баз данных, созданных для аналитических целей. OLAP а не для обычной обработки транзакций.
Типы схем хранилищ данных: Существует три основных типа многомерных схем, и каждый из них имеет свои преимущества.
- Схема звезды – центральная таблица фактов, напрямую связанная с денормализованными таблицами измерений.
- Схема снежинки – расширение звездообразной схемы, в которой измерения нормализованы в дополнительные таблицы подразмеров.
- Схема галактики – Также называемая «консолидацией фактов», она использует несколько таблиц фактов, которые имеют общие таблицы измерений.
Поскольку схема «снежинка» напрямую основана на схеме «звезда», полезно сравнить две модели, прежде чем переходить к детальному примеру схемы «звезда».
Звездная схема против Снежной схемы
Звездная схема и схема снежинки Обе схемы организуют данные вокруг таблиц фактов и измерений, но различаются способом хранения измерений. В схеме «звезда» каждое измерение хранится в одной денормализованной таблице, тогда как в схеме «снежинка» эти измерения нормализуются в несколько связанных таблиц.
- Конструкция: Звездная схема плоская и простая; снежная схема разветвляет измерения на подизмерения.
- Скорость выполнения запросов: Звездная схема требует меньшего количества соединений, поэтому запросы обычно выполняются быстрее, а SQL-код остается проще.
- Хранение: Схемы Snowflake устраняют избыточность, поэтому занимают меньше места, но усложняют проектирование.
- Целостность данных: Нормализованные размерности типа «снежинка» обеспечивают лучшую целостность, тогда как денормализованные размерности типа «звезда» способствуют повышению производительности.
- Простота использования: Звездная схема проще для понимания аналитиками и быстрее в обслуживании, в то время как снежинка требует более тщательного проектирования.
На практике команды часто выбирают звездообразную схему для хранилищ данных и панелей мониторинга, требующих быстрой и простой отчетности, и снежинкообразную схему, когда экономия места и строгая согласованность имеют большее значение.
Пример звездообразной схемы
В приведенном ниже примере звездообразной схемы таблица фактов находится в центре и содержит ключи ко всем таблицам измерений, таким как Dealer_ID, Model_ID, Date_ID, Product_ID и Branch_ID, а также измеримые атрибуты, такие как количество проданных единиц и выручка.

Каждая окружающая таблица измерений добавляет описательный контекст к этим показателям, поэтому один запрос может группировать или фильтровать данные о продажах по дилеру, модели, дате, продукту или филиалу без объединения каких-либо других таблиц.
Таблицы фактов
В звездообразной схеме таблица фактов содержит факты и связана с измерениями. Таблица фактов содержит два типа столбцов:
- Столбец, в котором хранятся факты или показатели.
- Внешние ключи, связывающие каждую таблицу измерений.
Как правило, первичный ключ таблицы фактов представляет собой составной ключ, образованный из всех внешних ключей, составляющих эту таблицу.
Таблицы фактов могут содержать как детализированные, так и агрегированные данные. Таблицы фактов, включающие агрегированные данные, часто называются сводными таблицами, и обычно они содержат данные, которые уже были агрегированы на каком-либо уровне.
Таблицы размеров
Измерение — это структура, которая классифицирует данные в иерархическом порядке. Измерение без иерархий и уровней называется плоским измерением или списком. Первичный ключ каждой таблицы измерений является частью составного первичного ключа таблицы фактов.
Атрибут измерения — это описательный текстовый атрибут, помогающий описать значение измерения, например, название продукта или город. Поскольку таблицы измерений хранят этот описательный контекст, а не транзакционные события, таблицы фактов обычно намного больше, чем таблицы измерений.
Как разработать звездообразную схему
Разработка звездообразной схемы следует подходу многомерного моделирования, популяризированному Ральфом Кимбаллом. Цель состоит в том, чтобы организовать бизнес-показатели вокруг четких, многократно используемых измерений, чтобы готовую модель было легко запрашивать и быстро создавать отчеты. Пять шагов, описанных ниже, описывают процесс, которому следует большинство проектов многомерного моделирования, начиная от бизнес-вопроса самого высокого уровня и заканчивая физическими таблицами фактов и измерений.
- Определите бизнес-процесс: Выберите вид деятельности, который хотите проанализировать, например, продажи, отгрузка.pingили инвентаризация. Это решение определяет, что будет измерять таблица фактов.
- Заявите о сорте зерна: Определите уровень детализации каждой строки данных, например, одна строка на каждую позицию, на каждую транзакцию или на каждый день. Четкая детализация обеспечивает согласованность модели.
- Укажите размеры: Укажите необходимый контекст для анализа данных, например, продукт, клиент, дилер, филиал и дата. Каждый из этих параметров становится таблицей измерений с атрибутами.
- Определите факты: Определите числовые показатели, которые хочет использовать компания. track, например, количество проданных единиц, выручка или затраты, и поместите их в центральную таблицу фактов.
- Постройте звезду: Свяжите таблицу фактов с каждым измерением с помощью внешних ключей,ping Размеры денормализованы таким образом, что диаграмма образует единую центральную таблицу фактов, окруженную ее размерами.
После построения звездообразной схемы добавьте суррогатный ключ к каждому измерению, убедитесь, что каждая таблица фактов имеет связанное измерение даты, и проверьте, что все факты имеют одинаковую степень детализации. Также рекомендуется сначала загружать атомарные данные самого низкого уровня, поскольку сводные таблицы всегда можно будет создать позже. Соблюдение этих правил позволяет оптимизировать схему для высокой производительности и простоты. информационное хранилище составление отчетов.
Характеристики звездообразной схемы
- В звездообразной схеме каждое измерение представлено лишь одной таблицей измерений.
- Каждая таблица измерений содержит свой собственный набор атрибутов.
- Таблица измерений связана с таблицей фактов с помощью внешнего ключа.
- Таблицы измерений не связаны друг с другом.
- В таблице фактов содержатся ключи и показатели.
- Звездная схема проста для понимания и обеспечивает оптимальное использование дискового пространства.
- Таблицы измерений не нормализованы. Например, в приведенном выше примере для Country_ID нет отдельной таблицы поиска стран, как это бывает в других таблицах. OLTP дизайн бы.
- Данная схема широко поддерживается инструментами бизнес-аналитики.
Преимущества звездообразной схемы
Звездчатая схема обладает рядом преимуществ, что делает ее популярной отправной точкой для проектирования хранилищ данных:
- Звездные схемы используют более простую логику объединения, чем другие схемы, при извлечении данных из сильно нормализованных транзакционных источников.
- Звездная схема упрощает стандартную логику бизнес-отчетности, такую как отчетность за разные периоды и отчетность по состоянию на текущую дату.
- Звездные схемы широко используются в OLAP-системах для эффективного построения кубов, и в большинстве основных OLAP-систем звездная схема может служить источником без проектирования структуры куба.
- Благодаря возможности целенаправленной настройки производительности запросов, обработчик запросов может предлагать более эффективные планы выполнения.
Недостатки звездообразной схемы
- Поскольку схема сильно денормализована, целостность данных не обеспечивается в строгом соответствии.
- Она не отличается гибкостью в плане удовлетворения сложных аналитических потребностей.
- Звездные схемы не укрепляют связи «многие ко многим» между бизнес-субъектами.
Когда использовать звездообразную схему
Звездчатая схема — правильный выбор, когда быстрая и предсказуемая производительность запросов важнее, чем экономия места для хранения. Поскольку в этой модели таблицы измерений остаются денормализованными, а количество соединений невелико, она подходит для аналитических задач, где бизнес-пользователи многократно запускают аналогичные отчеты, панели мониторинга и агрегации на больших объемах исторических данных.
Типичные ситуации, когда звездообразная схема хорошо подходит, включают в себя:
- Витрины данных: ведомственный витрины данных Благодаря понятной структуре, книга выигрывает от простых и хорошо известных взаимосвязей.
- Панели мониторинга бизнес-аналитики: Бизнес-аналитика Инструменты четко соответствуют звездообразным схемам, поэтому отчеты и визуализации создаются быстро.
- OLAP-кубы: Звездные схемы являются естественным источником для OLAP-кубов, агрегирования и анализа данных методом среза и разделения.
Если же приоритеты смещаются в сторону минимального объема хранения, строгой целостности данных или глубоких, изменяющихся иерархий, то схема «снежинка» или более нормализованная архитектура могут оказаться более подходящими. Многие команды даже комбинируют эти два подхода, начиная со схемы «звезда» и нормализуя только те измерения, которые действительно в этом нуждаются.

