Файл: Практикум направление подготовки 09. 03. 03 Прикладная информатика Уровень высшего образования Бакалавриат.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.03.2024

Просмотров: 49

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Очевидно, что количество выданных и оставшихся в библиотеке книг изменяется только в двух последних случаях, которые и учтены в условиях запроса, представленных в примере. Запрос использует значение переменной @delta, изменённое этими условиями, для модификации агрегированных данных.

Проверьте правильность работы всех созданных триггеров и представьте полученные результаты в следующей форме:

Срабатывание триггера upd_bks_sts_on_subscriptions_upd к таблице subscriptions, реагирующего на обновление выдачи книг. Событие: изменение статуса выдачи одной с ‘N’ на ‘Y’.

Было:



Стало:



3. Напишите и проверьте правильность работы функций, хранимых процедур и триггеров к базе данных «Библиотека» (library).

3.1 Разработайте триггеры к таблице subscriptions, позволяющие учитывать в отдельной таблице статистику выдач книг по авторам (сколько раз книги данного автора выдавались читателям). Агрегирующая таблица должна содержать ключевое поле и два столбца: name_authors (имя автора), count_books (число выданных книг). Учитывать любой статтус выданной книги (‘Y’, ‘N’). При разработке нужно учесть все возможные случаи изменения таблицы subscriptions: добавление записи о выдаче книги, удаление записи о выдаче книги, изменение кода выданной книги (sb_book). Проверьте правильность работы всех созданных триггеров и представьте содержимое статистической таблицы до и после срабатывания триггера.

3.2 Разработайте триггер к таблице subscribers, позволяющий при удалении читателя(ей) заносить удаляемую запись в специальную таблицу archive (архив).

3.3 Разработайте процедуру, позволяющую восстанавливать данные об удаленном в архив читателе (в случае, если он восстановился в библиотеке). Запись о читателе должна восстанавливаться в таблице subscribers и, при этом, удаляться в таблице archive. Код восстанавливаемого читателя передается в процедуру в качестве параметра.


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


Цель практического занятия: Наработка навыков создания процедур, функций и триггеров.

Задачи:

  1. Создать базы данных в соответствии с приведенными ER-моделями и заполнить их тестовыми данными (5-6 записей в таблице).

  2. В соответствии с заданием написать и протестировать работу процедур, функций и триггеров созданным базам данных.

Задание 1.

1.1 Воспользовавшись прилагаемым к практическому занятию файлом модели (wholesale_store.mwb) сгенерировать одноименную базу данных.

1.2 Заполнить созданную БД тестовыми данными (внести 5-6 записей в каждую таблицу).

1.3 Написать к базе данных одно представление (view), одну хранимую процедуру, одну функцию и один триггер (при необходимости можно внести изменения в базу данных (добавить новую таблицу, изменить любую таблицу или поле).

Описание базы данных

На рисунке 13.1 приведена ER-модель базы данных wholesale_store (оптовый магазин) в нотации IDEF1X. Все атрибуты, перечисляемые в описании таблиц, соответствуют английским наименованиям на рисунке в порядке их следования. Подчеркнутый атрибут является первичным ключом. База данных включает следующие таблицы: supplier – ПОСТАВЩИК(id поставщика, название поставщика), supply – ПОСТАВКА (id поставки, дата поставки, <внешний ключ к соответствующей таблице>), delivered – ПОСТАВЛЕНО(id поставки, id товара, количество, цена), product – ТОВАР (id продукта, артикул, <внешний ключ>, наименование продукта, наименование бренда, остатки на складе, описание товара, вес/объем, единица измерения, цена), waybill – НАКЛАДНАЯ(id продажи, дата продажи, время продажи, <внешний ключ>), sales – ПРОДАНО(id продажи, id продукта, id поставщика, цена, количество), customers – ПОКУПАТЕЛИ(id покупателя, фамилия, имя, отчество, баллы (лояльности)),
employee – СОТРУДНИКИ(id сотрудника, ФИО), category – КАТЕГОРИЯ(id категории, название категории).



Рис 13.1. ER-модель базы данных wholesale_store (оптовый магазин)

Задание 2.

1.1 Воспользовавшись прилагаемым к практическому занятию файлом модели (fitness_club) сгенерировать одноименную базу данных.

1.2 Заполнить созданную БД тестовыми данными (внести 5-6 записей в каждую таблицу).

1.3 Написать к базе данных одно представление (view), одну хранимую процедуру, одну функцию и один триггер (при необходимости можно внести изменения в базу данных (добавить новую таблицу, изменить любую таблицу или поле).

Описание базы данных

На рисунке 13.2 приведена ER-модель базы данных fitness_club (фитнес клуб) в нотации IDEF1X. Все атрибуты, перечисляемые в описании таблиц, соответствуют английским наименованиям на рисунке в порядке их следования. Подчеркнутый атрибут является первичным ключом. База данных включает следующие таблицы: customer – КЛИЕНТ(id клиента, фамилия, имя, отчество, серия+номер паспорта, статус лояльности (может влиять на размер скидки)), card – КАРТА (КЛУБНАЯ) (id карты, номер карты, <внешний ключ>, <внешний ключ>, дата начала действия, дата окончания действия, цена покупки), type_card – ТИП КАРТЫ(id типа карты, наименование карты, период действия (месяцев), цена), service – УСЛУГА(id услуги, название услуги), included – ВКЛЮЧЕННЫЕ (УСЛУГИ) (id карты, id услуги, время начала, время окончания), paused – ПРИОСТАНОВКА(id приостановки, дата начала, дата окончания, <внешний ключ>), weekday – ДЕНЬ НЕДЕЛИ(id дня недели, название дня недели), available_day – ДОСТУПНЫЙ ДЕНЬ(id карты, id дня недели), visit – ПОСЕЩЕНИЕ(id посещения, дата посещения, время прихода, время ухода, <внешний ключ>), training – ТРЕНИРОВКА(id тренировки, дата тренировки, время начала, время окончания, <внешний ключ>, <внешний ключ>, максимальное число участников), participant – ЗАПИСЬ НА ТРЕНИРОВКУ (id карты, id тренировки), trainer – ТРЕНЕР(id тренера, ФИО).



Рис 13.2. ER-модель базы данных fitness_club (фитнес клуб)


Задание 3.

Написать к ранее созданной базе данных shedule (расписание учебного заведения) одно представление (view), одну хранимую процедуру, одну функцию и один триггер (при необходимости можно внести изменения в базу данных (добавить новую таблицу, изменить любую таблицу или поле).



Рис 13.3. ER-модель базы данных shedule (расписание)



Список используемой литературы




  1. MySQL – официальный сайт проектаMySQL. URL: https://www.mysql.com/ дата обращения: 24.03.2020).

  2. Куликов С.С. Работа с MySQL, MS SQL Server и Oracle в примерах. Практическое пособие для программистов и тестировщиков. EPAM Systems, RD Dep, 2016–2019. Режим доступа http://svyatoslav.biz/database_book/ (дата обращения 02.02.2019).