- •Введение
- •Анализ разрешений и запретов на операции с табличными данными для различных пользователей.
- •Системный анализ предметной области
- •Описание предметной области
- •Описание входных документов для заполнения бд
- •Определение пользователей
- •Определение запросов
- •Определение выходных документов
- •Анализ сущностей и связей между ними: er–диаграмма
- •Нормализация отношений: схема бд
- •Запросы
- •Анализ разрешений и запретов на операции с табличными данными для различных пользователей
- •Проектирование пользовательского интерфейса
- •6.1 Реализация всех запросов через вызовы хранимых процедур
- •Хранимые процедуры для выдачи требуемых разрешений каждому пользователю
- •6.3 Триггеры для работы пользователей с таблицами базы данных
- •Обработка и визуализация данных
- •7.1 Обработка и визуализация данных инструментами языка программирования Python
- •Визуализация данных программными инструментами Excel
- •Заключение
- •Список использованных источников
- •Приложение а Листинг создания таблиц
- •Приложение б Листинг добавление данных в таблицы
- •Приложение в Скриншоты заполненных таблиц в бд
Описание входных документов для заполнения бд
Входными документами для заполнения БД являются: перечень названий стран и городов; перечень названий аэропортов; расписание с указанием времени и даты отправления, № рейса, пункта назначения и времени в пути; перечень наименований авиакомпаний, с которыми заключен договор; информация о самолетах данных авиакомпаний; список летного состава, предоставленный авиакомпанией для обслуживания рейсов; списки экипажей на конкретные рейсы; данные о пассажирах; финансовые документы с указанием стоимости полета; информация о забронированных местах.
Определение пользователей
В данной ИС будут присутствовать следующие пользователи:
менеджер по организации рейсов заключает договоры с авиакомпаниями;
кассир принимает наличные деньги и оформляет финансовые документы;
системный администратор имеет полное право доступа к БД, отвечает за её работу.
Определение запросов
Информация о пассажирах по данному вылету;
Список самолетов по годам выпуска в заданном интервале конкретной авиакомпании;
Список экипажа на данный рейс;
Проданные билеты по каждой авиакомпании за определенный период;
Забронированные места на пассажира;
Информация о рейсах в данный пункт назначения;
Свободные места на данный рейс и дату;
Написать еще три сложных запроса.
Определение выходных документов
Выходные документы: проданные билеты по каждой авиакомпании за месяц; проданные билеты по каждой авиакомпании за год; информация для оформления билета.
Анализ сущностей и связей между ними: er–диаграмма
Для выделенных ранее сущностей были заданы ключевые поля. Списки ключевых полей для сущностей Самолёты, Рейсы, Сотрудники, Билеты, Пассажиры представлены в таблице №9, таблице №10, таблице №11, таблице №12, таблице №13, таблице №14, таблице №15 соответственно.
Таблица №9 – Описание атрибутов сущности Авиакомпании
Ключевое поле |
Название |
Идентификатор |
Назначение |
ПК (первичный ключ) |
Код авиакомпании |
airline_id |
Ключевое поле, предназначенное для однозначной идентификации каждой записи в таблице. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждой авиакомпании. Это целое число. т.е. для идентификации каждой авиакомпании будет применятся не название самой авиакомпании, а определенный номер. Этот номер может быть случайным целым числом или счетчик по порядку. |
|
Название авиакомпании |
name |
|
|
Дата основания |
created |
|
|
Штаб-квартира |
hq |
|
Таблица №10 – Список ключевых полей для сущности Самолёты
Ключевое поле |
Название |
Идентификатор |
Назначение |
ПК (первичный ключ) |
ID самолёта |
plane_id |
Ключевое поле, предназначенное для однозначной идентификации каждой записи в таблице. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждому самолёту. Это целое число. т.е. для идентификации каждого самолёта будет применятся не тип самого самолёта, а определенный номер. Этот номер может быть случайным целым числом или счетчик по порядку. |
|
Тип самолёта |
type |
|
|
Год выпуска |
year |
|
|
Количество мест |
seats |
|
|
Фирма-производитель |
firm |
|
Таблица №11 – Список ключевых полей для сущности Сотрудники
Ключевое поле |
Название |
Идентификатор |
Назначение |
ПК (первичный ключ) |
ID сотрудника |
emp_id |
Ключевое поле, предназначенное для однозначной идентификации каждой записи в таблице. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждому сотруднику. Это целое число. т.е. для идентификации каждого сотрудника будет применятся не ФИО самого сотрудника, а определенный номер. Этот номер может быть случайным целым числом или счетчик по порядку. |
|
ФИО сотрудника |
name |
|
|
Должность |
pos |
|
|
Квалификация |
skill |
|
ВК (внешний ключ) |
Номер экипажа |
crew_id |
С помощью данного внешнего ключа будет определён экипаж, в который входит сотрудник. |
Таблица №12 – Список ключевых полей для сущности Рейсы
Ключевое поле |
Название |
Идентификатор |
Назначение |
ПК (первичный ключ) |
Номер рейса |
flight_id |
Ключевое поле, предназначенное для однозначной идентификации каждой записи в таблице. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждому рейсу. Это целое число. т.е. для идентификации каждого рейса будет применятся определенный номер. Этот номер может быть случайным целым числом или счетчик по порядку. |
|
Пункт отправления |
flight_dep_city |
|
|
Пункт прибытия |
flight_des_city |
|
|
Время вылета |
flight_dep_time |
|
|
Время в пути |
flight_time |
|
ВК (внешний ключ) |
ID самолёта |
plane_id |
С помощью данного внешнего ключа будет определён самолёт. |
ВК (внешний ключ) |
Код авиакомпании |
airline_id |
С помощью данного внешнего ключа будет определена авиакомпания. |
ВК (внешний ключ) |
Номер экипажа |
crew_id |
С помощью данного внешнего ключа будет определён экипаж, участвующий в рейсе. |
Таблица №13 – Список ключевых полей для сущности Билеты
Ключевое поле |
Название |
Идентификатор |
Назначение |
ПК (первичный ключ) |
Номер билета |
ticket_id |
Ключевое поле, предназначенное для однозначной идентификации каждой записи в таблице. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждому номеру билета. Это целое число. т.е. для идентификации каждого билета будет применятся определенный номер. Этот номер может быть случайным целым числом или счетчик по порядку. |
ВК (внешний ключ) |
Номер рейса |
flight_id |
С помощью данного внешнего ключа будет определён рейс. |
ВК (внешний ключ) |
ID пассажира |
pass_id |
С помощью данного внешнего ключа будет определён пассажир. |
|
Номер места |
seat |
|
|
Стоимость |
cost |
|
|
Дата продажи |
sale_date |
|
|
Дата бронирования |
book_date |
|
Таблица №14 – Список ключевых полей для сущности Пассажиры
Ключевое поле |
Название |
Идентификатор |
Назначение |
ПК (первичный ключ) |
ID пассажира |
pass_id |
Ключевое поле, предназначенное для однозначной идентификации каждой записи в таблице. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждому пассажиру. Это целое число. т.е. для идентификации каждого пассажира будет применятся не ФИО самого пассажира, а определенный номер. Этот номер может быть случайным целым числом или счетчик по порядку. |
|
ФИО пассажира |
name |
|
|
Пол |
gender |
|
|
Дата рождения |
birthday |
|
|
Серия/номер |
passport |
|
|
Гражданство |
nationality |
|
Таблица №15 – Описание атрибутов сущности Экипажи
Ключевое поле |
Название |
Идентификатор |
Назначение |
ПК (первичный ключ) |
Номер экипажа |
crew_id |
Ключевое поле, предназначенное для однозначной идентификации каждой записи в таблице. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждому номеру экипажа. Это целое число. т.е. для идентификации каждого экипажа будет применятся не перечисление сотрудников самого экипажа, а определенный номер. Этот номер может быть случайным целым числом или счетчик по порядку. |
Была построена ER-диаграмма предметной области, которая представлена на рисунке 1.
Рисунок 1 – ER-диаграмма предметной области