0% found this document useful (0 votes)
42 views15 pages

Flight Booking System Database Design

The document outlines a project for a Flight Booking System as part of a Database Design Concepts module at Eduvos. It details the normalization process from unnormalized data to Third Normal Form (3NF), including the creation of an ER diagram and mapping entities to database tables. The system aims to streamline flight bookings, allowing customers to view and book flights online while managing customer and flight details efficiently.

Uploaded by

Ntoki Mchunh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views15 pages

Flight Booking System Database Design

The document outlines a project for a Flight Booking System as part of a Database Design Concepts module at Eduvos. It details the normalization process from unnormalized data to Third Normal Form (3NF), including the creation of an ER diagram and mapping entities to database tables. The system aims to streamline flight bookings, allowing customers to view and book flights online while managing customer and flight details efficiently.

Uploaded by

Ntoki Mchunh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

EDUVOS (PTY) LTD

School of Information Technology

MODULE NAME: Database Design Concepts


MODULE CODE: ITDCA0-44
PROJECT TITLE: Flight Booking System

STUDENT NAME: Ntokozo Mchunu


STUDENT NUMBER:EDUV10936826

LECTURER NAME: Edwin Matshipa


DATE OF SUBMISSION: 11/7/2026

DECLARATION

I, Ntokozo Mchunu, hereby declare that this project is my own original work.
All sources have been properly acknowledged.
I understand that plagiarism will result in disciplinary action and possible loss of marks.
Table of Contents
EDUVOS (PTY) LTD......................................................................................................................1
1. Introduction................................................................................................................................3
2. Problem Summary.....................................................................................................................3
Normalisation.................................................................................................................................4
0NF (Unnormalised Form).........................................................................................................4
1NF (First Normal Form)............................................................................................................4
2NF (Second Normal Form).......................................................................................................5
3NF (Third Normal Form)...........................................................................................................7
ER Diagram from 3NF...................................................................................................................9
Mapping from ERD to Tables.......................................................................................................11
References..................................................................................................................................14
1. Introduction
This project is about creating a database for a South African Flight Booking Agency. The system
will let customers view flights and, if registered, book tickets online. Customers can search for
flights using dates, times, prices, and destinations.

The database will be designed by identifying entities, defining relationships, normalising data
from 0NF to 3NF, creating an ER diagram, and mapping the entities to tables. This will make
sure the system is accurate, organised, and easy to manage.

2. Problem Summary
Currently, the flight booking process is done manually, which causes errors and delays.
Customers cannot easily see flight availability or book tickets online.

To solve these problems, the proposed system will:

 Allow registered customers to make bookings and unregistered users to view flights.

 Record essential customer details such as ID/passport number, name, contact


information, and optional postal address.

 Manage flight details such as flight number, name, date, class, capacity, and
availability.

 Support three flight classes:


o 1st Class (Executive)

o 2nd Class (Business)

o 3rd Class (Economy)

 Allow bookings for additional passengers without requiring registration.

 Apply discounts for minors (under 16) and seniors (over 65) based on ID numbers.

This database will serve as the foundation for an online booking system, enabling fast,
accurate, and secure flight management.

Normalisation
0NF (Unnormalised Form)
At this stage, the data is not organised and contains repeating groups and redundancy. The
tables are “raw” and hard to manage.

Example of 0NF table for Flight Booking System:

CustomerI Nam Email FlightNumb FlightDat Class PassengerNam


D e er e e

1 John john@[Link] SA101 2025-11- Econom Sarah, Mike


10 y

2 Mary mary@[Link] SA102 2025-11- Busines Tom


m 11 s

3 Peter peter@[Link] SA103 2025-11- Econom Alice, Bob, John


m 12 y

Problems in 0NF:

1. Repeating groups – the PassengerName column contains multiple names in a single


cell.

2. Redundant data – flight and customer information repeats for each passenger.
3. Hard to maintain – adding or removing passengers or flights is prone to errors.

4. Difficult to query – searching for a specific passenger or flight is not easy.

This is why normalisation is needed: to organise data into atomic values, reduce redundancy,
and make the database efficient and easy to manage.

1NF (First Normal Form)


In 1NF, all data must be atomic, meaning no column should contain multiple values. Each field
holds only one piece of information, and repeating groups are removed.

Example of 1NF for Flight Booking System:

Customer Table (basic info)

CustomerI Nam Email


D e

1 John john@[Link]

2 Mary mary@[Link]

3 Peter peter@[Link]

Passenger Table (each passenger in a separate row)

