Схема звездочки - Star schema

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

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

Модель

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

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

Таблицы фактов

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

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

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

Таблицы размеров

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

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

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

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

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

  • Более простые запросы - логика соединения звездообразной схемы обычно проще, чем логика соединения, необходимая для извлечения данных из сильно нормализованной транзакционной схемы.
  • Упрощенная логика бизнес-отчетов - по сравнению со схемами с высокой степенью нормализации, звездообразная схема упрощает общую логику бизнес-отчетов, например, отчет за период и отчет по состоянию на дату.
  • Повышение производительности запросов - звездообразные схемы могут обеспечить повышение производительности для приложений отчетов только для чтения по сравнению с сильно нормализованными схемами.
  • Быстрые агрегации - более простые запросы к звездообразной схеме могут привести к повышению производительности операций агрегации.
  • Подача кубов - звездообразные схемы используются всеми системами OLAP для эффективного построения проприетарных кубов OLAP ; Фактически, большинство основных OLAP-систем предоставляют режим работы ROLAP , который может использовать звездообразную схему непосредственно в качестве источника без создания собственной структуры куба.

Недостатки

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

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

Пример

Схема "звезда", используемая в примере запроса.

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

Fact_Sales- это таблица фактов и три таблицы измерений Dim_Date, Dim_Storeи Dim_Product.

Каждая таблица измерения имеет первичный ключ на его Idколонке, относящейся к одной из колонн ( если смотреть в виде строк в примере схеме) из Fact_Salesтрех столбцов (соединение) первичного ключа таблицы ( Date_Id, Store_Id, Product_Id). Units_SoldСтолбец непервичного ключа таблицы фактов в этом примере представляет меру или метрику, которые можно использовать в вычислениях и анализе. Неосновные ключевые столбцы таблиц измерений представляют собой дополнительные атрибуты размеров (например, Yearот Dim_Dateразмерности).

Например, следующий запрос отвечает, сколько телевизоров было продано для каждой марки и страны в 1997 году:

SELECT
	P.Brand,
	S.Country AS Countries,
	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_Product P ON (F.Product_Id = P.Id)

WHERE D.Year = 1997 AND  P.Product_Category = 'tv'

GROUP BY
	P.Brand,
	S.Country

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

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

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