Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование и разработка баз данных. Лаборат...doc
Скачиваний:
0
Добавлен:
04.01.2020
Размер:
3.07 Mб
Скачать

4.8Методика выполнения задания

  1. Изучить примеры хранимых процедур и триггеров.

  2. Создайте базу данных View Ridge, используя код из листинга 1, но не создавайте ограничение NationalityValues.

  3. Заполните базу данных информацией. Пусть у вас будет по меньшей мере 3 клиента, 3 художника, 5 произведений и 5 транзакций. Национальность художника должна иметь одно из трех значений – 'German', 'French' или 'English'.

  4. Напишите хранимую процедуру для чтения данных из таблицы ARTIST и вывода их на экран с помощью команды PRINT.

  5. Напишите хранимую процедуру для чтения данных из таблицы ARTIST и WORK. Пусть имя художника будет входным параметром. Требуется вывести сведения о художнике и всех его работах.

  6. Напишите хранимую процедуру, обновляющую телефон клиента. Путь ваша процедура принимает в качестве входных параметров – имя клиента, старый код города, новый код города, старый номер телефона, новый номер телефона. Сначала необходимо убедиться, что в базе есть только один клиент с таким именем, старым кодом города и старым номером телефона. Если такой клиент не один, то процедура должна выдать сообщение об ошибке и завершить свою работу. В противном случае процедура должна записать новый код региона и новый номер телефона клиента.

  7. Создайте таблицу с именем ALLOWED_NATIONALITY, содержащую один столбец – Nationality. Поместите в эту таблицу значения 'German', 'French' или 'English'. Напишите триггер, который при вставке и обновлении строки в таблице ARTIST будет искать новое значение столбца Nationality в таблице ALLOWED_NATIONALITY. Если поиск завершился неудачно, триггер должен вывести сообщение об ошибке и выполнить откат вставки или изменения. Продемонстрируйте корректную работу триггера, используя Query Analyzer или Management Studio Express.

  8. Напишите триггер, который при удалении записи из таблицы WORK будет проверять – появлялась ли работа в галерее только один раз и при этом не была продана. Если это условие выполняется, то требуется удалить работу и связанную с ней транзакцию, в противном случае надо вывести сообщение об ошибке. Обратите внимание на тип триггера, который вы будете использовать – замещающий или завершающий. По умолчанию в MS SQL Server используется завершающий триггер.

  9. Создайте отчет, в котором отразите для каждого этапа написанный Вами программный код и результаты его выполнения.

4.9Требования к оформлению и содержанию отчета

Отчет оформляется и сдается в бумажном и в электронном виде. Он должен содержать:

  1. титульный лист;

  2. код хранимых процедур для заданий 4-6, а также результат их выполнения;

  3. код триггеров для заданий 7-8, а также результат их выполнения в виде сообщений пользователю.

4.10 Критерии результативности выполнения лабораторной работы

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

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

  1. Что такое хранимые процедуры? В чем преимущество их использования по сравнению с кодом клиентского приложения?

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

  3. Объясните, в чем состоит назначение предварительных, замещающих и завершающих триггеров.

  4. Какие типы триггеров поддерживает MS SQL Server, Oracle?

  5. Каким образом в теле триггера, запущенного обновлением столбца, получить значение, которое столбец имел до обновления?

  6. Каким образом в теле триггера, запущенного обновлением столбца, получить значение, которое будет присвоено столбцу?