Module Code & Module Title
Level 6 – Data and Web Development
Assessment Type
Submission: Milestone 1
AY 2025 2026
Academic Semester: Autumn Semester 2025
Student Name: Niharika Poudel
London Met ID: 23056271
College ID: NP01CP4S240082
Assignment Due Date: Wednesday, December 24, 2025
Assignment Submission Date: Wednesday, December 24, 2025
Word Count:
I confirm that I understand my coursework needs to be submitted online via MST Classroom under the relevant
module page before the deadline for my assignment to be accepted and marked. I am fully aware that late
submissions will be treated as non-submission and a mark of zero will be awarded.
1. Normalization
Normalization is the systematic approach of breaking complex database tables into simpler, that
reduce data anomalies and improves the overall database performance making us easy to
understand. In the process of normalization, the splitting is performed very carefully so that no
information is lost. The higher the normal form is, the lower the redundancy. Generally, four
forms of redundancy are done over here i.e. UNF, 1NF, 2NF and 3NF.
Figure 1 Movie Booking System Business Case Diagram
1.1 UNF
MovieBooking (User_ID, Username, User_Address, User_Gmail {
Movie_Id, Movie_title, duration, Movie_language, genre, ReleaseDate {
Theatre_City_ID, City_Name, City_Contact, City_Location {
TheatreID, Theatre_Name, Theatre Contact, Threatre_Location {
Hall_ID, Hall_Name, Hall_Capacity {
Show_ID, ShowDate, ShowTime {
Ticket_ID, Ticket_Price, Ticket_seat, Ticket_Satus, Purchase_Date, Purchase_Time
Booking_Date, Booking_Time, Cancellation_Date, Cancellation_Time)}}}}})
1.2 1NF
In 1NF here we eliminate the Repeating Group by creating a separate table for them.
Steps to Achieve 1NF:
1. Identify repeating groups, eliminate it ensuring atomic values in each column.
2. Assign primary keys to newly created tables.
3. Add foreign keys to maintain relationships.
4. Carry forward unique identifier to new relation.
User-1 (User_ID, Username, User_Address, User_Gmail, User_Contact )
Movie-1 (Movie_Id, User_ID* movie_title, duration, movie_language, genre, ReleaseDate)
Theatre_City-1(Theatre_City_ID, Movie_ID, User_Id*, City_Hall_Name,
City_Hall_Location, City_Hall_Contact)
Threatre- (TheatreID, User_ID*, Movie_ID*, Theatre_City_ID* Threatre_Name,
Theatre_Location, Threatre_Contact)
Hall-1 (Hall_ID, TheatreID*, User_ID*, Movie_ID* Hall_Name, Hall_Capacity)
Show-1 (Show_ID, Movie ID* , Hall_ID* Theatre_Id * User_Id* ShowDate, ShowTime)
Ticket -1 (Ticket_ID, Show_Id * User_Id*Movie_ID* Hall_ID*, Ticket_Price, Ticket_seat,
Booking_Date, Booking_Time, Cancellation_Date, Cancellation_Time)
1.3 2NF
A table now is said to be in 2NF if all 1NF requirements are fulfilled and then there is no
partial dependency. At first, we check for the composite key, and in the table containing
composite key we then check for the partial and functional dependencies.
(1) In User table, we don’t look after the partial and functional dependencies as it doesn’t have a
composite key.
User-2 (User_ID, Username, User_Address, User_Gmail, User_Contact )
(2) In table Movie,
Movie (Movie_Id, User_ID* movie_title, duration, movie_language, genre, ReleaseDate)
Movie_ID Movie_Title, duration, Movie_Language, genre, Release_Date) P.D
User_ID NO
Movie_ID, User_ID NO
For movie, now we have,
Movie (Movie_ID, Movie_Title, duration, Movie_Language, genre, Release_Date)
Movie_User (Movie_ID, User_ID)
(3) In table Threatre_City,
Theatre_City-1(Theatre_City_ID, Movie_ID, User_Id*, City_Hall_Name,
City_Hall_Location, City_Hall_Contact)
Threatre_City_ID City_Hall_Name, City_Hall_Location, City_Hall_Contact
User_ID
Movie_ID
Threatre_City_ID, User_ID
Threatre_City_ID, Movie_ID
User_ID, Movie_ID
Theatre_City_ID, Movie_ID, City_ID, User_ID
Theatre_City (Threatre City_ID, City_Hall_Name, City_Hall_Location, City_Hall_Contact)
Theatre_City_ Mapping (City_Hall_ID, Threatre_ID, Movie_ID, User_ID)
(4) In table Theatre,
Theatre (TheatreID, User_ID*, Movie_ID*, Theatre_City_ID*, Theatre_Name,
Theatre_Location, Theatre_Contact)
Movie_ID
Threatre_ID ( Theatre_Name, Theatre_Location, Theatre_Contact)
User_ID
Theatre_City_ID
Movie_ID, User_ID
Movie_ID, Theatre_ID
Theatre_ID, User_ID
Movie_ID, User_ID, Theatre_ID, Threatre_City_ID
For Theatre, now we have,
Threatre (Theatre_ID, Theatre_Name, Theatre_Location)
UserMovieCityTheatre (User_ID, Movie_ID, Threatre_ID, Theatre_City_ID)
(5) For table, Hall
Hall (Hall_ID, TheatreID*, User_ID*, Movie_ID* Hall_Name, Hall_Capacity)
User_ID *, Movie_ID *, Theatre_ID * Hall_ID* NO
Hall (Hall_ID, Hall_Name, Hall_Capacity)
UserMovieCityTheatre_Hall (Hall_ID, Theatre_ID)
(6) For table Show,
Show (Show_ID, Movie ID* , Hall_ID* Theatre_Id * User_Id* Theatre_City_ID*
ShowDate, ShowTime)
User_ID *, Movie_ID*, Threatre_City_ID *, Theatre_ID *, Hall_ID*, Show_ID NO
Show (Show_ID, ShowDate, ShowTime)
UserMovieCityTheatreHallShow (Show_ID, Movie_ID, Hall_ID, Threatre_ID)
(7) For table Ticket,
Ticket (Ticket_ID, Theatre_ID* Theatre_City_ID* Show_Id * User_Id*Movie_ID*
Hall_ID*, Ticket_Price, Ticket_seat, Booking_Date, Booking_Time, Cancellation_Date,
Cancellation_Time)
Ticket (Ticket_ID, Ticket_Price, Ticket_seat, Booking_Date, Booking_Time,
Cancellation_Date, Cancellation_Time)
UserMovieCityTheatreHallShowTicket (Ticket_ID, Show_ID, User_ID, Theatre_ID,
Theatre_City_ID, Movie_ID, Hall_ID, City_ID)
Final Tables after 2NF
1. User-2 (User_ID, Username, User_Address, User_Gmail, User_Contact)
2. Movie (Movie_ID, Movie_Title, duration, Movie_Language, genre, Release_Date)
3. Movie_User (Movie_ID, User_ID)
4. Theatre_City (Threatre City_ID, City_Hall_Name, City_Hall_Location,
City_Hall_Contact)
5. Theatre_City_ Mapping (City_Hall_ID, Threatre_ID, Movie_ID, User_ID)
6. Threatre (Theatre_ID, Theatre_Name, Theatre_Location)
7. UserMovieCityTheatre (User_ID, Movie_ID, Threatre_ID, Theatre_City_ID)
8. Hall (Hall_ID, Hall_Name, Hall_Capacity)
9. UserMovieCityTheatre_Hall (User_ID, Movie_ID, Theatre_City_ID, Hall_ID,
Theatre_ID)
10. Show (Show_ID, ShowDate, ShowTime)
11. UserMovieCityTheatreHallShow (User_ID, Theatre_City_ID, Show_ID, Movie_ID,
Hall_ID, Threatre_ID)
12. Ticket (Ticket_ID, Ticket_Price, Ticket_seat, Booking_Date, Booking_Time,
Cancellation_Date, Cancellation_Time)
13. UserMovieCityTheatreHallShowTicket (Ticket_ID, Show_ID, User_ID, Theatre_ID,
Theatre_City_ID, Movie_ID, Hall_ID, City_ID)