
- •Содержание
- •Задание
- •2. Аннотация к отчету.
- •3. Описание базы данных
- •4. Er модель
- •5. Модель ansi-sparc
- •6. Описание структуры таблиц
- •7. Функциональные зависимости
- •8. Начальное заполнение таблиц
- •9. Запросы
- •10. Пользовательские представления
- •11. Хранимые процедуры и функции.
- •12 . Триггеры.
- •13. Заключение
- •14 . Список литературы
- •15 . Приложение a.
11. Хранимые процедуры и функции.
В курсовой работе реализовано 2 функции и 1 процедура. Исходный код представлен в приложении A листинг 5.
11.1 Функции
Функции разработаны для многократного использования одного и того же алгоритма. Функции предоставляют пользователю результат некоторых математических действий. Так в проекте используются функции для расчета дохода типографии и определения числа заказов.
11.1.1 Функция qtyOrder()
Выполняет подсчет количества сделанных заказов. Результатом будет кол-во тех заказов, на выполнение которых клиенты дали свое согласие. Функция не имеет входных параметров. Функция возвращает целочисленное значение.
Пример выполнения изображен на рис. 32.
Рис. 32. Функция qtyOrder().
11.1.2 Функция profit()
Выполняет расчет заработка типографии. Считается общая стоимость всех заказов, которые отмечены как заказы на выполнение (клиент дал свое согласие). Функция не имеет входных параметров. Результатом работы будет суммарная стоимость заказов. Исполнение функции изображено на рис. 33.
Рис. 33. Функция profit().
11.2 . Процедуры
Хранимые процедуры – набор операторов, которые представляют собой единый модуль исполнения. Процедуры позволяют сохранять сложные запросы и таким образом облегчают работу пользователя.
11.2.1 Процедура paper().
Процедура предназначена для вывода на экран списка запечатываемых материалов занесенного в базу данных. На рис. 34 представлена блок схема данной процедуры.
начало
Выборка всех данных из таблицы substrate.
Вывод списка материалов
конец
Рис. 34. Блок-схема процедуры paper().
Результат работы процедуры показан на рис. 35.
Рис. 35. Процедура paper().
12 . Триггеры.
Триггер – это последовательность команд, поставленная в соответствие определенному событию и выполняемая в ответ на это событие. Триггеры предназначены для проверки выполнения ограничений на данные, находящиеся в базе. Для проверки изменений данных было разработано 3 триггера. Исходные коды триггеров находятся в приложении A листинг 6.[2]
Триггер delclient
Триггер срабатывает при удалении данных из таблицы «clients» и удаляет данные об использовании клиентом издательства из таблицы «clts2pub». Блок схема триггера приведена на рис.36.
начало
конец
Удаление записи из таблицы clients
Удаление данных из таблицы clts2pub.
Рис. 36. Блок-схема триггера delclient.
Результат работы триггера представлен на рис. 37.
Рис. 37. Триггер delclient.
2 . Триггер delorder
Срабатывает после удаления записи из таблицы «orders». Удаляет данные из таблиц «product», «ord2prod», «ink2prod», «stitch2prod»,«plate2prod», «sub2prod». Блок- схема триггера представлена на рис. 38.
Удаление записи из таблицы orders
начало
Удаление данных из таблиц “product”,”ord2prod”,”ink2prod”,”stitch2prod”,”sub2prod”,”plate2prod”.
конец
Рис. 38. Блок-схема триггера delorder
Пример работы триггера представлен на рис. 39.
Рис. 39. Триггер delorder.
3 . Триггер clntord
Триггер срабатывает перед удалением клиента из базы данных и удаляет информацию о заказах, которые создавал данный клиент. Удаление данных происходит из таблиц «orders» и «clts2Ord». Блок схема триггера приведена на рис. 40.
Удаление записи из таблицы clients
Удаление данных из таблиц “orders” и “cltsord”.
конец
начало
Рис. 40. Блок-схема триггера clntord.
Работа триггера приводит к выполнению триггера delorder, что позволяет удалить всю информацию о заказе, сделанном клиентом.
Результат работы триггера приведен на рис. 41.
Рис. 41. Триггер clntord.