В вычислениях схема «звезда» - это самый простой стиль данных mart schema - подход, наиболее широко используемый для разработки хранилищ данных и размерных витрин данных. Схема «звезда» состоит из одной или нескольких таблиц фактов, ссылающихся на любое количество таблиц измерений. Схема «звезда» является важным частным случаем схемы снежинки и более эффективна для обработки более простых запросов.
Схема «звезда» получила свое название от физической модели сходство со звездой с таблицей фактов в центре и таблицами размеров вокруг нее, представляющими точки звезды.
Схема «звезда» разделяет данные бизнес-процесса на факты, которые содержат измеримые количественные данные о бизнесе, и измерения, которые являются описательными атрибутами, связанными с данными фактов. Примеры данных фактов включают в себя цену продажи, количество продаж, а также измерения времени, расстояния, скорости и веса. Примеры атрибутов связанных измерений включают модели продуктов, цвета продуктов, размеры продуктов, географические местоположения и имена продавцов.
Схема "звезда", имеющая много измерений, иногда называется схемой многоножки. Наличие измерений всего нескольких атрибутов, хотя их проще поддерживать, приводит к запросам с множеством объединений таблиц и делает звездную схему менее простой в использовании.
Таблицы фактов записывают измерения или показатели для определенного события. Таблицы фактов обычно состоят из числовых значений и внешних ключей к размерным данным, в которых хранится описательная информация. Таблицы фактов разработаны с низким уровнем единообразной детализации (называемой «степенью детализации» или «зернистостью»), то есть факты могут фиксировать события на очень атомарном уровне. Это может привести к накоплению большого количества записей в таблице фактов с течением времени. Таблицы фактов определяются как один из трех типов:
Таблицам фактов обычно назначается суррогатный ключ, чтобы обеспечить уникальную идентификацию каждой строки. Этот ключ представляет собой простой первичный ключ.
Таблицы измерений обычно имеют относительно небольшое количество записей по сравнению с таблицами фактов, но каждая запись может иметь очень большое количество атрибутов для описания данных фактов. Измерения могут определять широкий спектр характеристик, но некоторые из наиболее распространенных атрибутов, определяемых таблицами измерений, включают:
Таблицам измерений обычно назначается суррогатный первичный ключ, обычно это целочисленный тип данных с одним столбцом, сопоставленный с комбинацией атрибуты измерения, образующие естественный ключ.
Звездообразные схемы денормализованы, что означает, что типичные правила нормализации, применяемые к транзакционным реляционным базам данных, смягчаются во время проектирования и реализации звездообразной схемы. Преимущества денормализации звездообразной схемы:
Главный недостаток звездная схема заключается в том, что она не так гибка с точки зрения аналитических потребностей, как нормализованная модель данных. Нормализованные модели позволяют выполнять любой аналитический запрос, если он следует бизнес-логике, определенной в модели. Звездообразные схемы, как правило, больше ориентированы на конкретное представление данных, что не позволяет проводить более сложную аналитику. Звездообразные схемы нелегко поддерживать отношения «многие ко многим» между бизнес-объектами. Обычно эти отношения упрощаются в звездообразной схеме, чтобы соответствовать простой размерной модели.
Другой недостаток заключается в том, что целостность данных не обеспечивается должным образом из-за его денормализованного состояния. Одноразовые вставки и обновления могут привести к аномалиям данных, которых призваны избежать нормализованные схемы. Вообще говоря, звездообразные схемы загружаются строго контролируемым образом с помощью пакетной обработки или почти реального времени "тонкой подачи", чтобы компенсировать отсутствие защиты, обеспечиваемой нормализацией.
Рассмотрим базу данных продаж, возможно, из сети магазинов, сгруппированных по дате, магазину и продукту. Изображение схемы справа представляет собой звездообразную версию образца схемы, представленного в статье схема снежинки.
Fact_Sales
- это таблица фактов, и есть три таблицы измерений Dim_Date
, Dim_Store
и Dim_Product
.
Каждая таблица измерений имеет первичный ключ на своем Id
столбец, относящийся к одному из столбцов (рассматриваемых как строки в схеме примера) трехколоночного (составного) первичного ключа таблицы Fact_Sales
(Date_Id
, Store_Id
, Product_Id
). Столбец непервичного ключа Units_Sold
таблицы фактов в этом примере представляет меру или метрику, которые можно использовать в вычислениях и анализе. Столбцы непервичных ключей таблиц измерений представляют дополнительные атрибуты измерений (например, Год
измерения Dim_Date
).
Например, следующий запрос отвечает, сколько телевизоров было продано для каждой марки и страны в 1997 г.:
SELECT P.Brand, S.Country AS, Страны, SUM (F.Units_Sold) FROM Fact_Sales F ВНУТРЕННЕЕ СОЕДИНЕНИЕ 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 И P.Product_Category = 'tv' GROUP BY P.Brand, S.Country