Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1 / 4

.docx
Скачиваний:
1
Добавлен:
16.05.2025
Размер:
2.15 Mб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

Кафедра 41

ПРЕПОДАВАТЕЛЬ

Доцент, канд. техн. наук

Е. Л. Турнецкая

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

Лабораторная работа №4

Физическая реализация реляционной базы данных на сервере

по курсу: Базы данных

СТУДЕНТКА ГР. №

Z0411

М. В. Карелина

номер группы

подпись, дата

инициалы, фамилия

Номер студенческого билета: 2020/3477

Санкт-Петербург

2023

Цель работы:

Физическая реализация реляционной БД на MySQLсервере.

Вариант 8. Обслуживание рейсов в аэропорту

Аэропорт обслуживает рейсы разных авиакомпаний. У каждой авиакомпании есть несколько рейсов. Авиакомпании предоставляют самолеты различного типа (вместимости). Самолеты характеризуются типом, годом выпуска, количеством мест и фирмой-производителем. В один город могут быть несколько рейсов в разное время, осуществляемых различными авиакомпаниями. Самолеты обслуживаются экипажем: 7 командир корабля, второй пилот, штурман, бортинженер и стюардессы. О сотрудниках хранится следующая информация: Ф.И.О., должность, квалификация, экипаж. Рейс имеет свой номер, пункт отправления, пункт прибытия, время вылета, время в пути, тип самолета, название авиакомпании, обслуживающей данный рейс. Билет на самолет имеет свой номер и № рейса, ФИО пассажира, № места, стоимость, дата продажи, дата бронирования. Пассажир, приобретая билет на самолет, сообщает о себе паспортные данные. Клиент может забронировать билет по Интернету и выкупить его за 3 часа до вылета. В данной лабораторной работе будет использована модель данных, спроектированная в прошлой работе (Рис. 1).

Для этого выполним команду: File>Open Model. Требуется открыть файл в формате .mwb.

На основе этой модели данных запустим процесс по реализации БД на сервере.

Запустим команду: File>Export>Forward Engineer SQL CREATE Script…

Выполним все шаги по автогенерации скрипта для создания БД.

Запустите сохраненный скрипт для физической реализации БД на сервере.

Рисунок 1 - Модель данных в среде MySQL Workbench

Выполнение: Откроем модель данных, спроектированную по варианту индивидуального задания. Для этого выполним команду: File>Open Model. Требуется открыть файл в формате .mwb (рис.2).

Рисунок 2 – Открытие модели данных

На основе модели данных запустим процесс по реализации БД на сервере. Запуск команды: File>Export>Forward Engineer SQL CREATE Script… (рис.3)/

Рисунок 3 – Запуск команды

В первой строке дают название скрипта по созданию БД и выбирают место файла сохранения на персональном компьютере (рис.4). Затем нажимают на кнопку Next.

Рисунок 4 – Выбор места для файла

В процессе проектирования нами было разработано шесть таблиц – объекты БД. Других объектов не объявлено (рис.5). Для продолжения процесса автогенерации программного кода нажимают на кнопку Next.

Рисунок 5 – Объекты БД

В следующем окне следует проверить код, который был автосгенерирован на основании модели данных (рис.6) и нажать на кнопку Finish.

Рисунок 6 – Код БД

Выполнить команду: File>Open SQL script. Программный код будет открыт в окне редактирования кода MySQL Workbench (рис7).

Рисунок 7 – Открытый программный код БД

Запустим код на исполнение. Результат выполнения программного кода показан на рисунке 8.

Рисунок 8 – Созданная БД

Заполним таблицы БД правдоподобными записями. Данные будем брать при помощи генераторов случайных ФИО, например: https://randomus.ru/name, а также при помощи интернет ресурсов.

Листинги SQL-кода приложены ниже.

Листинг. Заполнение таблицы Авиакомпания.

USE `аэропорт`;

INSERT INTO `авиакомпания` (`№ Авиакомпании`, `Название авиакомпании`, `Количество рейса`,`№ Самолета`)

VALUES (1, 'Аэрофлот', 1, 1),

(2, 'S7 Airlines', 2, 2),

(3, 'Победа', 3, 3),

(4, 'Россия',1, 4),

(5, 'Ютэир', 2, 5),

(6, 'Смартавиа', 2, 2),

(7, 'Нарутотревел', 3, 4),

(8, 'Ромашка', 1, 1),

(9, 'Агацума', 1, 5),

(10, 'Тамиокалайн', 1, 2);

SELECT * FROM `авиакомпания`;

Заполненная таблица Авиакомпания на Рис. 9.

Рисунок 9 – Таблица Авиакомпания

Листинг. Заполнение таблицы Пассажиры.

USE `аэропорт`;

INSERT INTO `пассажиры` (`№ Пассажира`,`Ф.И.О.`,`Паспортные данные`)

VALUES (1, 'Ефремов Ярослав Александрович', 8000000000),

(2, 'Максимов Егор Алексеевич', 4000000000),

(3, 'Воронин Роберт Константинович', 4400000000),

(4, 'Мещеряков Иван Кириллович', 3000000000),

(5, 'Иванова Арина Алексеевна', 2000000000),

(6, 'Морозова Валерия Ярославовна', 1000000000),

