Функциональная организация системы

Хотя возможны различные вариации построения систем, чаще всего используется трехуровневая архитектура: веб-браузер, какая-нибудь технология предоставления динамического веб-контента и база данных. Веб-браузер посылает запросы среднему уровню, который обслуживает их, производя запросы к базе данных, и представляя результаты в пользовательском интерфейсе (рис. 1).

Рис. 1 Архитектура технологии EJB

В данной курсовой работе требуется разработать ИС «Резервирование авиабилетов». Для создания информационной системы необходимо определиться со структурой базы данных (рис.2) и составить алгоритм работы приложения.

В базе данных содержится информация о трех сущностях системы: Самолеты (Aircraft), Рейсы (Flights), Бронь (Reservation).

Каждый самолет имеет идентификационный номер, наименование и число посадочных мест данной модели самолета.

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

Данные о забронированных билетах также хранятся на сервере, каждому клиенту, присваивается идентификационный номер его брони, идентификационный номер забронированного рейса, регистрируется ФИО клиента и количество билетов для резервирования.

Рис.2 Схема базы данных ИС «Резервирование авиабилетов»

1. Таблица Aircraft – содержит информацию о самолетах.

Атрибуты таблицы Aircraft:

· ID_Aircraft – идентификационный номер самолета.

· Name_Aircraft – название самолета.

· PassengerSeats – количество пассажирских мест.

Ограничения таблицы:

• PK_Aircraft: ID_Aircraft – первичный ключ таблицы

2. Таблица Flights – содержит информацию о рейсах авиакомпании.

Атрибуты таблицы Flights:

• ID_Flights – идентификационный номер рейса.

• Name_Flights – Название рейса.

• Timetable – Дата вылета.

• ID_Aircraft – идентификационный номер самолета.

• TicketsAvailable – осталось билетов.

Ограничения таблицы:

• PK_Flights: ID_Flights – первичный ключ таблицы.

• FK_Flights_Aircraft: ID_Aircraft – внешний ключ таблицы.

3. Таблица Reservation – содержит информацию о зарезервированных билетах.

Атрибуты таблицы Reservation:

• ID_Reservation – идентификационный номер рейса.

• FIO_Client – Название рейса.

• ID_Flights – Дата вылета.

• ReservedTickets – идентификационный номер самолета.

Ограничения таблицы:

• PK_Reservation: ID_Reservation – первичный ключ таблицы.

• FK_Reservation_Flights: ID_Flights – внешний ключ таблицы.


1.1 Скрипты создания БД

CREATE TABLE Aircraft

(ID_Aircraft NUMBER(8,2) NOT NULL,

Name_Aircraft NVARCHAR2(255) NOT NULL,

PassengerSeats NUMBER(8,2) NOT NULL

);

CREATE TABLE Flights

(

ID_Flights NUMBER(8,2) NOT NULL,

Name_Flights NVARCHAR2(255) NOT NULL,

Timetable DATE NOT NULL,

ID_Aircraft NUMBER(8,2) NOT NULL,

TicketsAvailable NUMBER(8,2) NULL

);

CREATE TABLE Reservation

(

ID_Reservation NUMBER(8,2) NOT NULL,

FIO_Client NVARCHAR2(255) NOT NULL,

ID_Flights NUMBER(8,2) NOT NULL,

ReservedTickets NUMBER(8,2) NULL

);

ALTER TABLE Aircraft ADD CONSTRAINT PK_Aircraft

PRIMARY KEY (ID_Aircraft)

USING INDEX;

ALTER TABLE Flights ADD CONSTRAINT PK_Flights

PRIMARY KEY (ID_Flights)

USING INDEX;

ALTER TABLE Reservation ADD CONSTRAINT PK_Reservation

PRIMARY KEY (ID_Reservation)

USING INDEX;

ALTER TABLE Flights ADD CONSTRAINT FK_Flights_Aircraft

FOREIGN KEY (ID_Aircraft) REFERENCES Aircraft (ID_Aircraft);

