
5 семестр / bd_8
.docxГУАП
КАФЕДРА № 41
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
старший преподаватель |
|
|
|
Б.К. Акопян |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №8 |
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ТРИГГЕРОВ |
по курсу: БАЗЫ ДАННЫХ |
|
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
4116 |
|
|
|
|
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2023
Цель работы: получение практических навыков по программной реализации триггеров на сервере MySQL.
Вариант 15 Занятость актеров театра
Работников театра можно подразделить на актеров, музыкантов, постановщиков и служащих. Театр возглавляет директор, в функции которого входят контроль за постановками спектаклей, утверждение pепеpтуаpа, принятие на работу новых служащих, приглашение актеров и постановщиков. Актеры театра могут иметь звания заслуженных и народных артистов, могут быть лауреатами конкурсов.
Для постановки любого спектакля необходимо подобрать актеров на роли. Естественно, что один и тот же актер не может играть более одной pоли в спектакле, но может играть несколько pолей в различных спектаклях. У спектакля также имеется pежиссеp-постановщик, художник-постановщик, диpижеp-постановщик, автор. Спектакли можно подразделить по жанрам: музыкальная комедия, трагедия, оперетта и пр. (таблица Жанры). С другой стороны, спектакли можно подразделить на детские, молодежные и пр. В pепеpтуаpе театра указывается какие спектакли, в какие дни и в какое время будут проходить. В кассах театра можно заранее приобрести билеты на любые спектакли. Цена билетов зависит от места, и спектакля. Администрацией театра фиксируется дата продажи, код спектакля, а затем анализируется количество проданных билетов на каждый спектакль.
Ход работы:
На рисунке 1 изображена схема используемой БД.
Рисунок 1 – Модель данных
Был создан триггер, который срабатывает после каждой операции INSERT в таблицу Билеты. При срабатывании триггер обновляет значение столбца ПроданоБилетов в таблице Спектакли, увеличивая его на 1, для спектакля, на который был куплен новый билет. Таким образом, триггер отслеживает и автоматически обновляет информацию о количестве проданных билетов для каждого спектакля. (Рисунок 2).
Рисунок 2 – Триггер на INSERT
Был разработан триггер, срабатывающий перед UPDATE, он проверяет новое значение столбца Цена. Если новая цена превышает 5000, триггер автоматически устанавливает значение цены в 5000. Таким образом, триггер обеспечивает автоматическое ограничение цены билета до максимального значения 5000 при любых попытках обновления (Рисунок 3).
Рисунок 3 – Триггер на UPDATE
Создан триггер, который срабатывает после DELETE в таблице Билеты, автоматически уменьшает количество проданных билетов в соответствующем спектакле в таблице Спектакли (Рисунок 4).
Рисунок 4 – Триггер на DELETE
Список всех созданных триггеров представлен на Рисунке 5.
Рисунок 5 – Список триггеров
Вывод: в ходе выполнения лабораторной работы были разработаны 3 триггера, на добавление, обновление и удаление.
Список используемых источников:
1. A.В. Аграновский, В.В. Боженко, Е.Л. Турнецкая. - Учебно-методическое пособие «Разработка и администрирование базы данных с открытым исходным кодом» ‒ СПб.: ГУАП, 2022
2. Руководство по MySQL: https://metanit.com/sql/mysql.