PassengerI CustomerI FlightNumbe FlightDate Class PassengerNam


D D r e

1 1 SA101 2025-11-10 Economy Sarah

2 1 SA101 2025-11-10 Economy Mike

3 2 SA102 2025-11-11 Business Tom

4 3 SA103 2025-11-12 Economy Alice

5 3 SA103 2025-11-12 Economy Bob

6 3 SA103 2025-11-12 Economy John

Changes from 0NF to 1NF:

1. Each PassengerName now occupies one row per passenger.

2. Repeating groups are removed.


3. All data is now atomic.

4. Easier to add, delete, or search for passengers or flights.

At this stage, the table is still not fully normalised, because flight information and customer
info is still repeated. This will be fixed in 2NF.

2NF (Second Normal Form)


In 2NF, the table must first be in 1NF, and all non-key attributes must depend on the whole
primary key. Any partial dependencies are removed by creating separate tables.

Step 1 – Separate tables to remove partial dependencies

Customer Table

CustomerI Nam Email Phone PostalAddres


D e s

1 John john@[Link] 0821234567 12 Main St

2 Mary mary@[Link] 0839876543 45 Oak Rd

3 Peter peter@[Link] 0815556789 89 Pine Ave

Flight Table

FlightI FlightNumbe FlightDate DeparturePoin ArrivalPoint


D r t

1 SA101 2025-11-10 Johannesburg Cape Town

2 SA102 2025-11-11 Durban Johannesburg

3 SA103 2025-11-12 Pretoria Durban

Booking Table

BookingI CustomerI FlightI Class BookingDat TotalPassenger


D D D e s

1 1 1 Economy 2025-10-01 2

2 2 2 Business 2025-10-02 1

3 3 3 Economy 2025-10-03 3

Passenger Table
PassengerI BookingI Nam Ag IsMino IsSenio
D D e e r r

1 1 Sarah 14 Yes No

2 1 Mike 30 No No

3 2 Tom 45 No No

4 3 Alice 10 Yes No

5 3 Bob 70 No Yes

6 3 John 50 No No

Changes from 1NF to 2NF:

1. Flight info and customer info are now in separate tables.

2. Each table has a single primary key and attributes depend only on that key.

3. Redundancy is reduced.

4. Easier to update flight or customer information without affecting other data.

At this stage, the database is in 2NF, but there may still be transitive dependencies which will
be fixed in 3NF.

3NF (Third Normal Form)


In 3NF, the table must already be in 2NF, and all non-key attributes must depend only on the
primary key, not on another non-key attribute. This removes transitive dependencies and
further reduces redundancy.

Customer Table

CustomerI Nam Email Phone PostalAddres


D e s

1 John john@[Link] 0821234567 12 Main St

2 Mary mary@[Link] 0839876543 45 Oak Rd

3 Peter peter@[Link] 0815556789 89 Pine Ave

Flight Table

FlightI FlightNumbe FlightDate DeparturePoin ArrivalPoint


D r t

1 SA101 2025-11-10 Johannesburg Cape Town

2 SA102 2025-11-11 Durban Johannesburg

3 SA103 2025-11-12 Pretoria Durban

FlightClass Table

ClassI ClassNam
D e

1 Economy

2 Business

3 Executive

Booking Table

BookingI Customer FlightI ClassI BookingDa TotalPasseng DiscountAppli


D ID D D te ers ed

1 1 1 1 2025-10-01 2 Yes

2 2 2 2 2025-10-02 1 No

3 3 3 1 2025-10-03 3 Yes

Passenger Table

PassengerI BookingI Nam Ag IsMino IsSenio


D D e e r r

1 1 Sarah 14 Yes No

2 1 Mike 30 No No

3 2 Tom 45 No No

4 3 Alice 10 Yes No

5 3 Bob 70 No Yes

6 3 John 50 No No

FlightCapacity Table
CapacityI FlightI ClassI TotalSeat SeatsBooke
D D D s d

1 1 1 100 50

2 1 2 50 30

3 1 3 200 180

Key Points About 3NF

1. All tables are now fully normalised.

2. Each attribute depends only on its table’s primary key.

3. Redundancy is minimised and data integrity is ensured.

4. Makes updates, deletions, and inserts safer and easier.

The database is now ready for creating the ERD and mapping to actual tables.

ER Diagram from 3NF


This ER Diagram shows the main tables (entities) and how they are linked in the Flight Booking
System.
It is based on the database after it was normalised to Third Normal Form (3NF).

