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]).

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

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

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

Недостатки

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

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

Примеры

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

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

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

ВЫБЕРИТЕ Б. _ Бранд , Г. _ Страна , СУММА ( F. Units_Sold ) FROM Fact_Sales F INNER JOIN Dim_Date D ON F. _ _ Дата_Ид = Д. _ Id INNER JOIN Dim_Store S ON F . Идентификатор_магазина = 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 . Идентификатор_Бренда = B . Идентификатор INNER JOIN Dim_Product_Category C ON P . Product_Category_Id = C . Идентификатор ГДЕ D . Год = 1997 И С . Product_Category = 'tv' ГРУППА ПО B . Бранд , Г. _ Страна                                                  

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

Рекомендации

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

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

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