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

Вариант 26

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

Код страны

Название страны

Срок подачи документов на визу (в днях)

Код менеджера

Фамилия и имя менеджера

Код маршрута

Название маршрута

Стоимость путевки по данному маршруту для 1 взрослого

Стоимость путевки по данному маршруту для 1 ребенка

Номер путевки

Дата продажи путевки

Фамилия, Имя, отчество туриста, купившего путевку

Количество взрослых по одной путевке

Количество детей по одной путевке

Оплаченная сумма

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

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

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

4.1. Создать запрос для выдачи следующих данных по путевкам: Код страны, Название страны, Срок подачи документов на визу, Код менеджера, Фамилия и имя менеджера, Код маршрута, Название маршрута, Стоимость путевки по данному маршруту для 1 взрослого, Стоимость путевки по данному маршруту для 1 ребенка.

4.2. Создать сгруппированный запрос для подсчета общей стоимости путевок, проданных каждым менеджером за определенный календарный период. Стоимость путевки = стоимости путевки по данному маршруту для 1 взрослого * Количество взрослых по одной путевке + Стоимость путевки по данному маршруту для 1 ребенка * Количество детей по одной путевке.

4.3. Создать сгруппированный запрос с подсчетом количества путевок по каждому маршруту.

4.4. Изменить Стоимость путевки по заданному маршруту для взрослого на 15%.

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

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

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

5.1. Создать функцию для расчета стоимости туристической путевки. Проверить работу функции с помощью запроса.

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

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

6.1. Создать триггер, который бы при вводе новой записи об оплате за туристическую путевку проверял бы наличие данного номера путевки в списке путевок. В случае неправильного ввода номера путевки следует выдать сообщение и откатить транзакцию. Если номер путевки введен правильно, то надлежит проверить соответствие Суммы оплаты стоимости путевки. Если Сумма оплаты равна стоимости путевки, необходимо выдать сообщение: «Оплата за туристическую путевку номер Х внесена», где Х номер путевки. Если Сумма оплаты меньше стоимости путевки, следует выдать сообщение и откатить транзакцию, в противном случае рассчитать сумму переплату (как разницу между Суммой оплаты и стоимостью путевки) и выдать сообщение с указанием номера путевки и суммы переплаты.

6.2. Создать триггер на удаление записи из списка туристических маршрутов. В теле триггера осуществить проверку, существуют ли записи о проданных путевках по данному маршруту и отменить удаление, если такая запись имеется, выдать соответствующее сообщение.

1 В таблице приведены условные данные, взятые для примера

2 Data Definition Language – язык определения данных, входит в состав команд языка SQL.

3 См. подробнее в разделе 5.4

4 Подробнее о запросах см. в разделе 5.4

121