100% found this document useful (1 vote)
2K views37 pages

Report Airport Management System

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 37

2016

Airport Management
System

CS 6360.002 FINAL PROJECT


ANKITA PATIL (asp160730)
KARAN MOTANI (kbm160230)

INSTRUCTOR:
PROF. NURCAN YURUK

THE UNIVERSITY OF TEXAS AT DALLAS | FALL 2016

Table of Contents
1. PROJECT DESCRIPTION .................................................................................................... 2
1.1 Requirements of the system: ................................................................................................. 2
2. ENTITIES .......................................................................................................................... 5
3. MAPPING ER DIAGRAM TO RELATIONAL SCHEMA ........................................................... 6
4. ER/EER DIAGRAM ............................................................................................................ 7
5. RELATIONAL SCHEMA ...................................................................................................... 8
6. NORMALIZATION RULES ON DATABASE ........................................................................... 9
7. NORMALISED RELATIONAL SCHEMA ............................................................................... 10
8. SQL ................................................................................................................................. 11
9. STORED PROCEDURE ...................................................................................................... 24
10. TRIGGERS .................................................................................................................... 29
11. BUSINESS RULES ......................................................................................................... 35

1. PROJECT DESCRIPTION

Domain: Airport Management System

1.1 Requirements of the system:


Ø The system is based on airport management. Airport management system primarily deals with
management of airport, airlines and passengers. The system provides broad overview of
underlying operational factors that influence the airport management.
Ø The database system has the data of all commercial service airports.
Ø An airport is located in a city.
Ø All International airlines operating through various countries across the world have their offices
located in all major cities and airports they cover. Hence, an airport may have many airline
offices.
Ø Every airline is identified uniquely by an airline code. Airline code is a two-letter airline
designator. Airline also has three-digit code which is printed on an air ticket.

Airline Code

Airline Name IATA Airline code/IATA Designator 3-DIGIT CODE


American Airlines AA 1
Air India Limited AI 98
Lufthansa LH 220
British Airways BA 125
Qatar Airways QR 157
Jet Airways 9W 589
Emirates EK 176
Ethiad Airways EY 607

Reference: http://www.iata.org/publications/Pages/code-search.aspx

Ø Airline companies serve flights.
Ø Every flight is uniquely identified by a flight code. Flight code is a combination of an airline code
and four-digit number.
o Flight takes off from one airport and lands on another airport. Therefore, most
important aspect of a flight is, its source and destination. Source and destination
airports are identified using an airport's IATA code.
Ø International Air Transport Airport code is simply a location identifier. IATA code is a three-letter
code designating many airports across the world. These codes are prominently displayed on
baggage tags and printed on an air ticket.

Airport Code

Airport Name IATA Airport code


Louisville International Airport SDF
Chandigarh International Airport IXC
Dallas/Fort Worth International Airport DFW
Indira Gandhi International Airport DEL
Chhatrapati Shivaji International Airport BOM
San Francisco International Airport SFO
Frankfurt Airport FRA
George Bush Intercontinental Airport IAH
John F. Kennedy International Airport JFK
Tampa International Airport TPA

Reference: http://www.iata.org/publications/Pages/code-search.aspx
o Flight has an arrival time, departure time, duration. Flight has three types of classes-
business, economy and first class.
o Flight can be of two types such non-stop flight and a connecting flight.
o Connecting flight is a flight which takes intermediate stop and changes a flight possibly
change of an airline. But we are assuming that connecting flight does not change a flight
that is at each stop, after layover time gets over, passengers aboard the same flight
Ø Flight serves passengers. Flight carries passengers from source to destination.
Ø A passenger is uniquely identified by a passenger id and a passport number.
o Every passenger has details such as name, address, age, sex, phone.
Ø For a passenger to travel by a flight, he needs a ticket. A ticket or air ticket is used to confirm
that an individual has reserved a seat on a flight. With the ticket, a passenger is allowed to board
the flight.
o An air ticket has information such as the passenger's name, the issuing airline, ticket
number, source, destination, journey date, seat no, class, fare.
o Ticket number is the combination of airline's 3-digit code, 4-digit form number, 6-digit
serial number.

Ø Hence, depending on airline, source, destination, journey date and most importantly class,
which a passenger chooses fare or price of an air ticket is determined.
Ø A passenger can book one or multiple tickets. The day on which he books an air ticket is a
booking date. Similarly, a passenger can cancel one or multiple tickets. The day on which he
cancels an air ticket is cancellation date and there will be a surcharge that a passenger has to
pay after cancelling a ticket.
Ø Every airport has employees working for it.
o Every employee is identified by SSN. Every employee has an information such name,
address, phone, age, sex, salary.
o Employees in the role of administrative support, engineer, traffic controller and airport
authority work at the airport.
o Every airline needs administrative support staff to keep the office running smoothly. The
different positions include secretaries, data entry workers, receptionists,
communications and PR specialists and human resources department.
o There are different types of engineers who work specifically with information
technologies, electronics, flight structure, environmental regulations, etc.
o Traffic Monitor works in different shifts such as day or night.
o There are different positions that airport authorities might work at such as manager,
attendee, assistant, pilot, etc.
Ø Employees working in the role of administrative support may help passengers with various tasks
such as booking a flight ticket, solving passenger's questions, etc.

Assumptions:

Ø We are not considering privately managed airports. We are only considering publicly owned
airports.
Several Categories of airports:

(1) Commercial Service airport

These are publicly owned airports that serve aircrafts which provide scheduled
passenger service.

(2) Cargo Service airports

These airports serve aircrafts carrying cargo only

Reference: http://www.noisequest.psu.edu/aboutairports-typesofairports.html

Ø The system is designed only for international flights.


Ø A city has at most one international airport.
Ø For Connecting flights, flight and airline remains same at layover stops
Ø There are different types of jobs available at the airport. For simplicity our system considers a
few jobs only.

2. ENTITIES

CITY

CNAME STATE COUNTRY


AIPORT

AP_NAME STATE COUNTRY


AIRLINE

AIRLINEID AL_NAME THREE_DIGIT_CODE


FLIGHT

FLIGHT_CODE SOURCE DESTINATION ARRIVAL DEPARTURE STATUS DURATION FLIGHTTYPE


LAYOVER_TIME NO_OF_STOPS

PASSENGER

PID PASSPORTNO FNAME M LNAME ADDRESS PHONE AGE SEX


TICKET

TICKET_NUMBER SOURCE DESTINATION DATE_OF_TRAVEL SEATNO CLASS PRICE


EMPLOYEE

SSN FNAME M LNAME ADDRESS PHONE AGE SEX JOBTYPE SALARY


3. MAPPING ER DIAGRAM TO RELATIONAL SCHEMA



Figure 1: Airport Management System ER Diagram

4. ER/EER DIAGRAM

ER diagram contains following relationships

Name of the
Entity 1 Entity 2 Cardinality
Relationship

City has Airport 1:1


Airport contains Airline m : n
Airport has Employee 1 : n
Airline has Flight 1 : n
Flight carries Passengers 1 : n
Employee serves Passengers m : n
Passenger books Ticket 1 : n
Passenger cancels Ticket 1 : n

