Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовик «разработка Базы Данных Для Расчета Стоимости Заказа Предприятия» По Базам Данных (Марков А. А.).doc
Скачиваний:
35
Добавлен:
07.10.2014
Размер:
357.89 Кб
Скачать

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.