Entities and Attributes

Customer

 CustomerID (PK)
 Name

 Email

 Phone

 BookingStatus

Flight

 FlightNo (PK)

 FlightName

 Date

 Destination

 ClassID (FK)

 Capacity

 Availability

Class

 ClassID (PK)

 ClassName

 Description

Booking

 BookingID (PK)

 CustomerID (FK)

 FlightNo (FK)

 PassengerName

 DiscountID (FK)

Discount

 DiscountID (PK)

 Type

 Description

Relationships

 One Customer can make many Bookings (1–M)


 One Flight can have many Bookings (1–M)

 One Class can be used by many Flights (1–M)

 One Discount can apply to many Bookings (1–M)

ERD Diagram

Make sure:

 Each table is clearly labelled

 PK = Primary Key

 FK = Foreign Key

 Use lines or crow’s foot notation to show the 1–M relationships

Mapping from ERD to Tables


After creating the ERD, the entities are changed into database tables. Each table has a Primary
Key (PK) that identifies each record and Foreign Keys (FK) that link tables together.

1. Customer Table

Description:
This table keeps information about customers who make flight bookings.
Primary Key: CustomerID

CREATE TABLE Customer (


CustomerID INT PRIMARY KEY,

Name VARCHAR(50),

Email VARCHAR(50),

Phone VARCHAR(20),

PostalAddress VARCHAR(100)

);

2. FlightClass Table

Description:
This table shows the different flight classes, such as Economy, Business, or First Class.
Primary Key: ClassID

CREATE TABLE FlightClass (

ClassID INT PRIMARY KEY,

ClassName VARCHAR(30)

);

3. Flight Table

Description:
This table stores details about each flight, including the flight number, date, and route.
Primary Key: FlightID

CREATE TABLE Flight (

FlightID INT PRIMARY KEY,

FlightNumber VARCHAR(10),

FlightDate DATE,

DeparturePoint VARCHAR(50),

ArrivalPoint VARCHAR(50)

);

4. Booking Table

Description:
This table stores all booking details made by customers for specific flights and classes.
Primary Key: BookingID
Foreign Keys: CustomerID → Customer, FlightID → Flight, ClassID → FlightClass

CREATE TABLE Booking (

BookingID INT PRIMARY KEY,

CustomerID INT,

FlightID INT,

ClassID INT,

BookingDate DATE,

TotalPassengers INT,

DiscountApplied BOOLEAN,

FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID),

FOREIGN KEY (FlightID) REFERENCES Flight(FlightID),

FOREIGN KEY (ClassID) REFERENCES FlightClass(ClassID)

);

5. Passenger Table

Description:
This table keeps information about all passengers for a booking, including their age and if they
are minors or seniors.
Primary Key: PassengerID
Foreign Key: BookingID → Booking

CREATE TABLE Passenger (

PassengerID INT PRIMARY KEY,

BookingID INT,

Name VARCHAR(50),

Age INT,

IsMinor BOOLEAN,

IsSenior BOOLEAN,

FOREIGN KEY (BookingID) REFERENCES Booking(BookingID)

);
6. FlightCapacity Table

Description:
This table manages how many seats are available for each flight and class, and how many have
been booked.
Primary Key: CapacityID
Foreign Keys: FlightID → Flight, ClassID → FlightClass

CREATE TABLE FlightCapacity (

CapacityID INT PRIMARY KEY,

FlightID INT,

ClassID INT,

TotalSeats INT,

SeatsBooked INT,

FOREIGN KEY (FlightID) REFERENCES Flight(FlightID),

FOREIGN KEY (ClassID) REFERENCES FlightClass(ClassID)

);

References
1. Eduvos. (2024). Database Management Systems Study Guide. Eduvos Learning
Management System (LMS). Retrieved from [Link]

2. Eduvos. (2024). Practical Assessment Task (PAT) Guidelines for Information Systems.
Eduvos Academic Resources.

3. Connolly, T., & Begg, C. (2019). Database Systems: A Practical Approach to Design,
Implementation, and Management (7th ed.). Pearson Education.

4. Coronel, C., & Morris, S. (2018). Database Systems: Design, Implementation, and
Management (13th ed.). Cengage Learning.
5. Oracle Academy. (2023). Database Design and SQL Fundamentals. Oracle Education
Foundation.

6. W3Schools. (2024). SQL Tutorial. Retrieved from [Link]

7. TutorialsPoint. (2024). Database Normalization. Retrieved from


[Link]

You might also like