Схема «снежинка» в модели хранилища данных
⚡ Умное резюме
Схема «снежинка» в моделировании хранилища данных организует нормализованные таблицы измерений, которые ответвляются от центральной таблицы фактов, напоминая снежинку. Она расширяет звездообразную схему, уменьшает избыточность данных и организует иерархии между несколькими связанными таблицами поиска.

Что такое схема снежинки?
A Схема снежинки Хранилище данных представляет собой логическое расположение таблиц в многомерной базе данных, Диаграмма «сущность-связь» (ER-диаграмма) По форме напоминает снежинку. Это габаритная модель в которой центральная таблица фактов связана с таблицами измерений, а эти таблицы измерений, в свою очередь, подразделяются на связанные таблицы подразмерений.
Схема «снежинка» — это расширение схемы «звезда». В то время как схема «звезда» хранит каждое измерение в одной плоской таблице, схема «снежинка» нормализует эти измерения, разделяя повторяющиеся группы данных на дополнительные справочные таблицы. Эта нормализация устраняет избыточность и создает разветвленную иерархическую структуру, которая и дала схеме ее название.
Пример схемы снежинки
В приведенном ниже примере схемы «снежинка» таблица фактов «Продажи» находится в центре, окруженная измерениями, такими как «Продукт», «Дата» и «Магазин». Вместо хранения всех атрибутов в одной таблице измерений, географическая информация нормализована, так что страна перемещена в отдельную таблицу.

Здесь измерение «Магазин» ссылается на таблицу «Город», таблица «Город» ссылается на таблицу «Штат», а таблица «Штат» ссылается на таблицу «Страна». Каждое значение хранится только один раз и связано внешним ключом, поэтому название страны никогда не повторяется в миллионах строк. Именно эта многоуровневая нормализация отличает схему «снежинка» от плоской звездообразной схемы.
Характеристики схемы «снежинка»
Схема «снежинка» обладает несколькими определяющими характеристиками:
- Это позволяет использовать меньше дискового пространства, поскольку нормализованные таблицы измерений избегают хранения повторяющихся значений.
- В схему можно добавить новые измерения с относительно небольшими усилиями.
- Производительность запросов может снизиться, поскольку для извлечения данных требуется объединение множества таблиц.
- Это потребует больших усилий по техническому обслуживанию, поскольку необходимо управлять большим количеством справочных таблиц.
Как разработать схему Snowflake
Разработка схемы «снежинка» начинается так же, как и любой многомерной модели, а затем добавляется этап нормализации. Цель состоит в том, чтобы определить бизнес-процесс, который вы хотите проанализировать, сначала смоделировать его в виде звездообразной схемы, а затем нормализовать измерения, содержащие глубокие иерархии. Выполните следующие шаги:
- Определите бизнес-процесс и его структуру. Определите, что представляет собой отдельная строка таблицы фактов, например, одна транзакция продажи, и определите числовые показатели или факты, по которым вам необходимо составить отчет.
- Создайте центральную таблицу фактов. Сложите числовые показатели вместе с внешними ключами, указывающими на каждое измерение; вместе эти внешние ключи обычно образуют составной первичный ключ.
- Определите таблицы измерений. Создайте отдельную таблицу для каждого описательного измерения, например, «Продукт», «Клиент», «Дата» и «Магазин», и назначьте каждой из них суррогатный первичный ключ.
- Нормализуйте иерархии. Разделите все измерения, содержащие повторяющиеся атрибуты, на таблицы подизмерений, например, переместив «Категорию» из измерения «Продукт» или «Город, штат и страна» из измерения «Магазин».
- Свяжите таблицы с помощью внешних ключей. Свяжите каждое подизмерение с родительской таблицей таким образом, чтобы ветви образовывали четкие иерархии «один ко многим», напоминающие снежинку.
- Проверяйте и тестируйте с помощью запросов. Выполните показательные запросы для формирования отчетов, чтобы убедиться, что объединения возвращают корректные результаты и что общая производительность остается приемлемой.
Поскольку данная схема нормализует данные в соответствии с третьей нормальной формой, необходимо четко задокументировать пути объединения, чтобы аналитики понимали, как перемещаться по каждой ветви. После определения структуры стоит взвесить преимущества схемы и ее недостатки.
Преимущества схемы Snowflake
Схема Snowflake предлагает ряд преимуществ:
- Главное преимущество заключается в сокращении объема дискового пространства, поскольку объединение меньших по размеру нормализованных таблиц поиска позволяет избежать дублирования данных измерений.
- Это обеспечивает большую масштабируемость во взаимосвязях между компонентами и уровнями измерений.
- Это устраняет избыточность, что повышает целостность данных и упрощает поддержку модели.
- Описательный атрибут обновляется только в одном месте, что снижает риск возникновения несогласованных данных.
Недостатки схемы «Снежинка»
При разработке этой конструкции также необходимо учитывать ряд компромиссов:
- Нормализованная структура увеличивает объем работ, необходимых для управления множеством связанных таблиц.
- Сложные запросы, включающие множество соединений, могут быть трудны для написания и понимания.
- Большее количество таблиц означает больше соединений, что увеличивает время выполнения запроса.
- Для бизнес-пользователей модель ветвления часто оказывается сложнее в использовании, чем простая звездообразная схема.
Схема «Снежинка» против схемы «Звезда»
Схема снежинки и схема звезды Существуют две наиболее распространенные многомерные схемы в хранилищах данных, и ключевое различие между ними заключается в нормализации. Звездная схема хранит каждое измерение в одной плоской денормализованной таблице для максимальной скорости запросов, тогда как снежинка нормализует эти измерения в несколько связанных таблиц для экономии места и защиты целостности данных. Поэтому эти две схемы соответствуют разным приоритетам.
| Аспект | Схема звезды | Схема снежинки |
|---|---|---|
| Таблицы размеров | Денормализованный режим, одна таблица на каждое измерение. | Нормализовано в таблицы субразмерностей |
| Память | Занимает больше места из-за избыточности. | Занимает меньше места, не имеет избыточности |
| Производительность запроса | Быстрее, меньше соединений | Медленнее, больше подключений |
| Сложность запроса | Просто написать | Более сложный |
| лучше всего подходит для | Быстрая отчетность и бизнес-аналитика | Большие, иерархические измерения |
Короче говоря, выбирайте звездообразную схему, когда скорость выполнения запросов и простота формирования отчетов имеют первостепенное значение, и снежинкообразную схему, когда приоритетными являются эффективность хранения, четкая иерархия и низкая избыточность данных. Многие реальные хранилища данных сочетают в себе оба шаблона в зависимости от размера и глубины каждого измерения.
Когда использовать схему Snowflake?
Схема «снежинка» не всегда является оптимальным выбором, поэтому важно адаптировать дизайн к рабочей нагрузке и потребностям в отчетности. Она, как правило, лучше всего работает в следующих ситуациях:
- Размеры очень велики и содержат множество повторяющихся атрибутов, которые при денормализации приводят к нерациональному использованию пространства для хранения.
- Измерения имеют глубокие, четко определенные иерархии, такие как регион, страна, штат и город, которые естественным образом отображаются в отдельных таблицах.
- Для проекта целостность и согласованность данных важнее, чем скорость выполнения запросов.
- Затраты на хранение данных вызывают серьезную обеспокоенность, и экономия на дисковом пространстве при работе с огромными таблицами измерений является существенной.
- Модель передает данные OLAP инструменты, позволяющие эффективно перемещаться по нормализованным иерархиям.
И наоборот, когда приоритетом является быстрая и простая отчетность для бизнес-аналитиков, обычно лучше подходит звездообразная схема или гибридная звездообразная кластерная схема. архитектуры хранилищ данных Намеренно сочетать оба подхода, чтобы найти баланс между скоростью и объемом памяти.
Что такое схема галактики?
A Схема галактики Содержит две или более таблиц фактов, которые используют общие таблицы измерений. Также называется схемой «созвездия фактов», а поскольку её можно рассматривать как совокупность звёзд, она получила название «галактическая схема».

