stringtranslate.com

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

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

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

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

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

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

Недостатки

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

Схемы Snowflake, в отличие от плоских измерений отдельных таблиц, подверглись резкой критике. Предполагается, что их целью является эффективное и компактное хранение нормализованных данных, но это достигается за счет существенной низкой производительности при просмотре соединений, требуемых в этом измерении. [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                                                  

Смотрите также

Ссылки

  1. ^ Полрадж Понниа. Основы хранилищ данных для ИТ-специалистов. Wiley, 2010, стр. 29–32. ISBN  0470462078 .
  2. ^ Хан, Цзявэй (2012). Интеллектуальный анализ данных — концепции и методы . Массачусетс, США: Издательство Morgan Kauffmann. ISBN 9780123814791.
  3. ^ Уилки, Мишель (2009). «Использование SAS® OLAP Server для сценария ROLAP» (PDF) . SAS Global Forum 2009. Получено 27.02.2013 .
  4. ^ Кимбалл, Ральф (1996). "6: Большие измерения" . Набор инструментов для хранилищ данных (1-е изд.). Wiley. С. 95–98. ISBN 0-471-15337-0. Не завышайте свои размеры, даже если они большие.

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

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