STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007.

15
STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007

Transcript of STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007.

Page 1: STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007.

STA TRAVEL AUSTRALIA

Rumana IslamHD Assignment 3, Autumn 2007

Page 2: STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007.

STA Travel Database

This Database application was inspired by the ‘STA Travel Australia’ website.

The Database contains details about Airline, Airplane, Flight and Ticket.

It also contains information of the user booking tickets and details of the passengers a user books tickets for.

The database is limited to the reserving and purchasing of tickets and does not include other special services and deals offered by STA Travel

Page 3: STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007.

STA Travel Database ERD

Page 4: STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007.

1:m Relationship

UsersID UTitle UFirstName Other columns

1 Ms Rumana …

2 Mr John …

3 Mr Alfred …

… … … …

User Reservation

UserID ReservationID ReservationDate

1 1 2007-06-28

2 1 2007-06-28

3 1 2007-06-29

4 1 2007-06-29

5 2 2007-06-02

… …

Foreign key

User– Reservation

Reserves

Users

UsersIDUTitleUFirstNameUSurnameUDOBUNumberUMobileNumberUEmailAddress

Reservation

ReservationIDUserIDReservationDate

Page 5: STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007.

m:m Relationship

PassengerID FlightID PFSeatNumber Other Columns

1 1 53J …

1 2 44M …

2 1 53K …

3 1 53L …

PassFlight

Flight

Passenger

Flight FlightNumber Origin Destination Other Columns

1 SQ432 Sydney Singapore …

2 SQ241 Singapore Dhaka …

3 QF350 Sydney New York …

.. … … … …

PassengerID PTitle PFirstName OtherColumns

1 Ms Rumana ..

2 Ms Rehnuma ..

… .. … …

m:m relationship

Flight-Passenger

Part ofHas

Flight

FlightIDAirplaneIDFlightNumberOriginDestinationDepartureDateReturnDateDepartureTimeReturnTime

PassFlight

PassengerIDFlightIDPFSeatNumberPFServiceClassPFType

Passenger

PassengerIDReservationIDPTitlePFirstNamePSurnamePPassportNumberPDOBPHomeNumberPMobileNumberPStreetPSuburbPCityPStatePPostCodePCountry

Page 6: STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007.

Single Table Query

Selecting a few items from the Flight

SELECT FlightNumber, Origin, DestinationFROM Flight;

flightnumber | origin | destination--------------+-----------+------------- SQ432 | Sydney | Singpore SQ241 | Singapore | Dhaka QF350 | Sydney | New York CX520 | Sydney | London KL366 | Brisbane | Amsterdam KL363 | Melbourne | Munich TG201 | Sydney | Bangkok(7 rows)

Page 7: STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007.

NATURAL JOIN

Identifying users reserving tickets for passengers and when?

SELECT UFirstName, PFirstName, PPassportNumber, ReservationDateFROM Users NATURAL JOIN Reservation NATURAL JOIN Passenger;

ufirstname | pfirstname | ppassportnumber | reservationdate------------+------------+-----------------+----------------- Rumana | Rumana | L898902C | 2007-06-28 Rumana | Rehnuma | L923034Z | 2007-06-28 Rumana | Rafiqul | N123489B | 2007-06-29 Rumana | Milie | B947321F | 2007-06-29 John | James | L629374P | 2007-06-02 Alfred | Alfred | L102571G | 2007-06-07 Jessica | Jessica | L581290X | 2007-06-10 Adam | Adam | K437920F | 2007-06-12 Lara | Lara | L902257D | 2007-06-25(9 rows)

Page 8: STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007.

NATURAL JOIN (Cross Product)

Identifying users reserving tickets for passengers and when

SELECT UFirstName, PFirstName,PPassportNumber, ReservationDateFROM Users, Reservation, PassengerWhere Users.UsersID = Reservation.UsersID AND Reservation.ReservationID=Passenger.ReservationID;

