Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция обзорная отредактированная.doc
Скачиваний:
16
Добавлен:
23.09.2019
Размер:
425.47 Кб
Скачать

Проектирование схемы "звезда"

Денормализованные пространственные БД чаще всего выполняются в виде звезды. Есть одна или несколько центральных таблиц – они называются таблицами фактов – где хранятся результирующие показатели, которые нас интересуют . И есть несколько родительских таблиц – справочники, нормативные данные, индексы. Каждый факт сопровождается набором значений этих индексов. Это таблицы – измерения.

Имеются избыточные данные – детальные и агрегированные. Агрегированность в данном случае сводится к измерениям – например, время может храниться в часах, днях, месяцах и т.д. Почасовые данные суммируются в дни, недели и т.д. Это нереляционная БД – данные хранятся несколько раз в разном виде.

Звезда – самая простая базовая схема для построения ненормализованной пространственной БД, которую можно считать хранилищем. Звезда строится каждый раз отдельно в зависимости от предметной ориентированности. Измерения зависят как от предметной области, так и от потребностей, для которых создается хранилище.

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

Основные составляющие структуры схемы "звезда"

Схема звезда обычно содержит одну большую таблицу, называемую таблицей факта (fact table), помещенную в центр, и окружающие ее меньшие таблицы, называемые таблицами размерности (dimensional table), соединенные с таблицей факта в виде звезды радиальными связями. В этих связях таблицы размерности являются родительскими, таблица факта - дочерней, кратность связи - один ко многим.

Таблицы измерений

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

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

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

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

Прежде чем создать ХД со схемой типа звезда, необходимо проанализировать бизнес-правила предметной области с целью выяснения центральных вопросов, для решения которых создается хранилище.

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

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

Схема "снежинка"

Схема "звезда" может иметь также консольные таблицы (outrigger table), присоединенные к таблице измерения. Консольные таблицы являются родительскими, таблицы размерности - дочерними, кратность связи - один ко многим, связь может быть идентифицирующей или неидентифицирующей. Консольные таблицы уточняют таблицу измерений и не имеют связей с таблицей фактов.

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

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