Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_BD_2013-1.doc
Скачиваний:
139
Добавлен:
28.03.2015
Размер:
954.88 Кб
Скачать

Проектирование схемы бд для хранилища данных.

Выделяют два типа схем БД хранилищ данных.

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

Например, таблица фактов «Оценка» со справочниками «Студент», «Предмет», «Преподаватель».

Если бы проектировали БД для OLTP- системы, то возможно, схема была бы другая. /*Преподаватель читает предмет, студент учится у преподавателя по предмету и только потом оценка. */

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

Схема «Звезда» обычно реализуется через денормализацию таблиц. Это обеспечивает повышение эффективности доступа к данным при анализе.

Схема «Снежинка». Это вариант (расширение?) схемы «звезда», при котором размерности таблицы фактов могут иметь свои размерности. /*Пририсовать с размерности студент еще и специальность, а к специальности факультет */

Схема «Снежинка» не подразумевает денормализации.

Также может использоваться гибрид, когда размерности могут организовываться и как «Снежинка» и как «Звезда».

Olap-технологии.

Основу OLAP-технологии составляют многомерные данные (кубы данных).

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

Если кроме предмета добавим еще одно измерение – специальность, то получим два измерения в таблице. /*Хотя можем представить и в виде матрицы. Осторожно с суммами оценок! */

При добавлении размерности – учебный год получаем куб /*хотя опять же можно описать в виде матрицы. Опять же суммы. */

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

Делаются попытки расширить язык SQL для того, чтобы была возможность обрабатывать многомерные данные.

Например.

Расчет скользящего среднего или скользящей суммы (для каждой строки сумма с первой по текущую): MovingSum, MavingAvg.

Вычисление процентной доли значения текущей строки столбца по отношению к итогу столбца: RatioReport.

Ранжирование данных в текущем наборе по трем уровням (высокий, средний, низкий) TerTile.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]