(7, 'Широков Матвей Степанович', 5000000000),

(8, 'Тимофеева Ульяна Данииловна', 6000000000),

(9, 'Ермаков Владислав Иванович', 7000000000),

(10, 'Соловьева Анастасия Глебовна', 9000000000);

select * FROM `пассажиры`;

Заполненная таблица Пассажиры на Рис. 10.

Рисунок 10 – Таблица пассажиры

Листинг. Заполнение таблицы Билет.

USE `аэропорт`;

INSERT INTO `билет` (`№ Билет`, `№ Рейса`, `№ Пассажира`, `№ Места`, `Стоимость`, `Дата приобретения`, `Дата бронирования`)

VALUES (1, 5, 2, '45', '20000', '2022-01-05', '2022-01-01'),

(2, 3, 4, '15', '10000', '2022-02-05', '2022-02-01'),

(3, 4, 1, '30', '12000', '2022-03-05', '2022-03-01'),

(4, 2, 3, '50', '13000', '2022-04-05', '2022-04-01'),

(5, 1, 6, '25', '11000', '2022-05-05', '2022-05-01'),

(6, 3, 5, '32', '25000', '2022-06-05', '2022-06-01'),

(7, 1, 9, '39', '22000', '2022-07-05', '2022-07-01'),

(8, 4, 10, '27', '19000', '2022-08-05', '2022-08-01'),

(9, 5, 7, '41', '18000', '2022-09-05', '2022-09-01'),

(10, 1, 8, '49', '15000', '2022-10-05', '2022-10-01');

SELECT * FROM `билет`;

Заполненная таблица Билет на Рис. 11.

Рисунок 11 – Таблица Билет

Листинг. Заполнение таблицы Рейс.

USE `аэропорт`;

INSERT INTO `рейс` (`№ Рейс`,`Пункт отправления`,`Пункт прибытия`,`Время вылета`,`Время в пути`,`Тип самолета`,`№ авиакомпании`)

values (1, 'Москва', 'Тверь', '02:00', '01:15', 'Ту-134', 9),

(2, 'Тверь', 'Москва', '08:00', '01:45', 'Ту-154', 8),

(3, 'Сочи', 'Тверь', '15:00', '02:00', 'Ту-204', 5),

(4, 'Москва', 'Сочи', '20:00', '03:15', 'Ту-134', 6),

(5, 'Москва', 'Самара', '07:30', '02:20', 'Ту-134', 2);

select * from `рейс`;

Заполненная таблица Рейс на Рис. 12.

Рисунок 12 - Таблица Рейс

Листинг. Заполнение таблицы Сотрудники.

use `аэропорт`;

insert into `сотрудники` (`Экипаж`, `Ф.И.О.`, `Должность`, `Квалификация`) values (1, 'Чернышева Ариана Фёдоровна', 'Командир', 'Высококвалифицированная'),

(2, 'Сальникова Полина Михайловна', 'Второй пилот', 'Высококвалифицированная'),

(3, 'Иванова Афина Григорьевна', 'Штурман', 'Высококвалифицированная'),

(4, 'Смирнов Арсений Максимович', 'Бортинженер', 'Высококвалифицированная'),

(5, 'Фролова Мелания Захаровна', 'Стюардесса', 'Высококвалифицированная'),

(6, 'Коновалова Анастасия Георгиевна', 'Стюардесса', 'Высококвалифицированная'),

(7, 'Черняева Ева Никитична', 'Стюардесса', 'Высококвалифицированная'),

(8, 'Белова Светлана Александровна', 'Стюардесса', 'Высококвалифицированная'),

(9, 'Рябова Агния Дмитриевна', 'Стюардесса', 'Высококвалифицированная'),

(10, 'Симонова Кира Данильевна', 'Стюардесса', 'Высококвалифицированная');

select * from `сотрудники`;

Заполненная таблица Сотрудники на Рис. 13.

Рисунок 13 – Таблица Сотрудники

Листинг. Заполнение таблицы Самолет.

use `аэропорт`;

insert into `самолет` (`№ Самолета`,`Тип самолета`,`Год выпуска`,`Количество мест`,`Фирма производитель`,`Экипаж`)

values (1, 'Ту-134', 2005, 50, 'Аэробус', 2),

(2, 'Ту-154', 201, 50, 'Белл-Агуста', 3),

(3, 'Ту-204', 2010, 70, 'Аэроспейс', 4),

(4, 'Ту-154', 2015, 150, 'Аэробус', 5),

(5, 'Ту-134', 2020, 100, 'Аэробус', 7);

select * from `самолет`;

Заполненная таблица Самолет на Рис. 14.

Рисунок 14 – Таблица Самолет

Вывод

В ходе выполнения данной лабораторной работы созданная ранее база данных Аэропорт была заполнена правдоподобными данными. Информация о типах самолета, о Аэрокомпаниях, о Фирмах производителей в Таблицах Авиакомпании и Самолёты, была частично взята реальных сайтов, личные данные сотрудников и пассажиров для таблиц Сотрудники и Пассажиры были сгенерированы при помощи онлайн-генераторов. В ходе выполнения работы возникало множество проблем, от некорректного синтаксиса, до неправильно выставленных связей и типов данных. По выполнению работы все недочеты были устранены.

Соседние файлы в папке 1