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

Тема 2.6. Основы языка pl/sql. Триггеры

I Задания для самостоятельной работы

  1. Объясните причины использования процедурных расширений языка баз данных SQL.

  2. Опишите структуру программных модулей языка PL/SQL и перечислите основные программные конструкции этого языка.

  3. Перечислите основные виды триггеров в системе SQL Oracle.

  4. Объясните отличия между средствами поддержки целостности данных при помощи структурных ограничений, и при помощи триггеров.

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

Тема: «Разработка и использование триггеров».

  1. Создайте простейший триггер для какой-либо таблицы и убедитесь в его работе при выполнении команд обновления.

  2. Для пары таблиц “Заказ” и “СоставЗак” составьте две таблицы, полученные из исходных таблиц методом восходящей денормализации.

  3. Составьте триггеры для контроля целостности данных денормализованных таблиц и проверьте правильность их работы при помощи исполнения SQL команд обновления.

  4. При помощи системного представления USER_TRIGGERS ознакомьтесь с существующими триггерами.

  5. Отключите созданные триггеры, а затем удалите их.

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

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

При выполнении данной практической работы рекомендуется использовать учебную базу данных “Магазин” или, что лучше, самостоятельно разработанную на предыдущих практических базу данных аналогичной структуры. Цель данной работы – получение студентами начальных сведений о языке PL/SQL, который является процедурным расширением языка SQL в системе Oracle, о создании и использовании триггеров как средства поддержания целостности данных, в частности, для денормализованных схем баз данных. Кроме того, студенты получат опыт использования пакета DBMS_OUTPUT, предназначенного для операций консольного ввода-вывода.

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

Затем необходимо создать пару таблиц, например, на основе таблиц “Заказ” и “СоставЗак”, две новые таблицы, например “Заказ(Ден)” и “СоставЗак(Ден)”, полученные из исходных таблиц методом восходящей денормализации. Например, следует в таблице “Заказ(Ден)” создать поле с суммой общей стоимости каждого заказа (таблицы следует оставить пустыми). После этого студент должен разработать два триггера, ассоциированные с таблицей “СоставЗак(Ден)”, которые при вставке и удалении записей из этой таблицы соответствующим образом корректируют поле со значением стоимости в таблице “Заказ(Ден)”. Необходимо на практике убедиться в правильности работы триггеров при обновлении строк таблиц.

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

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

  1. Андон, Ф. Язык запросов SQL : учебный курс / Ф. Андон, В. Резниченко. – СПб. : Питер, 2006. – 415 с.

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

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

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

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