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

Вариант 5

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

дата отправления,

номер поезда,

направление,

время отправления,

время в пути (час),

номер вагона,

код типа вагона,

название типа вагона,

общее количество мест,

количество проданных мест.

В первой главе курсового проекта описать процесс проектирования.

  1. Разработать базу данных, таблицы и заполнить их данными. Количество поездов должно быть не менее пяти. Количество вагонов в каждом поезде – не менее 8. Типы вагонов: плацкартный, купейный, мягкий, СВ, общий.

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

  • NOT NULL – для полей, которые будут являться первичными и внешними ключами,

  • PRIMARY KEY – для полей, выбранных в качестве первичных ключей,

  • FOREIGN KEY – для полей, являющихся внешними ключами,

  • CHECK для полей «Общее количество мест» и «Количество проданных мест» (значение первого поля должно быть не меньше значения второго),

  • DEFAULT для поля «Дата отправления» (равное системной дате).

Построить диаграмму базы данных.

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

    1. Показать список поездов с перечнем вагонов, в которых было продано более половины мест (показать данные по полям: номер поезда, направление, номер вагона, тип вагона, общее количество мест, количество проданных мест.

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

    3. Показать список поездов с перечнем вагонов, кроме общих, по которым проданы все билеты (вывести те же данные, что и в предыдущих запросах).

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

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

    6. Выдать список вагонов (номера и типы) для поездов с тремя различными номерами, в которых количество вагонов меньше среднего количества выгонов во всех поездах.

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

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

    2. Разработать процедуру, которая выдала бы результат следующего вида для определенного направления:

Направление

Номер поезда

Дата и время отправ-ления

Дата и время прибы-тия

Количе-ство часов в пути

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

Количество проданных имест

Процент заполнения поезда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Итого по направлению

 

 

 

 

***

***

***

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

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

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