Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
work_4.doc
Скачиваний:
8
Добавлен:
09.11.2019
Размер:
158.72 Кб
Скачать

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

  1. Создайте триггеры для таблиц БД BookShop:

Таблица

Параметры триггера

1

Книги

INSERT/UPDATE, FOR EACH ROW

2

Заказы

INSERT/UPDATE, FOR EACH STATEMENT

3

Заказчики

INSERT/UPDATE, FOR EACH STATEMENT

Доставка

INSERT/DELETE, FOR EACH ROW

Контрольное задание

  1. Создайте набор хранимых процедур, с помощью которых формируются отчеты из п.6 контрольного задания к лабораторной работе №3:

Указание: Среди созданных хранимых процедур должны быть процедуры с входными и выходными параметрами и процедуры, возвращающие набор записей. Каждая функция должна быть снабжена подробными комментариями в виде:

/*******************************************************************************

Имя SP:

*******************************************************************************

Описание:

Владелец:

Входные параметры:

Выходные параметры:

Другие результаты:

Вызывается из (список процедур):

Вызывает (список процедур):

История обновлений (с момента создания):

*******************************************************************************/

  1. Создайте INSERT-, DELETE- и UPDATE-триггеры для одной из таблиц разработанной БД, на первичный ключ которой ссылаются посредством внешних ключей другие таблицы. Обоснуйте выбор типа триггера в каждом случае.

Указание: Триггерные функции должны отслеживать и соотвтетсвующим образом обрабатывать возможные ошибки. .

  1. Оформить отчет о выполнении контрольного задания. Отчет по лабораторной работе должен содержать SQL-скрипты созданных хранимых процедур и триггеров и результаты их тестирования (для триггеров обязательно тест на обработку исключений) .

Контрольные вопросы

  1. Какие типы функций поддерживает PostgreSQL?

  2. Чем отличаются внутренние функции от С-функций?

  3. Что такое хранимые процедуры?

  4. Почему хранимые процедуры работают быстрее, чем операторы SQL, непосредственно передаваемые серверу SQL?

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

  6. Можно ли создать временную таблицу внутри хранимой процедуры? Какие еще команды SQL нельзя выполнять внутри хранимой процедуры?

  7. Как удалить или переименовать хранимую процедуру?

  8. Могут ли пользователи манипулировать данными, если они не имеют соответствующих прав доступа к этим данным ? Если могут, то каким образом?

  9. Как можно вернуть некоторое значение из хранимой процедуры в вызывающее приложение? Какого типа могут быть эти значения?

  10. Как можно передать входные параметры в хранимую процедуру?

  11. Как надо определить хранимую процедуру, чтобы можно было использовать ее вызов в предложении FROM инструкции SELECT?

  12. Какова структура PL/pgSQL-функции?

  13. Как в PL/pgSQL-функциях осуществляется обработка ошибок?

  14. Как производится отладка PL/pgSQL-функций?

  15. Что такое триггеры? Для чего они используются?

  16. Какие существуют типы триггеров?

  17. Как создаются и работают триггеры?

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