
5сем / lab8_database
.docxГУАП
КАФЕДРА № 41
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
Ассистент |
|
|
|
Б.К.Акопян |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №8 |
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ТРИГГЕРОВ |
по курсу: БАЗЫ ДАННЫХ |
|
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
4016 |
|
|
|
М.О. Жовтяк |
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2022
Цель работы
Получение практических навыков по программной реализации триггеров на сервере MySQL.
Вариант работы
Вариант 14.
Библиотека в Хоббитонии есть библиотека «Башня Саурумана». Вы являетесь ее руководителем. Библиотека зарабатывает деньги, выдавая напрокат некоторые книги, имеющиеся в небольшом количестве экземпляров. Одной из задач разрабатываемой ИС является отслеживание финансовых показателей работы библиотеки. У каждой книги, выдаваемой в прокат, есть название, автор, жанр. В зависимости от ценности книги Вы определили для каждой из них залоговую стоимость (сумма, вносимая клиентом при взятии книги напрокат) и стоимость проката (сумма, которую клиент платит при возврате книги, получая назад залог). В библиотеку обращаются читатели. Все читатели регистрируются в картотеке, указывая свои персональные данные. Каждый читатель может обращаться в библиотеку несколько раз. Все обращения читателей фиксируются, при этом по каждому факту выдачи книги запоминаются дата выдачи и ожидаемая дата возврата. Стоимость проката книги должна зависеть не только от самой книги, но и от срока ее проката. Кроме того, необходимо добавить систему штрафов за вред, нанесенный книге и систему скидок для некоторых категорий читателей. Произведения авторов, составляющие библиотечный фонд, также можно разделить на различные категории, характеризующиеся собственным набором атрибутов: учебники, повести, романы, статьи, стихи, диссертации, рефераты, тезисы докладов и т.д. Сотрудники библиотеки, работающие в различных залах различных библиотек, ведут учет читателей, а также учет размещения и выдачи литературы.
Ход работы
На рисунке 1 представлена схема данных БД согласно индивидуальному варианту.
Рисунок 1 – Схема данных БД
Создается 1-й триггер с событием INSERT, который при создании новой записи в таблице Appeals задает статус обращения в новом столбце sale_status ‘Открыта заявка’. Результат выполнения представлен на рисунке 2.
Рисунок 2 – Результат работы триггера на событие INSERT
Создается 2-й триггер, который при любом обновлении таблицы appeals создает запись в новой созданной таблице data_change. Суть таблицы – отслеживать все изменения в основной таблице. Результат работы на рисунке 3.
Рисунок 3 – Результат работы триггера на событие UPDATE
Cоздается 3-й триггер, который при любом удалении записи из таблицы appeals создается запись в новой созданной таблице data_change, аналогично как делает триггер с событием UPDATE, только при этом ставится пометка об удалении DELETE. Результат работы на рисунке 4.
Рисунок 4 – Результат работы триггера на событие DELETE
На рисунке 5 можно увидеть список реализованных триггеров на сервере.
Рисунок 5 – Список реализованных триггеров
Вывод
В ходе работы я научился создавать триггеры на сервере с помощью языка MySQL. Я закрепил знания об основных принципах программирования на этом языке, а именно: работа с основными операторами. В итоге мной были созданы 3 триггера, одна из которых создает пометку об открытии заявки, а другие две вносят данные в журнал об изменении основной таблицы.
В ходе работы проблем не возникло.
Приложение А
CREATE DEFINER=`root`@`localhost` TRIGGER `appeals_BEFORE_INSERT` BEFORE INSERT ON `appeals` FOR EACH ROW begin
SET new.sale_status = 'Открыта заявка';
end
Приложение Б
CREATE DEFINER=`root`@`localhost` TRIGGER `appeals_AFTER_UPDATE` AFTER UPDATE ON `appeals` FOR EACH ROW BEGIN
INSERT INTO data_change (data_name, data_change) VALUES ('UPDATE', sysdate());
END
Приложение В
CREATE DEFINER=`root`@`localhost` TRIGGER `appeals_AFTER_DELETE` AFTER DELETE ON `appeals` FOR EACH ROW BEGIN
INSERT INTO data_change (data_name, data_change) VALUES ('DELETE', sysdate());
END
Список использованных источников
Учебно-методическое пособие «Разработка и администрирование базы данных с открытым исходным кодом» - Аграновский А.В., В.В. Боженко, Е.Л. Турнецкая, 2022 г.