Схема снежинки
Эта статья нуждается в дополнительных цитатах для проверки . ( октябрь 2012 г. ) |


В вычислительной технике схема представляет или модель снежинки собой логическое расположение таблиц в многомерной базе данных , при котором диаграмма отношений сущностей напоминает форму снежинки . Схема «снежинка» представлена централизованными таблицами фактов , которые связаны с несколькими измерениями . «Снежинка» — метод нормализации таблиц измерений в звездообразной схеме . При полной нормализации по всем таблицам измерений результирующая структура напоминает снежинку с таблицей фактов посередине. Принцип «снежинки» — нормализация таблиц измерений путем удаления атрибутов низкой мощности и формирования отдельных таблиц. [1]
Схема снежинки аналогична схеме звезды. Однако в схеме «снежинка» измерения нормализованы в несколько связанных таблиц, тогда как измерения в схеме «звезда» денормализованы, и каждое измерение представлено одной таблицей. Сложная форма снежинки возникает, когда размеры схемы снежинки сложны, имеют несколько уровней отношений, а дочерние таблицы имеют несколько родительских таблиц («развилки на дороге»).
Общее использование [ править ]
Схемы «звезда» и «снежинка» чаще всего встречаются в многомерных хранилищах данных и витринах данных , где скорость извлечения данных важнее, чем эффективность манипуляций с данными. По существу, таблицы в этих схемах не сильно нормализованы и часто разрабатываются на уровне нормализации, близком к третьей нормальной форме . [2]
Нормализация и хранение данных [ править ]
Нормализация разделяет данные, чтобы избежать избыточности (дублирования), путем перемещения часто повторяющихся групп данных в новые таблицы. Таким образом, нормализация имеет тенденцию увеличивать количество таблиц, которые необходимо соединить для выполнения данного запроса, но уменьшает пространство, необходимое для хранения данных, и количество мест, где их необходимо обновить в случае изменения данных.
С точки зрения хранения пространства таблицы измерений обычно невелики по сравнению с таблицами фактов. Это часто сводит на нет потенциальные преимущества схемы «снежинка» в отношении пространства для хранения по сравнению со схемой «звезда». Пример: один миллион транзакций продаж в 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 оптимизированы для схем «снежинка». [3]
- Нормализация атрибутов приводит к экономии памяти, но компромиссом является дополнительная сложность соединения исходных запросов.
Недостатки [ править ]
Основным недостатком схемы «снежинка» является то, что дополнительные уровни нормализации атрибутов усложняют соединения исходных запросов по сравнению со схемой «звезда» .
Схемы «снежинки», в отличие от плоских размеров одной таблицы, подверглись резкой критике. Предполагается, что их целью является эффективное и компактное хранение нормализованных данных, но это достигается значительной ценой низкой производительности при просмотре соединений, необходимых в этом измерении. [4] Этот недостаток, возможно, уменьшился за годы, прошедшие с тех пор, как он был впервые обнаружен, благодаря повышению производительности запросов в инструментах просмотра.
Примеры [ править ]

Пример схемы, показанный справа, представляет собой урезанную версию примера звездообразной схемы, приведенного в статье о звездообразной схеме .
Следующий пример запроса представляет собой эквивалент схемы «снежинка» примера кода схемы «звезда», который возвращает общее количество телевизоров, проданных по брендам и странам за 1997 год. Обратите внимание, что для запроса схемы «снежинка» требуется гораздо больше соединений, чем для версии схемы «звезда». выполнить даже простой запрос. Преимущество использования схемы «снежинка» в этом примере заключается в том, что требования к хранению ниже, поскольку схема «снежинка» исключает множество повторяющихся значений из самих измерений.
SELECT
B.Brand,
G.Country,
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_Geography G ON S.Geography_Id = G.Id
INNER JOIN Dim_Product P ON F.Product_Id = P.Id
INNER JOIN Dim_Brand B ON P.Brand_Id = B.Id
INNER JOIN Dim_Product_Category C ON P.Product_Category_Id = C.Id
WHERE
D.Year = 1997 AND
C.Product_Category = 'tv'
GROUP BY
B.Brand,
G.Country
См. также [ править ]
Ссылки [ править ]
- ^ Паульрай Понния. Основы хранения данных для ИТ-специалистов. Уайли, 2010, стр. 29–32. ISBN 0470462078 .
- ^ Хан, Цзявэй (2012). Интеллектуальный анализ данных — концепции и методы . Массачусетс, США: Издательство Morgan Kauffmann. ISBN 9780123814791 .
- ^ Уилки, Мишель (2009). «Использование сервера SAS® OLAP для сценария ROLAP» (PDF) . Глобальный форум SAS 2009 . Проверено 27 февраля 2013 г.
- ^ Кимбалл, Ральф (1996). «6: Большие измерения» . Набор инструментов для хранилища данных (1-е изд.). Уайли. стр. 95–98 . ISBN 0-471-15337-0 .
Не заснеживайте свои размеры, даже если они большие
Библиография [ править ]
- Анахори, С.; Д. Мюррей. Хранилища данных в реальном мире: Практическое руководство по построению систем поддержки принятия решений . Эддисон Уэсли Профессионал.
- Кимбалл, Ральф (1996). Набор инструментов для хранения данных . Джон Уайли. ISBN 978-0-471-15337-5 .