Type of the binary relationship Relationships in the system


one-to-one (1 A city has only one airport.
(1) An airline has multiple flights, that is many flights
belong to the same airline company.
one-to-many (2) A flight carries many passengers.
(3) A passenger can book one or more tickets.
(4) A passenger can cancel one or more tickets.
All International airlines operating through various
countries across the world have their offices located
many-to-many
in all major cities and airports they cover. Hence, an
airport may have many airline offices.

5. RELATIONAL SCHEMA

6. NORMALIZATION RULES ON DATABASE


FUNCTIONAL DEPENDECIES
PASSPORTNO -> FNAME, M, LNAME, ADDRESS, PHONE, AGE, SEX Violates 2NF
PID -> FLIGHT_CODE Violates 2NF
DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS -> PRICE Violates 3NF
DATE_OF_CANCELLATION -> SURCHARGE Violates 3NF
JOBTYPE -> SALARY Violates 3NF

Normalizing tables into 3NF

TABLES AFTER NORMALIZATION



CITY (CNAME, STATE, COUNTRY)

AIRPORT (AP_NAME, STATE, COUNTRY, CNAME)

AIRLINE (AIRLINEID, AL_NAME, THREE_DIGIT_CODE)

CONTAINS (AIRLINEID, AP_NAME)

FLIGHT (FLIGHT_CODE, SOURCE, DESTINATION, ARRIVAL, DEPARTURE, STATUS, DURATION, FLIGHTTYPE,
LAYOVER_TIME, NO_OF_STOPS, AIRLINEID)

PASSENGER1 (PID, PASSPORTNO)

PASSENGER2(PASSPORTNO, FNAME, M, LNAME, ADDRESS, PHONE, AGE, SEX)

PASSENGER3 (PID, FLIGHT_CODE)

TICKET1 (TICKET_NUMBER, SOURCE, DESTINATION, DATE_OF_BOOKING, DATE_OF_TRAVEL, SEATNO,
CLASS, DATE_OF_CANCELLATION, PID, PASSPORTNO)

TICKET2 (DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS, PRICE)

TICKET3 (DATE_OF_CANCELLATION, SURCHARGE)

EMPLOYEE1 (SSN, FNAME, M, LNAME, ADDRESS, PHONE, AGE, SEX, JOBTYPE, ASTYPE, ETYPE, SHIFT,
POSITION, AP_NAME)

EMPLOYEE2(JOBTYPE, SALARY)

SERVES (SSN, PID, PASSPORTNO)

7. NORMALISED RELATIONAL SCHEMA


10

8. SQL

-- Inserting Table: CITY--



CREATE TABLE CITY
(CNAME VARCHAR2(15) NOT NULL,
STATE VARCHAR2(15),
COUNTRY VARCHAR(30),
PRIMARY KEY(CNAME));

-- Inserting values of Table: CITY--

INSERT INTO CITY (CNAME, STATE, COUNTRY) VALUES('Louisville','Kentucky','United States');
INSERT INTO CITY (CNAME, STATE, COUNTRY) VALUES ('Chandigarh','Chandigarh','India');
INSERT INTO CITY (CNAME, STATE, COUNTRY) VALUES ('Fort Worth','Texas','United States');
INSERT INTO CITY (CNAME, STATE, COUNTRY) VALUES('Delhi','Delhi','India');
INSERT INTO CITY (CNAME, STATE, COUNTRY) VALUES('Mumbai','Maharashtra','India');
INSERT INTO CITY (CNAME, STATE, COUNTRY) VALUES('San Francisco', 'California', 'United States');
INSERT INTO CITY (CNAME, STATE, COUNTRY) VALUES('Frankfurt','Hesse','Germany');
INSERT INTO CITY (CNAME, STATE, COUNTRY) VALUES('Houston','Texas','United States');
INSERT INTO CITY (CNAME, STATE, COUNTRY) VALUES('New York City','New York','United States');
INSERT INTO CITY (CNAME, STATE, COUNTRY) VALUES('Tampa', 'Florida', 'United States');


-- Inserting Table: AIRPORT--

CREATE TABLE AIRPORT
(AP_NAME VARCHAR2(100) NOT NULL,
STATE VARCHAR2(15),
COUNTRY VARCHAR(30),
CNAME VARCHAR2(15),
PRIMARY KEY(AP_NAME),
FOREIGN KEY(CNAME) REFERENCES CITY(CNAME) ON DELETE CASCADE);

--Inserting values for Table: AIRPORT--

INSERT INTO AIRPORT (AP_NAME, STATE, COUNTRY, CNAME) VALUES('Louisville International
Airport','Kentucky','United States','Louisville');


INSERT INTO AIRPORT (AP_NAME, STATE, COUNTRY, CNAME) VALUES('Chandigarh International
Airport','Chandigarh','India','Chandigarh');


INSERT INTO AIRPORT (AP_NAME, STATE, COUNTRY, CNAME) VALUES('Dallas/Fort Worth International
Airport','Texas','United States','Fort Worth');

11

INSERT INTO AIRPORT (AP_NAME, STATE, COUNTRY, CNAME) VALUES('Indira GandhiInternational


Airport','Delhi','India','Delhi');


INSERT INTO AIRPORT (AP_NAME, STATE, COUNTRY, CNAME) VALUES('Chhatrapati Shivaji International
Airport','Maharashtra','India','Mumbai');


INSERT INTO AIRPORT (AP_NAME, STATE, COUNTRY, CNAME) VALUES('San Francisco International
Airport','California', 'United States','San Francisco');


INSERT INTO AIRPORT (AP_NAME, STATE, COUNTRY, CNAME) VALUES('Frankfurt
Airport','Hesse','Germany','Frankfurt');


INSERT INTO AIRPORT (AP_NAME, STATE, COUNTRY, CNAME) VALUES('George Bush Intercontinental
Airport','Texas','United States','Houston');


INSERT INTO AIRPORT (AP_NAME, STATE, COUNTRY, CNAME) VALUES('John F. Kennedy International
Airport','New York','United States','New York City');


INSERT INTO AIRPORT (AP_NAME, STATE, COUNTRY, CNAME) VALUES('Tampa International
Airport','Florida', 'United States','Tampa');


-- Inserting Table: AIRLINE--

CREATE TABLE AIRLINE
(AIRLINEID VARCHAR(3) NOT NULL,
AL_NAME VARCHAR2(50),
THREE_DIGIT_CODE VARCHAR(3),
PRIMARY KEY(AIRLINEID));

-- Inserting values for Table: AIRLINE --

INSERT INTO AIRLINE (AIRLINEID, AL_NAME, THREE_DIGIT_CODE) VALUES('AA','American Airlines','001');
INSERT INTO AIRLINE (AIRLINEID, AL_NAME, THREE_DIGIT_CODE) VALUES('AI','Air India Limited','098');
INSERT INTO AIRLINE (AIRLINEID, AL_NAME, THREE_DIGIT_CODE) VALUES('LH','Lufthansa', '220');
INSERT INTO AIRLINE (AIRLINEID, AL_NAME, THREE_DIGIT_CODE) VALUES('BA','British Airways','125');
INSERT INTO AIRLINE (AIRLINEID, AL_NAME, THREE_DIGIT_CODE) VALUES('QR','Qatar Airways','157');
INSERT INTO AIRLINE (AIRLINEID, AL_NAME, THREE_DIGIT_CODE) VALUES('9W','Jet Airways','589');
INSERT INTO AIRLINE (AIRLINEID, AL_NAME, THREE_DIGIT_CODE) VALUES('EK','Emirates','176');
INSERT INTO AIRLINE (AIRLINEID, AL_NAME, THREE_DIGIT_CODE) VALUES('EY','Ethiad Airways','607');

12

-- Inserting Table: CONTAINS--


CREATE TABLE CONTAINS
(AIRLINEID VARCHAR(3) NOT NULL,
AP_NAME VARCHAR2(100) NOT NULL,
PRIMARY KEY(AIRLINEID, AP_NAME),
FOREIGN KEY(AIRLINEID) REFERENCES AIRLINE(AIRLINEID) ON DELETE CASCADE,
FOREIGN KEY(AP_NAME) REFERENCES AIRPORT(AP_NAME) ON DELETE CASCADE);

-- Inserting values into Table: CONTAINS--

INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('AA','Louisville International Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('AA','John F. Kennedy International Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('AA','George Bush Intercontinental Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('AA','San Francisco International Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('AA','Tampa International Airport');

INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('AI','Chandigarh International Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('AI','Dallas/Fort Worth International Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('AI','Indira GandhiInternational Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('AI','Chhatrapati Shivaji International Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('AI','George Bush Intercontinental Airport');

INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('LH','Chhatrapati Shivaji International Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('LH','Frankfurt Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('LH','John F. Kennedy International Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('LH','San Francisco International Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('LH','Dallas/Fort Worth International Airport');

INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('BA','John F. Kennedy International Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('BA','Chhatrapati Shivaji International Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('BA','Chandigarh International Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('BA','Frankfurt Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('BA','San Francisco International Airport');

INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('QR','Chhatrapati Shivaji International Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('QR','Dallas/Fort Worth International Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('QR','John F. Kennedy International Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('QR','Tampa International Airport');
INSERT INTO CONTAINS (AIRLINEID, AP_NAME) VALUES('QR','Louisville International Airport');


-- Inserting Table: FLIGHT--
CREATE TABLE FLIGHT
(FLIGHT_CODE VARCHAR(10) NOT NULL,
SOURCE VARCHAR(3),
DESTINATION VARCHAR(3),
ARRIVAL VARCHAR2(10),
DEPARTURE VARCHAR2(10),

13

STATUS VARCHAR(10),
DURATION VARCHAR2(30),
FLIGHTTYPE VARCHAR(10),
LAYOVER_TIME VARCHAR2(30),
NO_OF_STOPS INT,
AIRLINEID VARCHAR(3),
PRIMARY KEY(FLIGHT_CODE),
FOREIGN KEY(AIRLINEID) REFERENCES AIRLINE(AIRLINEID) ON DELETE CASCADE);

-- Inserting values into Table: FLIGHT—

INSERT INTO FLIGHT(FLIGHT_CODE, SOURCE, DESTINATION, ARRIVAL, DEPARTURE, STATUS, DURATION,
FLIGHTTYPE, LAYOVER_TIME, NO_OF_STOPS, AIRLINEID)
VALUES('AI2014','BOM','DFW','02:10','03:15','On-time','24hr','Connecting',3,1,'AI');


INSERT INTO FLIGHT(FLIGHT_CODE, SOURCE, DESTINATION, ARRIVAL, DEPARTURE, STATUS, DURATION,
FLIGHTTYPE, LAYOVER_TIME, NO_OF_STOPS, AIRLINEID)
VALUES('QR2305','BOM','DFW','13:00','13:55','Delayed','21hr','Non-stop',0,0,'QR');


INSERT INTO FLIGHT(FLIGHT_CODE, SOURCE, DESTINATION, ARRIVAL, DEPARTURE, STATUS, DURATION,
FLIGHTTYPE, LAYOVER_TIME, NO_OF_STOPS, AIRLINEID)
VALUES('EY1234','JFK','TPA','19:20','20:05','On-time','16hrs','Connecting',5,2,'EY');


INSERT INTO FLIGHT(FLIGHT_CODE, SOURCE, DESTINATION, ARRIVAL, DEPARTURE, STATUS, DURATION,
FLIGHTTYPE, LAYOVER_TIME, NO_OF_STOPS, AIRLINEID)
VALUES('LH9876','JFK','BOM','05:50','06:35','On-time','18hrs','Non-stop',0,0,'LH');


INSERT INTO FLIGHT(FLIGHT_CODE, SOURCE, DESTINATION, ARRIVAL, DEPARTURE, STATUS, DURATION,
FLIGHTTYPE, LAYOVER_TIME, NO_OF_STOPS, AIRLINEID)
VALUES('BA1689','FRA','DEL','10:20','10:55','On-time','14hrs','Non-stop',0,0,'BA');


INSERT INTO FLIGHT(FLIGHT_CODE, SOURCE, DESTINATION, ARRIVAL, DEPARTURE, STATUS, DURATION,
FLIGHTTYPE, LAYOVER_TIME, NO_OF_STOPS, AIRLINEID)
VALUES('AA4367','SFO','FRA','18:10','18:55','On-time','21hrs','Non-stop',0,0,'AA');


INSERT INTO FLIGHT(FLIGHT_CODE, SOURCE, DESTINATION, ARRIVAL, DEPARTURE, STATUS, DURATION,
FLIGHTTYPE, LAYOVER_TIME, NO_OF_STOPS, AIRLINEID)
VALUES('QR1902','IXC','IAH','22:00','22:50','Delayed','28hrs','Non-stop',5,1,'QR');


INSERT INTO FLIGHT(FLIGHT_CODE, SOURCE, DESTINATION, ARRIVAL, DEPARTURE, STATUS, DURATION,
FLIGHTTYPE, LAYOVER_TIME, NO_OF_STOPS, AIRLINEID)

14

VALUES('BA3056','BOM','DFW','02:15','02:55','On-time','29hrs','Connecting',3,1,'BA');


INSERT INTO FLIGHT(FLIGHT_CODE, SOURCE, DESTINATION, ARRIVAL, DEPARTURE, STATUS, DURATION,
FLIGHTTYPE, LAYOVER_TIME, NO_OF_STOPS, AIRLINEID)
VALUES('EK3456','BOM','SFO','18:50','19:40','On-time','30hrs','Non-stop',0,0,'EK');


INSERT INTO FLIGHT(FLIGHT_CODE, SOURCE, DESTINATION, ARRIVAL, DEPARTURE, STATUS, DURATION,
FLIGHTTYPE, LAYOVER_TIME, NO_OF_STOPS, AIRLINEID)
VALUES('9W2334','IAH','DEL','23:00','13:45','On-time','23hrs','Direct',0,0,'9W');


-- Inserting Table: PASSENGER1--

CREATE TABLE PASSENGER1
(PID INT NOT NULL,
PASSPORTNO VARCHAR(10) NOT NULL,
PRIMARY KEY(PID, PASSPORTNO));

-- Inserting values in table: PASSENGER1--
INSERT INTO PASSENGER1(PID, PASSPORTNO) VALUES(1,'A1234568');
INSERT INTO PASSENGER1(PID, PASSPORTNO) VALUES(2,'B9876541');
INSERT INTO PASSENGER1(PID, PASSPORTNO) VALUES(3,'C2345698');
INSERT INTO PASSENGER1(PID, PASSPORTNO) VALUES(4,'D1002004');
INSERT INTO PASSENGER1(PID, PASSPORTNO) VALUES(5,'X9324666');
INSERT INTO PASSENGER1(PID, PASSPORTNO) VALUES(6,'B8765430');
INSERT INTO PASSENGER1(PID, PASSPORTNO) VALUES(7,'J9801235');
INSERT INTO PASSENGER1(PID, PASSPORTNO) VALUES(8,'A1122334');
INSERT INTO PASSENGER1(PID, PASSPORTNO) VALUES(9,'Q1243567');
INSERT INTO PASSENGER1(PID, PASSPORTNO) VALUES(10,'S1243269');
INSERT INTO PASSENGER1(PID, PASSPORTNO) VALUES(11,'E3277889');
INSERT INTO PASSENGER1(PID, PASSPORTNO) VALUES(12,'K3212322');
INSERT INTO PASSENGER1(PID, PASSPORTNO) VALUES(13,'P3452390');
INSERT INTO PASSENGER1(PID, PASSPORTNO) VALUES(14,'W7543336');
INSERT INTO PASSENGER1(PID, PASSPORTNO) VALUES(15,'R8990566');


-- Inserting Table: PASSENGER2--

CREATE TABLE PASSENGER2
(PASSPORTNO VARCHAR(10) NOT NULL,
FNAME VARCHAR2(20),
M VARCHAR(1),
LNAME VARCHAR2(20),
ADDRESS VARCHAR2(100),
PHONE INT,

15

AGE INT,
SEX VARCHAR(1),
PRIMARY KEY(PASSPORTNO));

--Inserting VALUES IN TABLE: PASSENGER2--
INSERT INTO PASSENGER2(PASSPORTNO,FNAME,M,LNAME,ADDRESS,PHONE,AGE,SEX)
VALUES('A1234568','ALEN','M','SMITH','2230 NORTHSIDE, APT 11, ALBANY, NY',8080367290,30,'M');

INSERT INTO PASSENGER2(PASSPORTNO,FNAME,M,LNAME,ADDRESS,PHONE,AGE,SEX)
VALUES('B9876541','ANKITA','V','AHIR','3456 VIKAS APTS, APT 102,DOMBIVLI,
INDIA',8080367280,26,'F');

INSERT INTO PASSENGER2(PASSPORTNO,FNAME,M,LNAME,ADDRESS,PHONE,AGE,SEX)
VALUES('C2345698','KHYATI','A','MISHRA','7820 MCCALLUM COURTS, APT 234, AKRON,
OH',8082267280,30,'F');

INSERT INTO PASSENGER2(PASSPORTNO,FNAME,M,LNAME,ADDRESS,PHONE,AGE,SEX)
VALUES('D1002004','ANKITA','S','PATIL','7720 MCCALLUM BLVD, APT 1082, DALLAS,
TX',9080367266,23,'F');

INSERT INTO PASSENGER2(PASSPORTNO,FNAME,M,LNAME,ADDRESS,PHONE,AGE,SEX)
VALUES('X9324666','TEJASHREE','B','PANDIT','9082 ESTAES OF RICHARDSON, RICHARDSON,
TX',9004360125,28,'F');

INSERT INTO PASSENGER2(PASSPORTNO,FNAME,M,LNAME,ADDRESS,PHONE,AGE,SEX)
VALUES('B8765430','LAKSHMI','P','SHARMA','1110 FIR HILLS, APT 903, AKRON, OH',7666190505,30,'F');

INSERT INTO PASSENGER2(PASSPORTNO,FNAME,M,LNAME,ADDRESS,PHONE,AGE,SEX)
VALUES('J9801235','AKHILESH','D','JOSHI','345 CHATHAM COURTS, APT 678, MUMBAI,
INDIA',9080369290,29,'M');

INSERT INTO PASSENGER2(PASSPORTNO,FNAME,M,LNAME,ADDRESS,PHONE,AGE,SEX)
VALUES('A1122334','MANAN','S','LAKHANI','5589 CHTHAM REFLECTIONS, APT 349 HOUSTON,
TX',9004335126,25,'F');

INSERT INTO PASSENGER2(PASSPORTNO,FNAME,M,LNAME,ADDRESS,PHONE,AGE,SEX)
VALUES('Q1243567','KARAN','M','MOTANI','4444 FRANKFORD VILLA, APT 77, GUILDERLAND,
NY',9727626643,22,'M');

INSERT INTO PASSENGER2(PASSPORTNO,FNAME,M,LNAME,ADDRESS,PHONE,AGE,SEX)
VALUES('S1243269','ROM','A','SOLANKI','7720 MCCALLUM BLVD, APT 2087, DALLAS,
TX',9004568903,60,'M');


INSERT INTO PASSENGER2(PASSPORTNO,FNAME,M,LNAME,ADDRESS,PHONE,AGE,SEX)
VALUES('E3277889','John','A','GATES','1234 BAKER APTS, APT 59, HESSE,
GERMANY',9724569986,10,'M');

16

INSERT INTO PASSENGER2(PASSPORTNO,FNAME,M,LNAME,ADDRESS,PHONE,AGE,SEX)


VALUES('K3212322','SARA','B','GOMES','6785 SPLITSVILLA, APT 34, MIAMI, FL',9024569226,15,'F');

INSERT INTO PASSENGER2(PASSPORTNO,FNAME,M,LNAME,ADDRESS,PHONE,AGE,SEX)
VALUES('P3452390','ALIA','V','BHAT','548 MARKET PLACE, SAN Francisco, CA',9734567800,10,'F');

INSERT INTO PASSENGER2(PASSPORTNO,FNAME,M,LNAME,ADDRESS,PHONE,AGE,SEX)
VALUES('W7543336','JOHN','P','SMITH','6666 ROCK HILL, APT 2902, TAMPA, FL',4624569986,55,'M');

INSERT INTO PASSENGER2(PASSPORTNO,FNAME,M,LNAME,ADDRESS,PHONE,AGE,SEX)
VALUES('R8990566','RIA','T','GUPTA','3355 PALENCIA, APT 2065, MUMBAI, INDIA',4724512343,10,'M');


-- Inserting Table: PASSENGER3--

CREATE TABLE PASSENGER3
(PID INT NOT NULL,
FLIGHT_CODE VARCHAR(10),
PRIMARY KEY(PID),
FOREIGN KEY(FLIGHT_CODE) REFERENCES FLIGHT(FLIGHT_CODE) ON DELETE CASCADE);

-- Inserting values into Table: PASSENGER3--

INSERT INTO PASSENGER3(PID, FLIGHT_CODE) VALUES(1,'AI2014');
INSERT INTO PASSENGER3(PID, FLIGHT_CODE) VALUES(2,'LH9876');
INSERT INTO PASSENGER3(PID, FLIGHT_CODE) VALUES(3,'9W2334');
INSERT INTO PASSENGER3(PID, FLIGHT_CODE) VALUES(4,'QR1902');
INSERT INTO PASSENGER3(PID, FLIGHT_CODE) VALUES(5,'EY1234');
INSERT INTO PASSENGER3(PID, FLIGHT_CODE) VALUES(6,'BA3056');
INSERT INTO PASSENGER3(PID, FLIGHT_CODE) VALUES(7,'9W2334');
INSERT INTO PASSENGER3(PID, FLIGHT_CODE) VALUES(8,'AA4367');
INSERT INTO PASSENGER3(PID, FLIGHT_CODE) VALUES(9,'QR1902');
INSERT INTO PASSENGER3(PID, FLIGHT_CODE) VALUES(10,'EK3456');
INSERT INTO PASSENGER3(PID, FLIGHT_CODE) VALUES(11,'BA1689');
INSERT INTO PASSENGER3(PID, FLIGHT_CODE) VALUES(12,'QR1902');
INSERT INTO PASSENGER3(PID, FLIGHT_CODE) VALUES(13,'AI2014');
INSERT INTO PASSENGER3(PID, FLIGHT_CODE) VALUES(14,'BA1689');
INSERT INTO PASSENGER3(PID, FLIGHT_CODE) VALUES(15,'QR2305');


-- Inserting Table: EMPLOYEE1—

CREATE TABLE EMPLOYEE1
(SSN INT NOT NULL,
FNAME VARCHAR2(20),
M VARCHAR(1),
LNAME VARCHAR2(20),

17

ADDRESS VARCHAR2(100),
PHONE INT,
AGE INT,
SEX VARCHAR(1),
JOBTYPE VARCHAR2(30),
ASTYPE VARCHAR2(30),
ETYPE VARCHAR2(30),
SHIFT VARCHAR2(20),
POSITION VARCHAR2(30),
AP_NAME VARCHAR2(100),
PRIMARY KEY(SSN),
FOREIGN KEY(AP_NAME) REFERENCES AIRPORT(AP_NAME) ON DELETE CASCADE);

-- Implementing Business Rule Using Check Constraint--
AGE OF AN EMPLOYEE WORKING FOR AN AIRPORT SHOULD NOT BE GREATER THAN 65--

ALTER TABLE EMPLOYEE1
ADD CONSTRAINT AGE_LIMIT CHECK(AGE < 65);

-- Example Of Violation Of Check Constraint--
INSERT INTO EMPLOYEE1(SSN, FNAME, M, LNAME, ADDRESS, PHONE, AGE, SEX, JOBTYPE, ASTYPE,
ETYPE, SHIFT, POSITION, AP_NAME)
VALUES(123456799,'RAM','M','SHARMA','731 HILL TOWN, ARLINGTON, TX',4356789365, 66,
'M','ADMINISTRATIVE SUPPORT','RECEPTIONIST','','','','Louisville International Airport');

-- Inserting values in table: EMPLOYEE1 --
INSERT INTO EMPLOYEE1(SSN, FNAME, M, LNAME, ADDRESS, PHONE, AGE, SEX, JOBTYPE, ASTYPE,
ETYPE, SHIFT, POSITION, AP_NAME)
VALUES(123456789,'LINDA','M','GOODMAN','731 Fondren, Houston, TX',4356789345, 35,
'F','ADMINISTRATIVE SUPPORT','RECEPTIONIST','','','','Louisville International Airport');

INSERT INTO EMPLOYEE1(SSN, FNAME, M, LNAME, ADDRESS, PHONE, AGE, SEX, JOBTYPE, ASTYPE,
ETYPE, SHIFT, POSITION, AP_NAME)
VALUES(333445555,'JOHNY','N','PAUL','638 Voss, Houston, TX',9834561995, 40, 'M','ADMINISTRATIVE
SUPPORT','SECRETARY','','','','Louisville International Airport');

INSERT INTO EMPLOYEE1(SSN, FNAME, M, LNAME, ADDRESS, PHONE, AGE, SEX, JOBTYPE, ASTYPE,
ETYPE, SHIFT, POSITION, AP_NAME)
VALUES(999887777,'JAMES','P','BOND','3321 Castle, Spring, TX',9834666995, 50,
'M','ENGINEER','','RADIO ENGINEER','','','Louisville International Airport');


INSERT INTO EMPLOYEE1(SSN, FNAME, M, LNAME, ADDRESS, PHONE, AGE, SEX, JOBTYPE, ASTYPE,
ETYPE, SHIFT, POSITION, AP_NAME)
VALUES(987654321,'SHERLOCK','A','HOLMES','123 TOP HILL, SAN Francisco,CA',8089654321, 47,
'M','TRAFFIC MONITOR','','','DAY','','San Francisco International Airport');

18

INSERT INTO EMPLOYEE1(SSN, FNAME, M, LNAME, ADDRESS, PHONE, AGE, SEX, JOBTYPE, ASTYPE,
ETYPE, SHIFT, POSITION, AP_NAME)
VALUES(666884444,'SHELDON','A','COOPER','345 CHERRY PARK, HESSE,GERMANY',1254678903, 55,
'M','TRAFFIC MONITOR','','NIGHT','','','Frankfurt Airport');

INSERT INTO EMPLOYEE1(SSN, FNAME, M, LNAME, ADDRESS, PHONE, AGE, SEX, JOBTYPE, ASTYPE,
ETYPE, SHIFT, POSITION, AP_NAME)
VALUES(453453453,'RAJ','B','SHARMA','345 FLOYDS, MUMBAI,INDIA',4326789031, 35, 'M','AIRPORT
AUTHORITY','','','','MANAGER','Chhatrapati Shivaji International Airport');

INSERT INTO EMPLOYEE1(SSN, FNAME, M, LNAME, ADDRESS, PHONE, AGE, SEX, JOBTYPE, ASTYPE,
ETYPE, SHIFT, POSITION, AP_NAME)
VALUES(987987987,'NIKITA','C','PAUL','110 SYNERGY PARK, DALLAS,TX',5678904325, 33,
'F','ENGINEER','','AIRPORT CIVIL ENGINEER','','','Dallas/Fort Worth International Airport');

INSERT INTO EMPLOYEE1(SSN, FNAME, M, LNAME, ADDRESS, PHONE, AGE, SEX, JOBTYPE, ASTYPE,
ETYPE, SHIFT, POSITION, AP_NAME)
VALUES(888665555,'SHUBHAM','R','GUPTA','567 CHANDANI CHOWK, DELHI, INDIA',8566778890, 39,
'M','ADMINISTRATIVE SUPPORT','DATA ENTRY WORKER','','','','Indira GandhiInternational Airport');

INSERT INTO EMPLOYEE1(SSN, FNAME, M, LNAME, ADDRESS, PHONE, AGE, SEX, JOBTYPE, ASTYPE,
ETYPE, SHIFT, POSITION, AP_NAME)
VALUES(125478909,'PRATIK','T','GOMES','334 VITRUVIAN PARK, ALBANY, NY',4444678903, 56,
'M','TRAFFIC MONITOR','','DAY','','','John F. Kennedy International Airport');

INSERT INTO EMPLOYEE1(SSN, FNAME, M, LNAME, ADDRESS, PHONE, AGE, SEX, JOBTYPE, ASTYPE,
ETYPE, SHIFT, POSITION, AP_NAME)
VALUES(324567897,'ADIT','P','DESAI','987 SOMNATH, CHANDIGARH, INDIA',2244658909, 36,
'M','TRAFFIC MONITOR','','DAY','','','Chandigarh International Airport');


-- Inserting Table: EMPLOYEE2 --

CREATE TABLE EMPLOYEE2
(JOBTYPE VARCHAR2(30) NOT NULL,
SALARY INT,
PRIMARY KEY(JOBTYPE));

--INSERTING VALUES INTO TABLE: EMPLOYEE2 --
INSERT INTO EMPLOYEE2(JOBTYPE, SALARY)VALUES('ADMINISTRATIVE SUPPORT',50000);
INSERT INTO EMPLOYEE2(JOBTYPE, SALARY)VALUES('ENGINEER',70000);
INSERT INTO EMPLOYEE2(JOBTYPE, SALARY)VALUES('TRAFFIC MONITOR',80000);
INSERT INTO EMPLOYEE2(JOBTYPE, SALARY)VALUES('AIRPORT AUTHORITY',90000);



19

-- Inserting Table: SERVES --



CREATE TABLE SERVES
(SSN INT NOT NULL,
PID INT NOT NULL,
PASSPORTNO VARCHAR(10) NOT NULL,
PRIMARY KEY(SSN, PID, PASSPORTNO),
FOREIGN KEY(SSN) REFERENCES EMPLOYEE1(SSN) ON DELETE CASCADE,
FOREIGN KEY(PID, PASSPORTNO) REFERENCES PASSENGER1(PID, PASSPORTNO) ON DELETE CASCADE);

-- INSERTING VALUES INTO TABLE: SERVES --

INSERT INTO SERVES(SSN, PID, PASSPORTNO) VALUES(123456789,1,'A1234568');
INSERT INTO SERVES(SSN, PID, PASSPORTNO) VALUES(123456789,15,'R8990566');
INSERT INTO SERVES(SSN, PID, PASSPORTNO) VALUES(123456789,9,'Q1243567');
INSERT INTO SERVES(SSN, PID, PASSPORTNO) VALUES(888665555,4,'D1002004');
INSERT INTO SERVES(SSN, PID, PASSPORTNO) VALUES(888665555,13,'P3452390');
INSERT INTO SERVES(SSN, PID, PASSPORTNO) VALUES(333445555,10,'S1243269');
INSERT INTO SERVES(SSN, PID, PASSPORTNO) VALUES(333445555,12,'K3212322');
INSERT INTO SERVES(SSN, PID, PASSPORTNO) VALUES(888665555,12,'K3212322');
INSERT INTO SERVES(SSN, PID, PASSPORTNO) VALUES(123456789,7,'J9801235');
INSERT INTO SERVES(SSN, PID, PASSPORTNO) VALUES(888665555,7,'J9801235');


-- Inserting Table: TICKET1 --

CREATE TABLE TICKET1
(TICKET_NUMBER VARCHAR(13) NOT NULL,
SOURCE VARCHAR(3),
DESTINATION VARCHAR(3),
DATE_OF_BOOKING DATE,
DATE_OF_TRAVEL DATE,
SEATNO VARCHAR(5),
CLASS VARCHAR2(15),
DATE_OF_CANCELLATION DATE,
PID INT,
PASSPORTNO VARCHAR(10),
FOREIGN KEY(PID, PASSPORTNO) REFERENCES PASSENGER1(PID, PASSPORTNO) ON DELETE CASCADE);

-- Adding CHECK constraint on an attribute TICKET_NUMBER --
ALTER TABLE TICKET1
ADD CONSTRAINT TICKET_NO_LENGTH CHECK(LENGTH(TICKET_NUMBER)=13);

-- Checking Violation Of A Constraint--

INSERT INTO TICKET1(TICKET_NUMBER, SOURCE, DESTINATION, DATE_OF_BOOKING,
DATE_OF_CANCELLATION, DATE_OF_TRAVEL, SEATNO, CLASS, PID, PASSPORTNO)
VALUES(00112341111221,'BOM','DFW','11-MAY-16','','15-DEC-16','32A','ECONOMY',1,'A1234568');

20

-- Inserting values into Table: TICKET1--



--INSERTING INTO TABLE: TICKET1--
INSERT INTO TICKET1(TICKET_NUMBER, SOURCE, DESTINATION, DATE_OF_BOOKING,
DATE_OF_CANCELLATION, DATE_OF_TRAVEL, SEATNO, CLASS, PID, PASSPORTNO)
VALUES(0011234111122,'BOM','DFW','11-MAY-16','','15-DEC-16','32A','ECONOMY',1,'A1234568');

INSERT INTO TICKET1(TICKET_NUMBER, SOURCE, DESTINATION, DATE_OF_BOOKING,
DATE_OF_CANCELLATION, DATE_OF_TRAVEL, SEATNO, CLASS, PID, PASSPORTNO)
VALUES(0984567222299,'JFK','BOM','11-JUN-16','10-DEC-16','20-DEC-
16','45D','ECONOMY',2,'B9876541');

INSERT INTO TICKET1(TICKET_NUMBER, SOURCE, DESTINATION, DATE_OF_BOOKING,
DATE_OF_CANCELLATION, DATE_OF_TRAVEL, SEATNO, CLASS, PID, PASSPORTNO)
VALUES(1768901333273,'IAH','DEL','21-AUG-16','','25-DEC-16','1A','BUSINESS',3,'C2345698');

INSERT INTO TICKET1(TICKET_NUMBER, SOURCE, DESTINATION, DATE_OF_BOOKING,
DATE_OF_CANCELLATION, DATE_OF_TRAVEL, SEATNO, CLASS, PID, PASSPORTNO)
VALUES(5890987441464,'IXC','IAH','10-AUG-16','','12-JAN-17','20C','FIRST-CLASS',4,'D1002004');

INSERT INTO TICKET1(TICKET_NUMBER, SOURCE, DESTINATION, DATE_OF_BOOKING,
DATE_OF_CANCELLATION, DATE_OF_TRAVEL, SEATNO, CLASS, PID, PASSPORTNO)
VALUES(1577654664266,'JFK','TPA','13-JUN-16','','10-DEC-16','54E','ECONOMY',5,'X9324666');

INSERT INTO TICKET1(TICKET_NUMBER, SOURCE, DESTINATION, DATE_OF_BOOKING,
DATE_OF_CANCELLATION, DATE_OF_TRAVEL, SEATNO, CLASS, PID, PASSPORTNO)
VALUES(2206543545545,'BOM','DFW','11-NOV-16','','12-FEB-17','43B','ECONOMY',6,'B8765430');

INSERT INTO TICKET1(TICKET_NUMBER, SOURCE, DESTINATION, DATE_OF_BOOKING,
DATE_OF_CANCELLATION, DATE_OF_TRAVEL, SEATNO, CLASS, PID, PASSPORTNO)
VALUES(7064321779737,'IAH','DEL','15-NOV-16','','25-DEC-16','27B','FIRST-CLASS',7,'J9801235');

INSERT INTO TICKET1(TICKET_NUMBER, SOURCE, DESTINATION, DATE_OF_BOOKING,
DATE_OF_CANCELLATION, DATE_OF_TRAVEL, SEATNO, CLASS, PID, PASSPORTNO)
VALUES(1571357215116,'SFO','FRA','15-OCT-16','','18-DEC-16','34E','ECONOMY',8,'A1122334');

INSERT INTO TICKET1(TICKET_NUMBER, SOURCE, DESTINATION, DATE_OF_BOOKING,
DATE_OF_CANCELLATION, DATE_OF_TRAVEL, SEATNO, CLASS, PID, PASSPORTNO)
VALUES(1570864987655,'IXC','IAH','12-NOV-16','','30-DEC-16','54C','ECONOMY',9,'Q1243567');

INSERT INTO TICKET1(TICKET_NUMBER, SOURCE, DESTINATION, DATE_OF_BOOKING,
DATE_OF_CANCELLATION, DATE_OF_TRAVEL, SEATNO, CLASS, PID, PASSPORTNO)
VALUES(1579283997799,'BOM','SFO','22-JAN-16','','15-DEC-16','38A','ECONOMY',10,'S1243269');

INSERT INTO TICKET1(TICKET_NUMBER, SOURCE, DESTINATION, DATE_OF_BOOKING,
DATE_OF_CANCELLATION, DATE_OF_TRAVEL, SEATNO, CLASS, PID, PASSPORTNO)
VALUES(1255701876107,'FRA','DEL','19-OCT-16','','31-DEC-16','57F','ECONOMY',11,'E3277889');

21

INSERT INTO TICKET1(TICKET_NUMBER, SOURCE, DESTINATION, DATE_OF_BOOKING,


DATE_OF_CANCELLATION, DATE_OF_TRAVEL, SEATNO, CLASS, PID, PASSPORTNO)
VALUES(1251334499699,'IXC','IAH','20-NOV-16','','12-JAN-17','45D','ECONOMY',12,'K3212322');

INSERT INTO TICKET1(TICKET_NUMBER, SOURCE, DESTINATION, DATE_OF_BOOKING,
DATE_OF_CANCELLATION, DATE_OF_TRAVEL, SEATNO, CLASS, PID, PASSPORTNO)
VALUES(1258776199490,'BOM','DFW','13-MAY-16','25-MAY-16','15-DEC-
16','37C','ECONOMY',13,'P3452390');

INSERT INTO TICKET1(TICKET_NUMBER, SOURCE, DESTINATION, DATE_OF_BOOKING,
DATE_OF_CANCELLATION, DATE_OF_TRAVEL, SEATNO, CLASS, PID, PASSPORTNO)
VALUES(5891155114477,'FRA','DEL','26-JUN-16','','23-DEC-16','55C','ECONOMY',14,'W7543336');

INSERT INTO TICKET1(TICKET_NUMBER, SOURCE, DESTINATION, DATE_OF_BOOKING,
DATE_OF_CANCELLATION, DATE_OF_TRAVEL, SEATNO, CLASS, PID, PASSPORTNO)
VALUES(5893069766787,'BOM','DFW','11-AUG-16','','22-DEC-16','33F','ECONOMY',15,'R8990566');


-- Inserting Table: TICKET2--

CREATE TABLE TICKET2
(DATE_OF_BOOKING DATE NOT NULL,
SOURCE VARCHAR(3) NOT NULL,
DESTINATION VARCHAR(3) NOT NULL,
CLASS VARCHAR2(15) NOT NULL,
PRICE INT,
PRIMARY KEY(DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS));

-- Inserting Values into: TICKET2 --

INSERT INTO TICKET2(DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS, PRICE)
VALUES('11-MAY-16','BOM','DFW','ECONOMY',95000);

INSERT INTO TICKET2(DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS, PRICE)
VALUES('11-JUN-16','JFK','BOM','ECONOMY',100000);

INSERT INTO TICKET2(DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS, PRICE)
VALUES('21-AUG-16','IAH','DEL','BUSINESS',200000);

INSERT INTO TICKET2(DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS, PRICE)
VALUES('10-AUG-16','IXC','IAH','FIRST-CLASS',150000);

INSERT INTO TICKET2(DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS, PRICE)
VALUES('13-JUN-16','JFK','TPA','ECONOMY',98000);

INSERT INTO TICKET2(DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS, PRICE)
VALUES('11-NOV-16','BOM','DFW','ECONOMY',125000);

22

INSERT INTO TICKET2(DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS, PRICE)


VALUES('15-NOV-16','IAH','DEL','FIRST-CLASS',195000);

INSERT INTO TICKET2(DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS, PRICE)
VALUES('15-OCT-16','SFO','FRA','ECONOMY',170000);

INSERT INTO TICKET2(DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS, PRICE)
VALUES('12-NOV-16','IXC','IAH','ECONOMY',140000);

INSERT INTO TICKET2(DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS, PRICE)
VALUES('22-JAN-16','BOM','SFO','ECONOMY',45000);

INSERT INTO TICKET2(DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS, PRICE)
VALUES('19-OCT-16','FRA','DEL','ECONOMY',100000);

INSERT INTO TICKET2(DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS, PRICE)
VALUES('20-NOV-16','IXC','IAH','ECONOMY',120000);

INSERT INTO TICKET2(DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS, PRICE)
VALUES('13-MAY-16','BOM','DFW','ECONOMY',65000);

INSERT INTO TICKET2(DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS, PRICE)
VALUES('26-JUN-16','FRA','DEL','ECONOMY',80000);

INSERT INTO TICKET2(DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS, PRICE)
VALUES('11-AUG-16','BOM','DFW','ECONOMY',98000);


-- Inserting Table: TICKET3 --

CREATE TABLE TICKET3
(DATE_OF_CANCELLATION DATE NOT NULL,
SURCHARGE INT,
PRIMARY KEY(DATE_OF_CANCELLATION));

-- INSERTING VALUES INTO TABLE: TICKET3 --

INSERT INTO TICKET3(DATE_OF_CANCELLATION, SURCHARGE) VALUES('10-DEC-16',75000);
INSERT INTO TICKET3(DATE_OF_CANCELLATION, SURCHARGE) VALUES('25-MAY-16',25000);

23

9. STORED PROCEDURE

9.1 For details of economy class passengers with destination ‘DFW’


CREATE OR REPLACE PROCEDURE DFWECONOMYPASSENGERS AS
CURSOR ECOPASSDETAILS is
select
al.AL_NAME,fl.FLIGHT_CODE,p2.FNAME,p2.LNAME,p2.PASSPORTNO,t.CLASS,t.DATE_OF_TRAVEL,t.DESTI
NATION,t.SOURCE,t.SEATNO,t.TICKET_NUMBER from Airline al,Flight fl,PASSENGER1 p1,PASSENGER2 p2
,PASSENGER3 p3,TICKET1 t
where al.AIRLINEID = fl.AIRLINEID
and p1.PID= p3.PID
and p1.PASSPORTNO =p2.PASSPORTNO
and fl.FLIGHT_CODE = p3.FLIGHT_CODE
and t.PASSPORTNO = p2.PASSPORTNO
and t.CLASS='ECONOMY' and t.DESTINATION='DFW';

PASSDETAILS ECOPASSDETAILS%rowtype;

BEGIN

Open ECOPASSDETAILS ;
LOOP
fetch ECOPASSDETAILS into PASSDETAILS;
EXIT WHEN ECOPASSDETAILS%NOTFOUND;
dbms_output.put_line (PASSDETAILS.AL_NAME || ' ' || PASSDETAILS.FLIGHT_CODE || ' ' ||
PASSDETAILS.FNAME || ' ' || PASSDETAILS.LNAME|| ' ' ||PASSDETAILS.PASSPORTNO || ' ' ||
PASSDETAILS.CLASS || ' ' || PASSDETAILS.SOURCE || ' ' || PASSDETAILS.SEATNO || ' ' ||
PASSDETAILS.TICKET_NUMBER);

END LOOP;
close ECOPASSDETAILS;
END DFWECONOMYPASSENGERS;

--Testing in sql developer: Oracle db--
SET SERVEROUTPUT ON
exec DFWECONOMYPASSENGERS();

24


Figure 2: Stored Procedure 1


Figure 3: Stored Procedure 1

25

9.2 Stored Procedure for flight details by status


CREATE OR REPLACE PROCEDURE FLIGHTSBYSTATUS
(IN_STATUS IN VARCHAR2) AS

CURSOR fSTATUS is
SELECT DISTINCT F.FLIGHT_CODE ,AL.AL_NAME ,F.ARRIVAL,F.DEPARTURE,
F.SOURCE,F.DESTINATION,F.STATUS,F.FLIGHTTYPE
FROM AIRLINE AL,AIRPORT AP, FLIGHT F
WHERE AL.AIRLINEID=F.AIRLINEID
AND F.STATUS =IN_STATUS;

FlightStatus fSTATUS%rowtype;

BEGIN
Open fSTATUS ;
LOOP
fetch fSTATUS into FlightStatus;
EXIT WHEN fSTATUS%NOTFOUND;
DBMS_OUTPUT.PUT_LINE (FlightStatus.FLIGHT_CODE || ' ' || FlightStatus.AL_NAME || ' ' ||
FlightStatus.ARRIVAL || ' ' || FlightStatus.departure|| ' ' ||FlightStatus.Source || ' ' ||
FlightStatus.DESTINATION || ' ' || FlightStatus.STATUS || ' ' || FlightStatus.FLIGHTTYPE);

END LOOP;
CLOSE fSTATUS;
END FLIGHTSBYSTATUS;

--Testing in sql developer: Oracle db--
SET SERVEROUTPUT ON
exec FLIGHTSBYSTATUS('Delayed');
-- or--
SET SERVEROUTPUT ON
exec FLIGHTSBYSTATUS('On-time');

26


Figure 4: Stored Procedure 2


Figure 5: Stored Procedure 2

27


Figure 6: Stored Procedure 2


Figure 7: Stored Procedure 2

28

10. TRIGGERS

10.1 Trigger for, when a flight is delayed, it is logged into different tables.

CREATE OR REPLACE TRIGGER DELAYEDFLIGHTS


AFTER INSERT ON FLIGHT
FOR EACH ROW

BEGIN
IF UPDATING('STATUS')
THEN
INSERT INTO DELAYED_FLIGHTS (FLIGHT_CODE, SOURCE, DESTINATION , AIRLINEID ,REPORT_TIME)
VALUES(:NEW.FLIGHT_CODE,:NEW.SOURCE,:NEW.DESTINATION,:NEW.AIRLINEID,sysdate);
END IF;

END;


-- This is audit table for this trigger--
CREATE TABLE DELAYED_FLIGHTS
(FLIGHT_CODE VARCHAR2(20),
DESTINATION VARCHAR2(20),
SOURCE VARCHAR2(20),
AIRLINEID VARCHAR2(20),
REPORT_TIME DATE);


INSERT INTO FLIGHT(FLIGHT_CODE, SOURCE, DESTINATION, ARRIVAL, DEPARTURE, STATUS, DURATION,
FLIGHTTYPE, LAYOVER_TIME, NO_OF_STOPS, AIRLINEID)
VALUES('QR129','BOM','DFW','02:10','03:15','Delayed','24hr','Connecting',3,1,'AI');

29


Figure 8: Trigger 1


Figure 9: Trigger 1

30


Figure 10: Trigger 1


Figure 11: Trigger 1

31

10.2 Trigger to update TICKET_PRICE_HISTORY table when the price of the air ticket is
updated in TICKET2 table.

-- CREATING TABLE TICKET_PRICE_HISTORY--



CREATE TABLE TICKET_PRICE_HISTORY
(DATE_OF_BOOKING DATE NOT NULL,
SOURCE VARCHAR(3) NOT NULL,
DESTINATION VARCHAR(3) NOT NULL,
CLASS VARCHAR2(15) NOT NULL,
PRICE INT,
PRIMARY KEY(DATE_OF_BOOKING, SOURCE, DESTINATION, CLASS));

-- CREATE A TRIGGER TICKET_PRICE_HISTORY --

CREATE OR REPLACE TRIGGER TRIGG_TICKET_PRICE_HISTORY
BEFORE UPDATE OF PRICE
ON TICKET2
FOR EACH ROW

BEGIN
INSERT INTO TICKET_PRICE_HISTORY
VALUES(:OLD.DATE_OF_BOOKING, :OLD.SOURCE, :OLD.DESTINATION, :OLD.CLASS, :OLD.PRICE);

END;

--LET'S UPDATE A PRICE OR FARE OF AN AIR TICKET --

UPDATE TICKET2
SET PRICE=150000
WHERE DATE_OF_BOOKING ='11-NOV-16'
AND SOURCE='BOM'
AND DESTINATION='DFW'
AND CLASS='ECONOMY'

32


Figure 12: Trigger 2


Figure 13: Trigger 2

33


Figure 14: Trigger 2


Figure 15: Trigger 2

34

11. BUSINESS RULES


11.1 The length of an air ticket number should be exactly 13 digits.


Figure 16: Business Rule 1

35

11.2 Age of an employee working at any airport should not be greater than 65.


Figure 17: Business Rule 2

36

You might also like