Как видно из приведенного выше примера, здесь представлены две таблицы фактов:
- Выручка
- Продукт
В схеме галактики измерения, общие для таблиц фактов, называются согласованными измерениями.
Характеристики схемы галактики
Схема галактики обладает следующими характеристиками:
- В зависимости от различных уровней иерархии измерения подразделяются на отдельные категории.
- Например, если география имеет четыре уровня иерархии — регион, страна, штат и город — то схема галактики должна иметь четыре измерения.
- Такую схему можно построить, разделив одну звездообразную схему на несколько других звездообразных схем.
- Размеры в этой схеме велики и должны быть построены в соответствии с уровнями иерархии.
- Данная схема полезна для агрегирования таблиц фактов с целью улучшения анализа и понимания.
Что такое звезда Cluster Схема?
Схема «снежинка» содержит полностью развернутые иерархии, что может усложнить структуру и потребовать дополнительных объединений. Схема «звезда», напротив, содержит полностью свернутые иерархии, что может привести к избыточности. Наилучшим решением часто является баланс между этими двумя типами схем, известный как схема «звезда». Cluster Схема.

Перекрытиеping Измерения отображаются в виде разветвлений в иерархиях. Разветвление происходит, когда сущность выступает в качестве родительской в двух разных иерархиях измерений. Эти разветвленные сущности затем идентифицируются как классификации с отношениями «один ко многим», что ограничивает количество дополнительных таблиц, создаваемых в процессе проектирования.
