BILKENT UNIVERSITY ENGINEERING FACULTY DEPARTMENT OF COMPUTER ENGINEERING CS 352 DATABASE MANAGEMENT SYSTEMS TERM PROJECT Proposal Report Group #10 http://airlinegroup10.wikispaces.com/ Ezgi Özge Öztürk Aylin Deveci Kübra Gümüş 20502868 20501353 20501628 Sec: 03 Sec: 04 Sec: 04 Table of Contents Introduction....................................................................................................................................3 Problem Statement.........................................................................................................................3 Requirements..................................................................................................................................4 Limitations of the system...............................................................................................................6 Definitions………………………………………………………………………………………..7 ER Diagram....................................................................................................................................8 Data Dictionary…………………………………………………………………………………...9 Conclusion and Website................................................................................................................13 2 1. Introduction This report defines and outlines our CS352 project named as Airline Company Data Management System. Our aim is to build a model of the airline reservation system as closely as possible. We will design and implement a system for flight reservations of an airline company. This report provides the description of our system and ER diagram for the required database design. 2. Problem Statement Airline Company Data Management System basically arranges flight reservations of an airline company. As it is described in following section, system will keep track of planes, cities, airports, flights, crew, passengers, sales, reservations, and staff. Passengers will be able to buy or reserve their flight tickets by specifying their destinations from where to where and departure date, return date, one way or round trip, number of passengers (categorized adults, children, infants in a seat), cabin service preferences (economy, business class, first/premium class) and also airports. The system allows only registered passenger to make reservations. Guest users can only view flight schedule, they cannot make reservation. Registered passengers can make reservation and change or view their flights as they wish. Every passenger has passenger details like username, password, age, sex, nationality, address, phone and passport id etc. The system also stores official profiles that make reservation for others and they can access reservation database. Official profiles contain officials’ personal details such as username, password, age, sex, nationality, phone and address. As a result of different user categories such as passengers and officials, we will give different levels of permission for users of the system. The system gives flight summary after passenger specified his/her restrictions. Flight summary includes airport name, gate number, flight no, passenger no, etc. There will be payment operation after flight summary then electronic ticket will be created. Additionally, all events will be logged in order to prevent data loss and keep the system safe. Also the system should be easily backed up. The system can also be implemented with using data structures such as using files, however by using database for managing data; it will be much more reasonable and efficient. It is obvious that the advantages of relational database concept have proven, so we decided to design our system by using a relational database. Rather than implementing our own database, using a wellknown database server application is more feasible. We should also provide a user interface in order not to interact directly with the database's storage and management details. We will manage an understandable and clear user interface to provide easy and fast usage of the reservation system to users. 3 3. Requirements We will implement an application which is based on web environment that is computerized system used to store and retrieve information and conduct transactions related to air travel. This airline reservation system project is intended to provide information needed to reserve seat(s) on certain flights. Our reservation system will contain some features that satisfy the detailed user requirements. These features are given below item by item: Ø Separate profiles for users, containing all their personal data: The system will support two types of user that are passenger and official. Passengers will have access to passenger functions, and the officials will have access to both passenger and flight management functions. The passengers can use the system as a guest or registered user. However, guest users cannot make reservation only can see available flights. The registered passenger is able to do the following functions: • Make a new reservation. o One-way o Round-Trip o Multi-city o Flexible Date/time o Child/infant/adult/student/65 years o Cabin class such as business class/economy class/first class etc o Route o Fare of seats and availability of seats o Confirmation. • Cancel an existing reservation: When the user wants to cancel reservation, he/she enters a confirmation number and the system will delete this reservation from its passenger table. • View his itinerary. The Official should have following management functionalities: • Passenger functions • Reporting o Get all passengers who have seats reserved on a given flight. o Get all flights for a given airport. o View flight rooster, schedule. o Get all flights whose arrival and departure times are on time/delayed. o Calculate total sales for a given flight. 4 • Administrative o Add/Delete a flight o Add a new airport o Update fare for flights. o Add a new flight leg instance. o Update departure/arrival times for flight leg instances. Ø Possibility of multiple bookings per profile Ø Finding flight schedule information according to various constraints and conditions: A user can reach flight schedule while making reservation. In the flight schedule, there will be origin-destination city and airport choice, departure and return time, cabin class, age interval options. Also, if there are multiple stops and multiple airports in city, flight schedule displays these options to user. He/she makes selections according to his desires and gets the available flights if it exists. Ø Handling of different kinds of schemes for frequent fliers, and for flights: The system gives reservation priorities to frequent users, inform them about some campaigns and also discount the ticket price. Also, the system keeps the frequent flights and according to this, offers new flights are added to schedule. Ø Confirmation Number: The system will give a confirmation number after the reservation. This number is a string that is composed of the date (mmddyy), time, flight number, and a random number in the range [1-5000]. Ø Notifications: The system notifies the registered users about the changes in their flights and cancellation of flights due to the inappropriate weather conditions and some troubles. Ø Appropriate error checking; While the registered user is making reservation, the system checks for asked informations are filled completely or not. If it is not full, the system gives an error. Also, if the user tries to make reservation for not applicable seat, system gives warning to user. The system updates flights schedule according to changes in the flights. 5 4. Limitations of the System: l Reservation can only be made by registered user or official user with user name and password which is given by the system to the user when the user is first signed up to the system. Guest cannot make any reservation; s/he can only see the available flights so s/he has to be registered to the system. l There is no difference between employers who work at different departments of airport while making reservation. However, administrator has privileges to access reservation database. l There will be at most 50 flights in reservation system. l Registered user can not view its reservation without entering confirmation number to system. l Between first time user and frequent user see same user interface, so there is no access privileges between them. They are all considered as normal user. 6 5. Definitions 1. Airport: An airport has a name, the city it is in, and its airport id. 2. Airplane: This specifies the physical conditions of plane. Every plane has certain capacity of cabin classes such as business class, economy class, first class, club class, smoking, non smoking. Also, every plane has plane id and name. 3. Official: An official who works at airport can book tickets for others and also cancel reservations. Also, official can access the complete list of passengers boarding a flight. Official has user name, password, name, age, nationality, department id, address and phone. 4. Passenger: Passenger has user name, password, name, e-mail, address, phone, age, sex and nationality. 5. Flight: A flight is identified with its flight number and denotes a unique “plane”, i.e. one which is scheduled to run at a certain time, from one place to another. Also, flight has departure airport and destination airport, ticket price and capacity. 6. FlightLeg: FlightLeg is a flight segment that involves a stopover, change of aircraft or change of airline. FlightLeg is a weak entity; its existence depends on the existence of Flight. FlightLeg has leg number. One leg instance consists of a nonstop flight. 7. Reservation: A registered user can make reservation. A reservation has confirmation number, booking profile, number of passengers, discount, seat no, credit card number, and expiration date. 8. Ticket: A ticket is uniquely identified by a ticket id. A ticket is booked on a flight for a route at the flight is associated with. A passenger ticket contains details about the passenger. Ticket has also booking date, fare paid, gate and status. 9. Fare: Fare has fare code, payment amount and restrictions. Fare is price charged for transporting passengers. This price often changes from season to season, week to week, even day to day. In our reservation system, cheaper the fare more restrictions on it such as 21 days advance purchase, minimum or maximum stopovers, or travel only on certain days of a week. 7 6. ER - Diagram 8 7. Data Dictionary List of Tables in the Database with Constraints 1. Table Airport Fields Domains Constraints Description airportName varchar(100) Not null Name of airport city varchar2(100) Not null City of airport airportId char(5) Primary Key Unique ID 2. Table Airplane Type Fields Domains Constraints Description typeName Char(10) Primary Key Name of plane type first_seats Integer ---- bus_seats Integer ---- Seat capacities for various classes (Max_seats) econ_seats Integer ---- Fields Domains Constraints Description airplaneID Char(5) Primary Key Unique Type ID no_seats Integer ---- Seat numbers 3. Table Airplane 4. Table FlightLeg FlightLeg is a weak entity; its existence depends on the existence of Flight. Fields Domains Constraints Description legNumber Integer Primary Key Number of flight leg 9 5. Table Flight Fields Domains Constraints Description flightNumber Integer Primary Key status varchar(10) Not null route varchar2(10) Not null Number of which flight * Denotes the status of flight The route of flight weekdays varchar3(10) Not null Denotes days of week i.e. Monday, Tuesday *The status will be either active, passive or cancelled according to whether the flight is yet to fly, has flown or has been cancelled. 6. Table LegInstance A leg (segment) is a nonstop portion of a flight. A leg instance is a particular occurrence of a leg on a particular date. Fields Domains Constraints Description legId Integer Primary Key Leg ID noOfAvSeat Integer Not null date varchar(8) Not null Number of available seats Date of leg Fields Domains Constraints Description seatNo Integer Primary Key Seat number 7. Table Seat 8. Table Fare Fare is a week entity; its existence depends on the existence of Flight. Fields Domains Constraints Description fareCode Integer Primary Key Fare code amount Integer Not null Amount of transporting restrictions varchar(100) ---- 10 9. Table Ticket Fields Domains Constraints Description ticketID char(10) Primary Key ID of ticket bookDate Date ---- Date of booking status varchar2(10) ---- *Status of ticket farepaid Float ---- Fare paid including restrictions * Status of the ticket may be active, passive or cancelled. Active means valid ticket booking, passive means the ticket has been invalidated due to a flight cancellation. And cancelled means the ticket has been cancelled by the user. 10. Table Official Fields Domains Constraints Description username varchar2(20) Primary Key password varchar2(20) ---- Username of the official Password for profile name varchar2(100) ---- address varchar2(160) ---- age Integer ---- sex Char(1) Sex: ‘M’, ‘F’ email varchar2(100) ---- nationality varchar2(30) ---- phone Integer ---- Officials’ personal details This table contains all the information about an official. It is kept separate for independence from user profiles, and different requirements as regard to information storage for the users and officials. 11 11. Table User Fields Domains Constraints Description username varchar2(20) Primary Key Username of the user password varchar2(20) ---- Password for profile passportID Char(10) ---- name varchar2(100) ---- address varchar2(160) ---- age Integer ---- sex Char(1) Sex: ‘M’, ‘F’ email varchar2(100) ---- nationality varchar2(30) ---- phone Integer ---- Users’ personal details 12 8. Conclusion In this report we tried to describe our project “Airline Online Reservation System” by defining its properties and designing its conceptual database design. Our website which includes our project reports can be found at: http://airlinegroup10.wikispaces.com/ 13