Схема звезды
Схема «звезды», схема звёздного соединения, звездоподобная схема, звёздная схема (от англ. star schema) — специальная организация реляционных таблиц, удобная для хранения многомерных показателей. Лежит в основе реляционного OLAP.
Модель данных состоит из двух типов таблиц: одной таблицы фактов (fact table) — центр «звезды» — и нескольких таблиц измерений (dimension table) по числу измерений в модели данных — лучи «звезды».
Таблица фактов обычно содержит одну или несколько колонок типа DECIMAL, дающих числовую характеристику какому-то аспекту предметной области (например, объём продаж для торговой компании или сумма платежей для банка), и несколько целочисленных колонок-ключей для доступа к таблицам измерений.
Таблицы измерений расшифровывают ключи, на которые ссылается таблица фактов; например, таблица «products» измерения «товары» базы данных торговой компании может содержать сведения о названии товара, его производителе, типе товара. За счёт использования специальной структуры таблицы измерений реализуется иерархия измерений, в том числе ветвящаяся.
Обычно данные в таблицах-измерениях денормализованы: ценой несколько неэффективного использования дискового пространства удается уменьшить число участвующих в операции соединения таблиц, что обычно приводит к сильному уменьшению времени выполнения запроса. Иногда, тем не менее, требуется произвести нормализацию таблиц-измерений; такая схема носит название «снежинка» (snowflake schema).
SQL-запрос к схеме «звезда» обычно содержит в себе:
- одно или несколько соединений таблицы фактов с таблицами измерений;
- несколько фильтров (SQL-оператор WHERE), применяемых к таблице фактов или таблицам измерений;
- группировку и агрегирование по требуемым элементам иерархии измерений (dimension elements).
Например:
SELECT
d_product.brand,
d_store.country_iso_id,
SUM (f_sales.units_sold) AS summa
FROM
f_sales, d_customer, d_time, d_store, d_product
WHERE
f_sales.customer_id = d_customer.customer_id AND
f_sales.date_id = d_time.date_id AND
f_sales.store_id = d_store.store_id AND
f_sales.product_id = d_product.product_id AND
d_time.year_id = 1997 AND
d_product.category_id = "tv"
GROUP BY
d_product.brand, d_store.country_iso_id
См. также
|
Напишите отзыв о статье "Схема звезды"
Отрывок, характеризующий Схема звезды
Гости сидели за ужином. Княгиня Курагина, массивная, когда то красивая, представительная женщина сидела на хозяйском месте. По обеим сторонам ее сидели почетнейшие гости – старый генерал, его жена, Анна Павловна Шерер; в конце стола сидели менее пожилые и почетные гости, и там же сидели домашние, Пьер и Элен, – рядом. Князь Василий не ужинал: он похаживал вокруг стола, в веселом расположении духа, подсаживаясь то к тому, то к другому из гостей. Каждому он говорил небрежное и приятное слово, исключая Пьера и Элен, которых присутствия он не замечал, казалось. Князь Василий оживлял всех. Ярко горели восковые свечи, блестели серебро и хрусталь посуды, наряды дам и золото и серебро эполет; вокруг стола сновали слуги в красных кафтанах; слышались звуки ножей, стаканов, тарелок и звуки оживленного говора нескольких разговоров вокруг этого стола. Слышно было, как старый камергер в одном конце уверял старушку баронессу в своей пламенной любви к ней и ее смех; с другой – рассказ о неуспехе какой то Марьи Викторовны. У середины стола князь Василий сосредоточил вокруг себя слушателей. Он рассказывал дамам, с шутливой улыбкой на губах, последнее – в среду – заседание государственного совета, на котором был получен и читался Сергеем Кузьмичем Вязмитиновым, новым петербургским военным генерал губернатором, знаменитый тогда рескрипт государя Александра Павловича из армии, в котором государь, обращаясь к Сергею Кузьмичу, говорил, что со всех сторон получает он заявления о преданности народа, и что заявление Петербурга особенно приятно ему, что он гордится честью быть главою такой нации и постарается быть ее достойным. Рескрипт этот начинался словами: Сергей Кузьмич! Со всех сторон доходят до меня слухи и т. д.– Так таки и не пошло дальше, чем «Сергей Кузьмич»? – спрашивала одна дама.
– Да, да, ни на волос, – отвечал смеясь князь Василий. – Сергей Кузьмич… со всех сторон. Со всех сторон, Сергей Кузьмич… Бедный Вязмитинов никак не мог пойти далее. Несколько раз он принимался снова за письмо, но только что скажет Сергей … всхлипывания… Ку…зьми…ч – слезы… и со всех сторон заглушаются рыданиями, и дальше он не мог. И опять платок, и опять «Сергей Кузьмич, со всех сторон», и слезы… так что уже попросили прочесть другого.