ufirstname | pfirstname | ppassportnumber | reservationdate------------+------------+-----------------+----------------- Rumana | Rumana | L898902C | 2007-06-28 Rumana | Rehnuma | L923034Z | 2007-06-28 Rumana | Rafiqul | N123489B | 2007-06-29 Rumana | Milie | B947321F | 2007-06-29 John | James | L629374P | 2007-06-02 Alfred | Alfred | L102571G | 2007-06-07 Jessica | Jessica | L581290X | 2007-06-10 Adam | Adam | K437920F | 2007-06-12 Lara | Lara | L902257D | 2007-06-25(9 rows)

Page 9: STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007.

GROUP BYList PassengerID and group by number of flights a passenger is

associated to

SELECT PassengerID, PFirstName, PSurname, count(*) as NumberofFlightsFROM PassFlight natural join PassengerGROUP BY PassengerID,PFirstName, PSurname order by PassengerID;

passengerid | pfirstname | psurname | numberofflights-------------+------------+----------+----------------- 1 | Rumana | Islam | 2 2 | Rehnuma | Islam | 1 3 | Rafiqul | Islam | 1 4 | Milie | Islam | 1 5 | James | Foster | 1 6 | Alfred | Lai | 1 7 | Jessica | Peterson | 1 8 | Adam | Brody | 1 9 | Lara | Roberts | 1(9 rows)

Page 10: STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007.

Sub QueryIdentify the cheapest ticket bought by passenger named ‘Rumana Islam’

SELECT Distinct TicketPrice, PaymentDate

FROM Ticket NATURAL JOIN Payment

WHERE CardHolderName = 'Rumana Islam'

And TicketPrice <= all (SELECT TicketPrice

FROM Ticket NATURAL JOIN Payment

WHERE CardHolderName = 'Rumana Islam');

ticketprice | paymentdate-------------+------------- 1800 | 2007-06-28(1 row)

Page 11: STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007.

Self JoinFinding two passengers who paid for their tickets using a

MasterCard

SELECT c1.cardholdername, c2.cardholdername, c1.cardtype

FROM payment c1,payment c2

WHERE c1.cardtype = c2.cardtype

AND c1.cardtype='Mastercard'

AND c2.cardtype='Mastercard'

AND c1.ticketid>c2.ticketid;

cardholdername | cardholdername | cardtype------------------+----------------+------------ Jessica Peterson | John Smith | Mastercard(1 row)

Page 12: STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007.

Check Statements

Checking for Passenger Service Class type

CONSTRAINT PassFlight_PFServiceClass CHECK (PFServiceClass IN ('Economic','Business','First'))

Checking for Date of Birth

CONSTRAINT Users_UDOB CHECK (UDOB >= '1900-01-01')

Checking for Card Expiry Date

CONSTRAINT Payment_CardExpiryDate CHECK (CardExpiryDate BETWEEN '2007-01-01' AND '2015-01-01')

Page 13: STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007.

Action StatementsOn Delete Restrict

CONSTRAINT Passenger_ReservationIDFK FOREIGN KEY (ReservationID) REFERENCES Reservation

ON DELETE RESTRICT

ON UPDATE CASCADE

On Delete Cascade

CONSTRAINT AirPlane_AirLineFK FOREIGN KEY (AirLineID) REFERENCES Airline

ON DELETE CASCADE

ON UPDATE CASCADE

Page 14: STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007.

Views

Creating a view for PassengerFlightDetails

CREATE VIEW PassengerFlightDetails (PFirstName, PSurname, FlightNumber, Origin, Destination, PFSeatNumber)

AS SELECT PFirstName, PSurname, FlightNumber, Origin, Destination, PFSeatNumber FROM Passenger NATURAL JOIN PassFlight NATURAL JOIN Flight;

Selecting Details of Passenger flying the KLM Royal Dutch Airlines

SELECT PFirstName, PSurname, FlightNumber, Origin, Destination, PFSeatNumberFROM PassengerFlightDetails WHERE FlightNumber LIKE ‘KL%’;

pfirstname | psurname | flightnumber | origin | destination | pfseatnumber------------+----------+--------------+-----------+-------------+-------------- Jessica | Peterson | KL366 | Brisbane | Amsterdam | 23B Adam | Brody | KL363 | Melbourne | Munich | 20F(2 rows)

Page 15: STA TRAVEL AUSTRALIA Rumana Islam HD Assignment 3, Autumn 2007.

Thank You!

QUESTIONS?