Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМУ СУБД.doc
Скачиваний:
13
Добавлен:
11.06.2015
Размер:
427.01 Кб
Скачать

II. План практического занятия (2 ч.)

Тема: «Управление транзакциями».

  1. Создайте SQL-таблицу в базе данных структуры в соответствии с заданием.

  2. Создайте явную транзакцию при помощи команды SET TRANSACTION, в которой добавьте в таблицу несколько записей отдельными командами INSERT. Зафиксируйте транзакцию командой COMMIT и убедитесь в наличии данных в таблице.

  3. Создайте явную транзакцию, в которой удалите все записи таблицы. Затем выполните откат транзакции при помощи команды ROLLBACK, и убедитесь в наличии данных. Затем удалите все строки и зафиксируйте транзакцию.

  4. Создайте явную транзакцию с использованием режима READ REPEATABLE и введите одну запись в таблицу. Затем в отдельном окне создайте вторую транзакцию того же типа и введите вторую запись. Убедитесь в наличии «фантомных» записей в первой транзакции. Затем завершите откатами обе транзакции.

  5. Повторите те же операции с использованием типа транзакции SERIALIZABLE. Убедитесь в отсутствии «фантомных» записей. На этот раз зафиксируйте обе транзакции и записи не удаляйте.

  6. Создайте явную транзакцию любого типа и измените запись, добавленную второй транзакций в предыдущем занятии. Затем начните вторую транзакцию и измените запись, введенную в предыдущем занятии первой транзакцией. Теперь попытайтесь из первой транзакции изменить первую запись и убедитесь в наличии взаимной блокировки.

III. Рекомендации по выполнению заданий и подготовке

к практическому занятию

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

Задания 2-3 используются для иллюстрации работы с явными транзакциями, в которых выполняются несколько команд манипулирования данными, которые завершаются либо явной фиксацией, либо откатом. Студенты по окончанию каждой транзакции должны проверить ее результаты, просмотрев записи таблицы при помощи SQL-запроса.

При выполнении заданий 4 и 5 студенты должны оценить различие между использованием двух режимов транзакций в системе Oracle - READ REPEATABLE и SERIALIZABLE, состоящее в наличии в первом случае так называемых «фантомных» записей.

В последнем задании студенты должны смоделировать при помощи команд SQL возникновения ситуации взаимной блокировки транзакции при одновременном доступе к данным.

IV. Рекомендуемые источники

Основная литература

1. Малыхина, М. П. Базы данных : основы, проектирование, использование / М. П. Малыхина. – СПб. : БХВ-Петербург, 2006. – 528 с.

Дополнительная литература

  1. Конолли, Т. Базы данных. Проектирование, реализация и сопровождение / Т. Конолли, К.Бегг. – М. : Вильямс, 2000. – 1120 с.

  2. Энсор, Д. Oracle. Проектирование баз данных / Д. Энсор, Й. Стивенсон – Киев : BHV. 1998. – 557 с.

  3. Бобровский, С. Oracle Database XE для Windows. Эффективное использование / С. Бобровский. – М. : Лори. 2009. – 512 с.

V. Контрольные вопросы для самопроверки

  1. Какие команды языка SQL могут при выполнении вызвать неявный откат транзакций?

  2. Для каких целей СУБД использует журнал транзакций?

  3. Что такое блокировки, и какие режимы блокировок в системе Oracle SQL Вы знаете?

  4. Какие режимы блокировок следует использовать в архивных базах данных?