1 Клиентское приложение для информационной системы «Аэропорт»
1.1 Постановка задачи
Необходимо спроектировать базу данных для продаж авиабилетов. Для работы сотрудников с базой данных необходимо разработать клиент-серверное приложение. База данных должна содержать данные о самолетах, типах самолетов, авиакомпаниях, сотрудниках, пассажирах, рейсах и билетах.
Выделим базовые сущности предметной области «Аэропорт»:
1) авиакомпания. Атрибутами являются: код авиакомпании, название;
2) типы самолетов. Атрибуты сущности – код типа, наименование, назначение;
3) самолеты. Содержит связь между типами самолетов и авиакомпанией. Атрибуты – код самолёта, наименование, вместимость, грузоподъемность, код типа, дата выпуска, налётано часов, дата последнего технического осмотра, код авиакомпании;
4) сотрудники. Атрибуты – код сотрудника, фамилия, имя, отчество, адрес, телефон, паспортные данные;
5) пассажиры. Атрибуты сущности – код пассажира, фамилия, имя, отчество, паспортные данные;
6) рейсы. Содержит связь между самолетами. Атрибуты – код рейса, дата, время вылета, откуда, куда, код самолёта, время полёта;
7) билеты. Содержит связь между сотрудниками, пассажирами, рейсами. Атрибутами являются – код билета, код пассажира, код рейса, код сотрудника, место, цена.
1.2 Выбор инструментальных средств
Разработка данного клиентского приложения осуществляется на языке Delphi в среде программирования Borland Delphi 7 Enterprise Edition.
Определим основные критерии, по которым производился выбор среды программирования для создания приложения:
- минимальные затраты на разработку приложения;
- удобство в работе. Для этого программа должна иметь современный и удобный интерфейс пользователя;
- работа приложения должна выполнять с максимально возможной скоростью;
- совместимость исходного кода программы с операционной системой (ОС) Windows.
В ходе следующего анализа имеющихся средств программирования на основании перечисленных критериев была выбрана система визуального программирования Borland Delphi 7.
Среда визуального программирования Delphi 7.0 является мощным средством для качественной и быстрой разработки программ для ОС Windows. Имеющаяся библиотека визуальных компонентов позволяет создать интерфейс пользователем за считанные минуты. Объектно-ориентированный язык Object Pascal, положенный в основу Delphi, является расширением языков Borland Pascal и Turbo Pascal фирмы Borland и нашел в себе отражение новых веяний в программировании. Delphi представляет собой открытую систему, позволяя добавлять в систему свои компоненты, модифицировать уже имеющиеся стандартные компоненты благодаря тому, что представлены их исходные коды [3]. Среда визуального программирования Delphi 7.0 имеет достаточно большую скорость компиляции и выполнения программ, что также делает её очень удобной в использовании.
Следовательно, выбранная среда программирования удовлетворяет поставленным требованиям.
1.3 Анализ информационных задач и круга пользователей системы
Аэропорт является предприятием, которое занимается перевозкой пассажиров, продажей билетов, обслуживанием и предполетной подготовкой самолетов, а также контролем за безопасностью перевозок. В связи с этим необходимо учесть все особенности разработки приложения для данного типа предприятий, а именно:
- обеспечить безопасность доступа к данным и разграничение по правам доступа;
- для получения пассажирами информации создать приложение, через которое невозможно получить доступ к изменению информации в ИС;
- обеспечить возможность хранения информации о пассажирах, самолетах, рейсах, типах самолетов, авиакомпаниях, сотрудниках, билетах;
- разработать удобный интерфейс;
- реализовать возможность продажи билетов.
Клиентское приложение информационной системы «Аэропорт» создается для обслуживания следующих групп пользователей:
1) пассажиры;
2) диспетчер;
3) сотрудники отдела кадров;
4) сотрудники отдела продаж.
Пользователями приложения являются как сотрудники аэропорта, так и пассажиры. Пассажирам необходимо получить информацию по рейсам. Диспетчеру необходимо контролировать и редактировать информацию по рейсам, самолетам и пунктам прибытия и назначения. Сотрудники отдела кадров занимаются кадровой структурой аэропорта, приемом и увольнением сотрудников. Отдел продаж обеспечивает продажу и возврат билетов, а также редактирование ошибочно введенной информации.
В связи с этим использование ИС обязательно и обеспечивает бесперебойное и оптимальное функционирование при непрерывной работе аэропорта.
Графически использование клиентского приложения информационной системы «Аэропорт» сотрудниками можно представить в виде диаграммы развертывания (рисунок 1).
Рисунок 1 – Диаграмма развертывания
К узлу разрабатываемого приложения ИС «Аэропорт» подключается сервер базы данных «Airport». К приложению также подключаются компьютеры пассажиров, диспетчера, сотрудников отдела продаж и отдела кадров.
1.4 Функциональные возможности
Разрабатываемое клиентское приложение ИС «Аэропорт» должно предоставлять пользователю удобный интерфейс, позволяющий:
1) добавлять новые записи в БД;
2) редактировать данные;
3) удалять записи из БД;
4) просматривать записи;
5) осуществлять поиск записей;
6) производить сортировку;
7) составлять отчеты;
8) закрывать приложение.
Для представления всех основных функций интерфейса была смоделирована диаграмма вариантов использования, представленная на рисунке 2 и в приложении А на рисунке А.1.
Рисунок 2 – Диаграмма вариантов использования
В диаграмме вариантов использования был выделен актер «Приложение», имеющий отношения ассоциации со следующими вариантами использования:
- «Подключиться в базе данных»;
- «Редактировать данные», имеет отношение – включение с вариантом использования «Выбрать данных для редактирования»;
- «удалить записи из БД»;
- «просмотреть записи» имеет отношение – включение с вариантом использования «Выбрать таблицу»;
- «Осуществить поиск данных» имеет отношение – включение с вариантом использования «Выбрать данных для поиска»;
- «Сортировать данные»;
- «Сохранить изменения».
Вариант использования «Сортировать данные» имеет связь – обощение с вариантами использования: «Сортировать по фамилии», «Сортировать по дате вылета», «Сортировать по типу».
1.5 Логическое проектирование базы данных информационной системы «Аэропорт»
Базу данных с указанием первичных ключей и связями между таблицами можно представить графически в виде диаграммы классов. Она представлена на рисунке 3 и в приложении А на рисунке А.3.
Рисунок 3 – Диаграмма классов базы данных
Диаграмма классов БД включает в себя 7 сущностей: авиакомпания, самолеты, типы самолетов, рейсы, пассажиры, сотрудники, билеты. В базе данных используется связь между таблицами «один-ко-многим», это значит, что одной записи родительской таблицы может соответствовать несколько записей дочерней.
1.6 Выработка ограничений
В таблице 1 приведены названия, идентификаторы сущностей и их назначение.
Таблица 1 – Таблица сущностей
Название сущности | Идентификатор сущности | Назначение сущности |
Авиакомпания | Airline | Содержит сведения об авиакомпании |
Самолёты | A irplane | Содержит сведения о самолётах |
Рейсы | Flights | Содержит сведения о рейсах |
Типы самолётов | Aircraft_ T ypes | Содержит сведения о типах самолётов |
Сотрудники | Staff | Содержит сведения о сотрудниках |
Пассажиры | Passengers | Содержит сведения о пассажирах |
Билеты | Tickets | Содержит сведения о билетах |
Для каждой сущности базы данных в таблицах 2-8 приведены описания атрибутов.
Таблица 2 – Сущность «Билеты»
Идентификатор столбца | Содержательное описание | Тип данных | Размерность | Область допустимых значений | Возможность значения NULL | Роль | Пример | Примечание |
ID_Ticket | Код билета | целый | 6 | 000001-999999 | нет | PK | ||
ID_Passenger | Код пассажира | целый | 4 | 0001-9999 | нет | FK | 4712 | |
ID_Flight | Код рейса | целый | 4 | 0001-9999 | нет | FK | 254 | |
ID_Staff | Код сотрудника | целый | 3 | 001-999 | нет | FK | 189 | |
Place | Место | символьный | 4 | ‘A-Z’, ‘0-9‘ | нет | 4A | ||
Price | Цена | целый | 5 | 00001-99999 | нет | 10500 |
Таблица 3 – Сущность «Пассажиры»
Идентификатор столбца | Содержательное описание | Тип данных | Размерность | Область допустимых значений | Возможность значения NULL | Роль | Пример | Примечание |
ID_Passenger | Код пассажира | целый | 4 | 0001-9999 | нет | PK | 5478 | |
Surname | Фамилия | символьный | 30 | ‘А-я’, ‘-‘ | нет | Фокин | ||
First_Name | Имя | символьный | 15 | ‘А-я’ | нет | Александр | ||
Last_Name | Отчество | символьный | 20 | ‘А-я’ | да | Владимирович | ||
Passport | Паспортные данные | символьный | 12 | ‘0-9’, ‘ ’ | нет | AK | 14 85 474215 |
Таблица 4 – Сущность «Самолёты»
Идентификатор столбца | Содержательное описание | Тип данных | Размерность | Область допустимых значений | Возможность значения NULL | Роль | Пример | Примечание |
ID_Airplane | Код самолёта | целый | 4 | 0001-9999 | нет | PK | 1275 | |
Name_Airplane | Наименование | символьный | 45 | ‘А-я’, ‘-‘, ‘0-9’, ‘A-z’, ‘ ’ | нет | Airbus А320 | ||
Capacity | Вместимость | целый | 3 | 001-999 | нет | 247 | ||
Carrying | Грузоподъемность | вещественный | 2 | 01-99 | нет | 10 | в тоннах | |
ID_Type | Код типа | целый | 3 | 001-999 | нет | FK | 544 | |
Naletano | Налётано часов | вещественный | 4 | 0001-9999 | нет | 147 | ||
Service_Date | Дата последнего т/о | дата/время | 8 | 01.01.2018 – 31.12.2030 | да | 12.05.2018 | ||
ID_Airline | Код авиакомпании | целый | 3 | 001-999 | нет | FK | 578 |
Таблица 5 – Сущность «Рейсы»
Идентификатор столбца | Содержательное описание | Тип данных | Размерность | Область допустимых значений | Возможность значения NULL | Роль | Пример | Примечание |
ID_Flight | Код рейса | целый | 4 | 0001-9999 | нет | PK | 657 | |
Flight_Date | Дата | дата/время | 8 | 01.01.2021 – 31.12.2030 | нет | 16.02.2021 | ||
Departure_Time | Время вылета | дата/время | 6 | 00:00:00 – 23:59:59 | нет | 11:25:00 | ||
From_Flight | Откуда | символьный | 45 | ‘А-я’, ‘-‘, ‘ ’ | нет | Лондон | ||
To_Flight | Куда | символьный | 45 | ‘А-я’, ‘-‘, ‘ ’ | нет | Москва | ||
ID_Airplane | Код самолёта | целый | 4 | 0001-9999 | нет | FK | 1275 | |
Flight_Time | Время полёта | числовой | 5 | 000.00-999.99 | нет | 12.10 | часы, минуты |
Таблица 6 – Сущность «Авиакомпания»
Идентификатор столбца | Содержательное описание | Тип данных | Размерность | Область допустимых значений | Возможность значения NULL | Роль | Пример | Примечание |
ID_Airline | Код авиакомпании | целый | 3 | 001-999 | нет | PK | 148 | |
Name_Airline | Название | символьный | 45 | ‘А-я’, ‘-‘, ‘ ’ | нет | Аэрофлот |
Таблица 7 – Сущность «Типы самолётов»
Идентификатор столбца | Содержательное описание | Тип данных | Размерность | Область допустимых значений | Возможность значения NULL | Роль | Пример | Примечание |
ID_Type | Код типа | целый | 3 | 001-999 | нет | PK | 544 | |
Name_Type | Наименование | символьный | 45 | ‘А-я’, ‘-‘, ‘ ’ | нет | Средней протяженности | ||
Purpose | Назначение | символьный | 45 | ‘А-я’, ‘-‘, ‘ ’ | нет | Пассажирский |
Таблица 8 – Сущность «Сотрудники»
Идентификатор столбца | Содержательное описание | Тип данных | Размерность | Область допустимых значений | Возможность значения NULL | Роль | Пример | Примечание |
ID_Staff | Код сотрудника | целый | 3 | 001-999 | нет | PK | 312 | |
Surname | Фамилия | символьный | 30 | ‘А-я’, ‘-‘ | нет | Айвазова | ||
First_Name | Имя | символьный | 15 | ‘А-я’ | нет | Александра | ||
Last_Name | Отчество | символьный | 20 | ‘А-я’ | да | Дмитриевна | ||
Address_Staff | Адрес | символьный | 100 | ‘А-я’, ‘-‘, ‘,’, ‘.’, ‘0-9’ | нет | г. Пенза, ул. Калинина, д. 125, кв. 46 | ||
Telephone | Телефон | символьный | 12 | ‘0-9’, ‘+’ | нет | +79875287415 | ||
Passport | Паспортные данные | символьный | 12 | ‘0-9’, ‘ ’ | нет | AK | 48 15 471245 |