ALTER TABLE Reservation ADD CONSTRAINT FK_Reservation_Flights

FOREIGN KEY (ID_Flights) REFERENCES Flights (ID_Flights);

INSERT INTO Aircraft (ID_Aircraft,Name_Aircraft,PassengerSeats)

CREATE SEQUENCE aircraft_seq

START WITH 5

INCREMENT BY 1

NOMAXVALUE;

create or replace trigger aircraft_id_trg

before insert on aircraft

for each row

begin

if:new.ID_AIRCRAFT is null then

select aircraft_seq.nextval into:new.ID_AIRCRAFT from dual;

end if;

end;

CREATE SEQUENCE flights_seq

START WITH 5

INCREMENT BY 1

NOMAXVALUE;

create or replace trigger flights_id_trg

before insert on flights

for each row

begin

if:new.ID_FLIGHTS is null then

select flights_seq.nextval into:new.ID_FLIGHTS from dual;

end if;

end;

CREATE SEQUENCE reservation_seq

START WITH 5

INCREMENT BY 1

NOMAXVALUE;

create or replace trigger reservation_id_trg

before insert on reservation

for each row

begin

if:new.ID_RESERVATION is null then

select reservation_seq.nextval into:new.ID_RESERVATION from dual;

end if;

end;

INSERT INTO Aircraft (ID_Aircraft,Name_Aircraft,PassengerSeats)

VALUES (1,'Ilyushin Il-18',70);

INSERT INTO Aircraft (ID_Aircraft,Name_Aircraft,PassengerSeats)

VALUES (2,'Boeing 747-8',467);

INSERT INTO Aircraft (ID_Aircraft,Name_Aircraft,PassengerSeats)

VALUES (3,'Embraer 195',118);

INSERT INTO Aircraft (ID_Aircraft,Name_Aircraft,PassengerSeats)

VALUES (4,'Boeing 737-400',150);

INSERT INTO Flights (ID_Flights,Name_Flights,Timetable,ID_Aircraft,TicketsAvailable)

VALUES (1,'Moscow-Adler','01-06-2012',1,70);

INSERT INTO Flights (ID_Flights,Name_Flights,Timetable,ID_Aircraft,TicketsAvailable)

VALUES (2,'Frankfurt-Washington','15-06-2012',2,117);

INSERT INTO Flights (ID_Flights,Name_Flights,Timetable,ID_Aircraft,TicketsAvailable)

VALUES (3,'Yerevan-Sochi','02-07-2012',3,24);

INSERT INTO Flights (ID_Flights,Name_Flights,Timetable,ID_Aircraft,TicketsAvailable)

VALUES (4,'Krasnodar-Moscow','10-08-2012',4,56);

INSERT INTO Reservation (ID_Reservation,FIO_Client,ID_Flights,ReservedTickets)

VALUES (1,'Potapova Evgeniya Nikolaevna',1,2);

INSERT INTO Reservation (ID_Reservation,FIO_Client,ID_Flights,ReservedTickets)

VALUES (2,'Ponamoreva Olga Aleksandrovna',2,1);

INSERT INTO Reservation (ID_Reservation,FIO_Client,ID_Flights,ReservedTickets)

VALUES (3,'Kolesov Dmitriy Sergeevich',3,3);

INSERT INTO Reservation (ID_Reservation,FIO_Client,ID_Flights,ReservedTickets)

VALUES (4,'Nikolaeva Yuliya Alekseevna',4,2);

1.2 Схемы экранных форм

Рис. 2 Экранная форма №1 – Страница aircrafts.jspx

Рис. 3 Экранная форма №2 – Страница flights.jspx

Рис. 4 Экранная форма №3 – Страница reservations.jspx

1.3 Описание функций

Форма №1 - aircrafts.jspx разработанного приложения представлена в виде пяти последовательно размещаемых блоков (таблиц):

Таблица для вывода актуальных данных по самолетам авиакомпании. Это номер (id) и название (name) самолета, количество пассажирских мест.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: