Введение

Логическая организация таблиц в многомерной базе данных.

В информатике схема "снежинка" или модель "снежинка" – это логическая организация таблиц в многомерной базе данных, при которой диаграмма "сущность-связь" напоминает форму снежинки. Схема "снежинка" представлена централизованными таблицами фактов, соединенными с несколькими измерениями. "Снежиночная нормализация" – это метод нормализации таблиц измерений в звездной схеме. При полной нормализации по всем таблицам измерений, результирующая структура напоминает снежинку с таблицей фактов в центре. Принцип снежиночной нормализации заключается в нормализации таблиц измерений путем исключения атрибутов с низкой кардинальностью и создания отдельных таблиц. Схема "снежинка" аналогична звездной схеме. Однако в схеме "снежинка" измерения нормализуются в несколько связанных таблиц, в то время как измерения звездной схемы денормализованы, и каждое измерение представлено одной таблицей. Сложная форма "снежинки" возникает, когда измерения схемы "снежинка" сложны, имеют несколько уровней связей, а дочерние таблицы имеют несколько родительских таблиц ("разветвления").

Общее применение

Звездообразные и снежинообразные схемы наиболее часто используются в размерных хранилищах данных и датамартах, где скорость получения данных важнее эффективности операций с данными. Поэтому таблицы в этих схемах обычно слабо нормализованы и часто проектируются с уровнем нормализации ниже третьей нормальной формы.

Нормализация и хранение данных

Нормализация разделяет данные, чтобы избежать избыточности (дублирования), перемещая часто повторяющиеся группы данных в новые таблицы. Поэтому нормализация, как правило, увеличивает количество таблиц, которые необходимо объединить для выполнения конкретного запроса, но уменьшает объем необходимого дискового пространства и количество мест, где требуется обновление данных при их изменении. С точки зрения занимаемого пространства, размерные таблицы обычно значительно меньше таблиц фактов. Это часто нивелирует потенциальные преимущества по объему хранения, которые дает схема "снежинка" по сравнению со схемой "звезда". Пример: один миллион транзакций продаж в 300 магазинах в 220 странах приведет к 1 000 300 записям в схеме "звезда" (1 000 000 записей в таблице фактов и 300 записей в размерной таблице, где каждая страна будет указана отдельно для каждого магазина в этой стране). Более нормализованная схема "снежинка" с ключами стран, ссылающимися на таблицу стран, будет состоять из той же таблицы фактов на 1 000 000 записей, таблицы магазинов на 300 записей со ссылками на таблицу стран на 220 записей. В этом случае схема "звезда", хотя и более денормализованная, уменьшит количество записей лишь на (незначительные) ~0,02% (=[1 000 000 + 300] вместо [1 000 000 + 300 + 220]). Некоторые разработчики баз данных идут на компромисс, создавая базовую схему "снежинка" с представлениями, построенными на ее основе, которые выполняют многие необходимые соединения для имитации схемы "звезда". Это обеспечивает преимущества хранения, достигаемые за счет нормализации размерностей, и простоту запросов, предоставляемую схемой "звезда". Однако компромиссом является то, что требование к серверу автоматически выполнять базовые соединения может привести к снижению производительности при запросах, а также к дополнительным соединениям с таблицами, которые могут быть не нужны для выполнения определенных запросов.

Преимущества

Схема снежинки относится к тому же семейству, что и логическая модель звездной схемы. Фактически, звездная схема рассматривается как частный случай схемы снежинки. Схема снежинки имеет некоторые преимущества перед звездной схемой в определенных ситуациях, включая:

Некоторые инструменты моделирования многомерных OLAP-баз данных оптимизированы для схем снежинки. Нормализация атрибутов обеспечивает экономию места для хранения, однако это достигается за счет увеличения сложности соединений в исходных запросах.

Недостатки

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