Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа.docx
Скачиваний:
0
Добавлен:
20.01.2026
Размер:
401.77 Кб
Скачать

1.3 Анализ информационных задач и круга пользователей системы

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

  • Пассажирах

  • Авиакомпаниях

  • Самолётах

  • Рейсах

  • Аэропортах

  • Билетах

  • Городах

  • Классах обслуживания

  • Способах оплаты

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

1.4 Выбор субд и других программных средств

Для реализации требуемых предметной областью функций необходимо: качественная защита информации, прямое редактирование данных в таблицах, быстрый поиск среди таблиц. Этим требованиям соответствует СУБД Oracle 19c. В качестве среды разработки приложения лучше всего подходит Oracle Application Express.

2. Логическое проектирование

2.1 Преобразование концептуальной модели в схему базы данных

Одним из этапов логического проектирования базы данных является этап проверки схемы БД на отсутствие аномалий преобразования данных. Для решения проблемы преобразований данных при проектировании реляционной БД проводится нормализация отношений.

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

Без нормализации:

R0[Общие данные] (ФИО, Телефон, Адрес электронной почты, Название авиакомпании, Модель, Количество мест, Часы налёта, Дата последнего техосмотра, Дата вылета, Время вылета, Время в пути, Стоимость билета, Название аэропорта, Количество ВПП, Название города, Место, Название класса обслуживания, Название способа оплаты)

Первая нормальная форма:

Таблица находится в первой нормальной форме, если она описывает одну сущность и нет повторяющихся и множественных атрибутов.

R1[Пассажиры] (ФИО, Телефон, Адрес электронной почты)

R2[Авиакомпании] (Название авиакомпании)

R3[Самолёты] (Модель, Количество мест, Часы налёта, Дата последнего техосмотра)

R4[Рейсы] (Дата вылета, Время вылета, Время в пути, Стоимость билета)

R5[Аэропорты] (Название аэропорта, количество ВПП)

R6[Билеты] (Место)

R7[Города] (Название города)

R8[Классы обслуживания] (Название класса обслуживания)

R9[Способы оплаты] (Название способа оплаты)

Вторая нормальная форма:

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

R1[Пассажиры] (Код пассажира (PK), ФИО, Телефон, Адрес электронной почты)

R2[Авиакомпании] (Код авиакомпании (PK), Название авиакомпании)

R3[Самолёты] (Код самолёта (PK), Код авиакомпании (FK), Модель, Количество мест, Часы налёта, Дата последнего техосмотра)

R4[Рейсы] (Код рейса (PK), Код города отправления (FK), Код аэропорта вылета (FK), Код города назначения (FK), Код аэропорта прилёта (FK), Код авиакомпании (FK), Код самолёта (FK), Дата вылета, Время вылета, Время в пути, Код класса обслуживания (FK), Стоимость билета)

R5[Аэропорты] (Код аэропорта (PK), Код города (FK), Название аэропорта, количество ВПП)

R6[Билеты] (Код билета (PK), Код пассажира (FK), Код рейса (FK), Место, Код способа оплаты (FK))

R7[Города] (Код города (PK), Название города)

R8[Классы обслуживания] (Код класса обслуживания (PK), Название класса обслуживания)

R9[Способы оплаты] (Код способа оплаты (PK), Название способа оплаты)

Третья нормальная форма:

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

R1[Пассажиры] (Код пассажира (PK), ФИО, Телефон, Адрес электронной почты)

R2[Авиакомпании] (Код авиакомпании (PK), Название авиакомпании)

R3[Самолёты] (Код самолёта (PK), Код авиакомпании (FK), Модель, Количество мест, Часы налёта, Дата последнего техосмотра)

R4[Рейсы] (Код рейса (PK), Код города отправления (FK), Код аэропорта вылета (FK), Код города назначения (FK), Код аэропорта прилёта (FK), Код авиакомпании (FK), Код самолёта (FK), Дата вылета, Время вылета, Время в пути, Код класса обслуживания (FK), Стоимость билета)

R5[Аэропорты] (Код аэропорта (PK), Код города (FK), Название аэропорта, количество ВПП)

R6[Билеты] (Код билета (PK), Код пассажира (FK), Код рейса (FK), Место, Код способа оплаты (FK))

R7[Города] (Код города (PK), Название города)

R8[Классы обслуживания] (Код класса обслуживания (PK), Название класса обслуживания)

R9[Способы оплаты] (Код способа оплаты (PK), Название способа оплаты)

После нормализации необходимо составить словарь данных, в котором будет указано:

  • Названия полей в базе данных

  • Тип данных и размер полей

  • Поле первичного ключа

  • Поле внешнего ключа

Таблица 1. Пассажиры (Passenger)

Название поля

Перевод

Тип(длина)

Ключ

Pas_id

Код пассажира

Number(5)

PK

FIO

ФИО

Varchar(80)

Phone

Телефон

Varchar(11)

Email

Адрес электронной почты

Varchar(50)

Таблица 2. Авиакомпании (Airline)

Название поля

Перевод

Тип(длина)

Ключ

Airl_id

Код авиакомпании

Number(5)

PK

Airl_name

Название авиакомпании

Varchar(50)

Таблица 3. Самолёты (Plane)

Название поля

Перевод

Тип(длина)

Ключ

Pla_id

Код самолёта

Number(5)

PK

Airl_id

Код авиакомпании

Number(5)

FK

Model

Модель

Varchar(20)

Seats

Количество мест

Number(5)

Fly_time

Часы налёта

Number(5)

Last_to

Дата последнего техосмотра

Date

Таблица 4. Рейсы (Flight)

Название поля

Перевод

Тип(длина)

Ключ

Fli_id

Код рейса

Number(5)

PK

Departure_id

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

Number(5)

FK

Dep_air_id

Код аэропорта вылета

Number(5)

FK

Destination_id

Код города назначения

Number(5)

FK

Des_air_id

Код аэропорта прилёта

Number(5)

FK

Airl_id

Код авиакомпании

Number(5)

FK

Pla_id

Код самолёта

Number(5)

FK

Departure_date

Дата вылета

Date

Departure_time

Время вылета

Varchar(10)

Way_time

Время в пути

Varchar(10)

Class_id

Код класса обслуживания

Number(5)

FK

Price

Стоимость билета

Number(7)

Таблица 5. Аэропорты (Airport)

Название поля

Перевод

Тип(длина)

Ключ

Airp_id

Код аэропорта

Number(5)

PK

City_id

Код города

Number(5)

FK

Airp_name

Название аэропорта

Varchar(30)

Runway_kol

Количество ВПП

Number(2)

Таблица 6. Билеты (Ticket)

Название поля

Перевод

Тип(длина)

Ключ

Tic_id

Код билета

Number(5)

PK

Pas_id

Код пассажира

Number(5)

FK

Fli_id

Код рейса

Number(5)

FK

Seat

Место

Varchar(3)

Pay_id

Код способа оплаты

Number(2)

FK

Таблица 7. Города (City)

Название поля

Перевод

Тип(длина)

Ключ

City_id

Код города

Number(5)

PK

City_name

Название города

Varchar(40)

Таблица 8. Классы обслуживания (Class)

Название поля

Перевод

Тип(длина)

Ключ

Class_id

Код класса обслуживания

Number(5)

PK

Class_name

Название класса обслуживания

Varchar(20)

Таблица 9. Способы оплаты (Payment)

Название поля

Перевод

Тип(длина)

Ключ

Pay_id

Код способа оплаты

Number(5)

PK

Pay_name

Название способа оплаты

Varchar(30)