Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt.rtf
Скачиваний:
282
Добавлен:
19.08.2013
Размер:
4.05 Mб
Скачать

24.2. Запросы к многомерным данным (слайд 12)

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

Выделяют следующие виды запросов к многомерной базе данных:

  1. Slice-and-dice. Выбор, сокращающий OLAP-куб (например, сечение путем фиксации значения измерения). Для куба на слайде 4, например, «студент» = «Иванов В.П.».

  2. Drill-down. Декомпозиция на основе иерархии измерения. Например, развертка средней оценки для учебной группы в ряд средних оценок по студентам группы.

  3. Roll-up. Свертка на основе иерархии измерения. Операция, обратная drill-down. Например, свертка средних оценок за семестр в среднюю оценку за курс.

  4. Drill-across. Комбинирование (соединение) OLAP-кубов, имеющих общие измерения. Аналог оператора join в реляционной алгебре.

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

  6. Rotating. «Поворот» OLAP-куба, дающий возможность увидеть данные, сгруппированные по другим измерениям.

Большинство современных OLAP-продуктов поставляется с заранее составленными запросами. В настоящее время ведется разработка специальных языков запросов. Один из них – MDX (Multidimensional Expressions), разработанный компанией Microsoft.

Современные среды разработки языков программирования высокого уровня часто содержат готовые компоненты для OLAP-технологий. Например, в среде Borland Delphi v.7 имеется панель компонентов «Decision Cube». Она содержит такие компоненты как: гиперкуб, запрос к гиперкубу, многомерный источник данных, табличное представление гиперкуба, графическое представление гиперкуба.

Лекция 25 (db_l25.Ppt).

Транзакции. Понятие целостности базы данных. Условия целостности.

Обработка транзакций. Свойства транзакций. Модель ansi/iso.

Назначение и использование журнала транзакций. Откат и восстановление.

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

Выделяют два аспекта целостности – на уровне отдельных объектов и операций и на уровне базы данных в целом (слайд 2).

В первом случае целостность обеспечивается на уровне структур данных и отдельных операторов языковых средств СУБД (вспомним ограничения целостности для столбцов и таблиц в языке SQL). При нарушениях такой целостности (например, ввод значения больше 11 в столбец Семестр таблицы «Учебный_план» БД «Сессия») соответствующий оператор отвергается.

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

Часто же база данных может иметь такие ограничения целостности, которые требуют обязательного выполнения не одной, а нескольких операций. Для иллюстрации примеров этой главы расширим функциональные возможности учебной БД «Сессия», добавив в таблицу «Кадровый_состав» столбец Нагрузка для решения дополнительной задачи – расчета общей годовой нагрузки преподавателей (в часах учебной работы). Тогда любая операция по внесению изменений или по добавлению данных в столбец ID_Преподаватель таблицы «Учебный_план» должна сопровождаться соответствующими изменениями данных в столбце Нагрузка. Если после внесения изменений в столбец ID_Преподаватель произойдет сбой, то БД окажется в нецелостном состоянии.

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

Транзакция (слайд 3) – неделимая с точки зрения воздействия на БД последовательность операторов манипулирования данными (чтения, удаления, вставки, модификации) такая, что:

  1. либо результаты всех операторов, входящих в транзакцию, отображаются в БД;

  2. либо воздействие всех этих операторов полностью отсутствует.

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

Для обеспечения контроля целостности каждая транзакция должна начинаться при целостном состоянии БД и должна сохранить это состояние целостным после своего завершения. Если операторы, объединенные в транзакцию, выполняются, то происходит нормальное завершение транзакции, и БД переходит в обновленное (целостное) состояние (ситуация COMMIT на слайде 4). Если же происходит сбой при выполнении транзакции, то происходит так называемый откат к исходному состоянию БД (ситуация ROLLBACK на слайде 4).

Соседние файлы в предмете Базы данных