Добавил:
Меня зовут Катунин Виктор, на данный момент являюсь абитуриентом в СГЭУ, пытаюсь рассортировать все файлы СГЭУ, преобразовать, улучшить и добавить что-то от себя Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика / Теория / Базы данных СГЭУ - Курсовое_проектирование_для заочников.docx
Скачиваний:
14
Добавлен:
09.08.2023
Размер:
3.84 Mб
Скачать

Вариант 24

  1. В первой главе курсового проекта описать процесс проектирования базы данных «Учет продаж билетов в кинотеатре с несколькими залами». Спроектировать базу данных методом нормализации и методом семантического моделирования. Данные, которые должны храниться в базе, представлены в виде одной таблицы со следующими столбцами:

Код зала

Наименование зала

Общее количество мест в зале

Количество мест 1-ой категории (остальные места 2-ой категории)

Код кинофильма

Название кинофильма

Год выпуска

Название киностудии

Код категории кинофильма

Наименование категории кинофильма (блокбастер и т.д., достаточно 3-х категорий)

Цена билета на место 1-ой категории

Цена билета на место 2-ой категории

Дата сеанса

Время начала сеанса

Продолжительность сеанса

Количество проданных мест 1-ой категории на 1 сеанс

Количество проданных мест 2-ой категории на 1 сеанс

2. Разработать базу данных, таблицы и заполнить их данными. В списке залов 3-4 записи. В каждом зале ежедневно проходит по 4-7 сеансов. Всего рассмотреть не менее 3 дат, использовать одни и те же даты для всех залов. В списке кинофильмов 10-12 картин, по 3-5 фильмов в каждой категории. Одна и та же картина может идти в нескольких залах одновременно. Задать минимальное значение поля Цена одного билета равным ста рублям. Добавить в таблицу, в которой содержится поле Время начала сеанса, ограничение для проверки правильности ввода поля: Время начала сеанса не позднее 21 часа. Создать для каждой таблицы первичный ключ, а также внешние ключи для всех дочерних таблиц. Установить постоянные отношения между дочерними и родительскими таблицами (создаются при построении диаграммы базы данных). Задать ограничение NOT NULL для всех полей, входящих в первичные или внешние ключи.

3. Структуры таблиц и содержимое таблиц привести во второй главе пояснительной записки к курсовому проекту «Создание таблиц».

4. В третьей главе курсового проекта «Основные команды SQL для извлечения, добавления и изменения данных» выполнить следующие действия и представить их результаты.

4.1. Показать список кинофильмов показанных в заданном зале. Номер зала задать с помощью подстановочной переменной. В запросе вывести поля: Код и наименование зала, Дату и Время сеанса, Код и Название кинофильма, количество проданных билетов 1-ой и 2-ой категории.

4.2. Преобразовать предыдущий запрос таким образом, чтобы он выводил список показанных кинофильмов за заданный период времени.

4.3. Создать сгруппированный запрос с подсчетом общего количества и стоимости проданных мест по каждому залу. Показать поля: Код и наименование зала, общее количество и стоимость проданных мест.

4.4. Выдать список из трех кинофильмов (Название кинофильма, Год выпуска, Название киностудии, стоимость проданных билетов) для которых общая стоимость проданных билетов наибольшая.

4.5. Создать и заполнить новую таблицу (с помощью запроса) с полями: Код и наименование зала, Общее количество мест в зале, Среднее количество проданных билетов в зале за весь период, процент заполняемости зала (отношение среднего количества проданных билетов в каждом зале к общему количеству мест).

4.6. Повысить стоимость билетов на блокбастеры на места 1-ой категории на 20%, а на места 2-ой категории на 10%.

4.7. Создать список кинофильмов, для которых общая стоимость проданных билетов ниже средней по каждой категории кинофильмов.

4.8. Выдать список кинофильмов, которые показывают на заданную Дату и Время сеанса. Просматривать сеансы в интервале два часа от заданного Времени сеанса.

5. В четвертой главе должны быть представлены разработанные процедуры и функции.

5.1. Разработать функцию, которая определяла бы цену билета на места 1-ой и 2-й категории для определенного кинофильма. Проверить работу функции с помощью запроса.

5.2. Создать процедуру с параметрами «Код категории кинофильма», «Цена билета на места 1-ой категории» и «Цена билета на места 2-ой категории». Процедура должна выполнять проверку, есть ли данная категория в списке категорий. Если такая запись существует, следует изменить значение полей «Цена билета …» на соответствующие значения параметров. Если такой категории в списке нет, то необходимо добавить новую запись.

6. В пятой главе должны быть разработаны и отображены триггеры, обеспечивающие целостность данных в создаваемой базе данных.

6.1. Создать триггер, который при вводе новой записи о сеансе проверял бы, существует ли заданный Код кинофильма в списке кинофильмов, и Код категории кинофильма – в списке категорий. Если отсутствуют заданные Код кинофильма или Категория необходимо откатить транзакцию и выдать сообщение.

6.2. Создать процедуру с параметрами «Код категории кинофильма», «Цена билета на места 1-ой категории» и «Цена билета на места 2-ой категории». Процедура должна выполнять проверку, есть ли данная категория в списке категорий. Если такая запись существует, следует изменить значение полей «Цена билета …» на соответствующие значения параметров. Если такой категории в списке нет, то необходимо добавить новую запись.

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