Необходимо разработать следующие представления (view):
5. Группы, в которых каждый студент сдал хотя бы одну работу.
6. Группы, в которых есть студенты, не выполнившие какие-либо работы в срок (то есть, срок сдачи работы уже прошел, а какой-либо студент ее еще не сдал).
7. Студенты, которые сдали все требуемые контрольные и лабораторные работы.
А также реализовать следующие запросы на модификацию данных:
8. Перенести на неделю позже планируемый срок сдачи третьей контрольной по физике в группе 4321.
9. Отменить четвертую контрольную по физике в группе 4321.
Лабораторная работа №5
Используя триггеры, обеспечить поддержку целостности данных в ранее разработанной базе. Необходимо реализовать не менее трех триггеров, аналогичных внешним ключам, а также дополнительный триггер, запрещающий сдачу студентом лабораторной работы, если он не сдал какую-либо из предыдущих лабораторных работ по этому предмету.
Вариант 3
Лабораторная работа №1
Разработать ER-диаграмму, а затем, пользуясь средствами СУБД Microsoft Access, создать базу данных для городской сети ресторанов быстрого питания «ФастФуд». База данных должна позволять хранение следующей информации:
|
|
1. Информация о названии и адресе каждого ресторана.
2. Список сотрудников каждого ресторана, с указанием ФИО, должности, оклада.
3. Информация о выполненных заказах (дата заказа, кассир, содержимое заказа, общая стоимость, кто из сотрудников выполнял заказ)
4. Рецепт, с указанием для каждого блюда стоимости, необходимых ингредиентов и средней длительности приготовления. Некоторые блюда готовятся из ингредиентов непосредственно в момент продажи, а другие могут готовиться заранее и «доводиться до кондиции» перед продажей. Известно максимальное количество порций каждого блюда, которые ресторан может приготовить заранее и держать «на подогреве».
5. Состояние склада каждого ресторана, с указанием для каждого продукта его названия, единицы измерения (килограмм, пачка, ящик, …), максимального возможного количества на складе (в соответствии со вместимостью холодильников и т.д.) и оставшегося количества на складе.
Не требуется хранить информацию о расписании работы сотрудников. База данных должна содержать следующие ограничения целостности:
1. Оставшееся количество продукта на складе не может быть отрицательным.
2. Оставшееся количество продукта на складе не может превышать максимального.
Лабораторная работа №2
В рамках работы необходимо:
Реализовать ER-диаграмму, разработанную в первой лабораторной работе, в среде Power Designer.
3. На основе созданной ER-диаграммы сгенерировать физическую модель базы данных.
|
|
4. Убедиться, что полученная физическая модель соответствует схеме данных БД Microsoft Access из первой лабораторной работы.
Лабораторная работа №3
В рамках работы необходимо:
Пользуясь разработанной в предыдущей работе физической моделью БД сгенерировать скрипт создания таблиц базы данных на языке SQL в стандарте SQL 92. В таблицах должны генерироваться первичные ключи и связи, а также содержаться проверки (CHECK CONSTRAINTS) аналогичные проверкам из первой лабораторной работы.
Дополнительно необходимо хранить информацию о поступлении товаров на склад (такого-то числа в определенный ресторан поступило такое-то количество продуктов, и расписался в получении товара такой-то сотрудник). Необходимые колонки/таблицы нужно разработать и добавить в скрипт вручную, не пользуясь возможностями Power Designer.
Внести необходимые исправления для успешного выполнения скрипта в СУБД SQLite.
Добавить в полученный скрипт команды INSERT для заполнения таблиц примером данных.
Сгенерировать таблицы, заполненные тестовыми значениями.
Лабораторная работа №4
Кроме таблиц, необходимо разработать следующие представления (view):
Три самых быстрых сотрудника, выполнивших наибольшее количество заказов.
5. Для каждого блюда вычислить среднее количество заказов в течение дня.
6. Блюда, которые были подготовлены заранее, но так не разу и не куплены.
7. Для каждой пары различных блюд определить, сколько раз они заказывались совместно.
А также реализовать следующие запросы на модификацию данных:
8. Только что был заказан «Сэндвич большой», необходимо уменьшить количество оставшихся на складе продуктов, в соответствии с информацией из рецепта.
9. Удалить из меню (из списка рецептов) блюда, которые никто никогда не заказывал.
Лабораторная работа №5
Используя триггеры, обеспечить поддержку целостности данных в ранее разработанной базе. Необходимо реализовать не менее двух триггеров, аналогичных внешним ключам, а также следующие триггеры:
Триггер, не позволяющий подать порцию, если на складе не осталось нужного количества необходимых для ее изготовления продукта.
10. Триггер, автоматически уменьшающий количество оставшихся на складе продуктов (в соответствии с информацией из меню) после продажи каждой порции товара.
Вариант 4