продажа авиабилетов. продаж авиабилетов. 1 Детально изучить и описать предметную область
Скачать 5.96 Mb.
|
Список использованной литературы ) Хелен Б. – Firebird. Руководство разработчика баз данных / Александр Бондарь - СПб: БХВ-Петербург, 2010. - 48 с. ) Кириллов В.В. Введение в реляционные базы данных / В. В. Кириллов, Г. Ю. Громов. – Спб.: БХВ-Петербург, 2009. – 464 с. Нормальная форма [Электронный ресурс]. https://ru.wikipedia.org/wiki/Нормальная_форма (дата обращения: 14.06.2021). 1 2 3 ) - URL: 1 9 Приложение А Создание таблицы «airlainer» createtableairlainer( airlainer_codeintprimary key, aircraft_model varchar (70) not null, allowed_places int not null ); Создание таблицы « board » create table board( board_number int primary key, airlainer_code int not null, foreign key (airlainer_code) references airlainer(airlainer_code) ); Создание таблицы « class » create table class( class_id int primary key, class_name varchar(50) not null ); Создание таблицы « board_has_class » create table board_has_class( class_id int not null, board_number int not null, places_in_class int not null, primary key(class_id, board_number), foreign key (class_id) references class(class_id), foreign key (board_number) references board(board_number) 2 0 ); Создание таблицы « passanger » create table passanger( pasport varchar(10) primary key, visa varchar(15), name varchar(80) not null, surname varchar(80) not null, patronymic varchar(80), birthday date not null ); Создание таблицы « city » create table city( city_code int primary key, city_name varchar(80) not null ); Создание таблицы « route » create table route( route_number int primary key, city_code_start int not null, city_code_end int not null, foreign key (city_code_start) references city(city_code), foreign key (city_code_end) references city(city_code) ); Создание таблицы « flight » create table flight( flight_number int primary key, flight_start time not null, 2 1 flight_end time not null, flight_start_date date not null, flight_end_date date not null, route_number int not null, board_number int not null, foreign key (route_number) references route(route_number), foreign key (board_number) references board(board_number) ); Создание таблицы «ticket» create table ticket( ticket_id int primary key, pasport varchar(10) not null, sit_place int not null, flight_number int not null, class_id int not null, price float not null, foreign key (flight_number) references flight(flight_number), foreign key (class_id) references class(class_id) ); Заполнение таблицы «airlainer» insert into airlainer values (737, 'Boeing 737', 750) (320, 'Airbus 320', 550) (777, 'Boeing 777', 320) Заполнение таблицы «board» insert into board values (10, 737) 2 2 (11, 737) (12, 777) (13, 320) Заполнение таблицы «class» insert into class values (0, 'Эконом') (1, 'Бизнес') Заполнение таблицы «board_has_class» insert into board_has_class values (0, 10, 500) (1, 10, 250) (1, 11, 550) (0, 12, 230) Заполнение таблицы «city» insert into city values (0, 'Москва') (1, 'Вашингтон') (2, 'Лондон') (3, 'Париж') (4, 'Прага') Заполнение таблицы «route» insert into route values (0, 0, 3) (1, 4, 3) (2, 2, 4) (3, 0, 1) 2 3 Заполнение таблицы «passanger» insert into passanger values ('8463526754', null, 'Petya', 'Cozurev', null, '30.01.1987') ('5426632352', '82746274626', 'Anya', 'Arbuzova', null, '26.05.1977') ('9583675823', '56578999213', 'Viktor', 'Barabanov', 'Vitalievich', 16.09.1998') ' Заполнение таблицы «flight» insert into flight values (0, '10:00:00', '15:00:00', '17.05.2019', '17.05.2019', 1, 10) (1, '23:00:00', '02:00:00', '05.01.2019', '06.01.2019', 3, 13) Заполнение таблицы «ticket » insert into ticket values (0, '5426632352', 44, 0, 1, 1000.99) (1, '5426632352', 45, 0, 1, 1000.99) (2, '8463526754', 230, 0, 1, 800.00) (3, '9583675823', 229, 0, 1, 800.00) 2 4 Приложение Б Вывод всех бортов select board.board_number, airlainer.aircraft_model from board, airlainer where board.airlainer_code = airlainer.airlainer_code Вывод всех билетов и данных пассажиров, оформивших билет select ticket.ticket_id, ticket.flight_number, class.class_name, ticket.sit_place, passanger.surname, passanger.name from ticket left join passanger on ticket.pasport = passanger.pasport left join class on class.class_id = ticket.class_id Вывод рейсов select distinct flight.flight_number, flight.flight_start, flight.flight_start_date, airlainer.aircraft_model, flight.route_number from flight, board, airlainer, route, city where flight.board_number = board.board_number and board.airlainer_code = airlainer.airlainer_code Вывод всех классов для всех самолетов select airlainer.aircraft_model, board.board_number, class.class_name, board_has_class.places_in_class from board_has_class inner join class on board_has_class.class_id = class.class_id inner join board on board_has_class.board_number = board.board_number inner join airlainer on board.airlainer_code = airlainer.airlainer_code Вывод всех стартовых точек маршрутов select route.route_number, city.city_name from route inner join city on city.city_code = route.city_code_start 2 5 Приложение В Триггер, проверяющий, что в самолете не может быть больше мест, чем максимально установленное кол-во производителем create exception |