Схема «снежинка»

редактировать
Схема «снежинка» - это вариант звездообразной схемы с нормализацией таблиц измерений.

В вычислениях, схема «снежинка» представляет собой логическое расположение таблиц в многомерной базе данных, так что диаграмма отношения сущностей похожа на форма снежинки. Схема «снежинка» представлена ​​централизованными таблицами фактов, которые связаны с несколькими измерениями. «Снежинка» - это метод нормализации таблиц измерений в схеме звездочка. Когда он полностью нормализуется по всем таблицам измерений, результирующая структура напоминает снежинку с таблицей фактов посередине. Принцип «снежинки» заключается в нормализации таблиц измерений путем удаления атрибутов с низкой мощностью и формирования отдельных таблиц.

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

Содержание

  • 1 Общие применения
  • 2 Нормализация и хранение данных
  • 3 Преимущества
  • 4 Недостатки
  • 5 Примеры
  • 6 См. Также
  • 7 Ссылки
  • 8 Библиография
  • 9 Внешние ссылки

Распространенное использование

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

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

Нормализация разделяет данные, чтобы избежать избыточности. (дублирование) путем перемещения часто повторяющихся групп данных в новые таблицы. Таким образом, нормализация имеет тенденцию к увеличению количества таблиц, которые необходимо объединить для выполнения заданного запроса, но уменьшает пространство, необходимое для хранения данных, и количество мест, где они должны быть обновлены, если данные изменяются.

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

Некоторые разработчики баз данных идут на компромисс, создавая базовую схему «снежинка» с представлениями, построенными поверх нее, которые выполняют многие из необходимых объединений для имитации звездообразной схемы. Это обеспечивает преимущества хранения, достигаемые за счет нормализации измерений с легкостью запросов, которую предоставляет звездная схема. Компромисс заключается в том, что требование, чтобы сервер автоматически выполнял базовые соединения, может привести к снижению производительности при запросах, а также к дополнительным соединениям с таблицами, которые могут не потребоваться для выполнения определенных запросов.

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

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

Недостатки

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

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

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

Примеры

Схема «снежинка», используемая в примере запроса.

Схема, показанная справа, представляет собой «снежинку» из примера схемы «звезда», представленного в статье Схема «звезда».

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

ВЫБРАТЬ 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 1997 ANDYearDYear C.Product_Category = 'tv' ГРУППА ПО B.Brand, G.Country

См. Также

Ссылки

Библиография

Внешние ссылки

Последняя правка сделана 2021-06-08 07:24:50
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте