Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Схема «снежинка» - это вариант звездообразной схемы с нормализацией таблиц измерений.

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

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

Обычное использование [ править ]

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

Нормализация и хранение данных [ править ]

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

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

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

Преимущества [ править ]

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

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

Недостатки [ править ]

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

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

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

Примеры [ править ]

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

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

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

ВЫБОР Б . Марка , G . Страна , SUM ( F . Units_Sold ) ОТ  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  =  Р . Идентификатор ВНУТРЕННИЙ  РЕГИСТРИРУЙТЕСЬ  Dim_Brand  B  ON  P . Brand_ID  =  B . Идентификатор ВНУТРЕННИЙ  РЕГИСТРИРУЙТЕСЬ  Dim_Product_Category  C  ON  P . Product_Category_Id  =  С . Id WHERE D . Год  =  1997  и C . Product_Category  =  'tv' ГРУППА  ПОB . Марка , G . Страна

См. Также [ править ]

  • Схема звездочки
  • Хранилище данных
  • Онлайн-аналитическая обработка (OLAP)

Ссылки [ править ]

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

Библиография [ править ]

  • Анахори, С .; Д. Мюррей. Хранилище данных в реальном мире: Практическое руководство по созданию систем поддержки принятия решений . Эддисон Уэсли Профессионал.
  • Кимбалл, Ральф (1996). Инструментарий хранилища данных . Джон Вили.

Внешние ссылки [ править ]

  • « Почему схема« Снежинка »- хороший дизайн хранилища данных? » Марк Левен и Джордж Лойзу
  • Обратное соединение снежинки