College of Computing and InformaticsProject
Deadline: Sunday 12/5/2024 @ 23:59
[Total Mark is 14]
Student Details:
CRN:
Name:
Name:
Name:
ID:
ID:
ID:
Instructions:
• You must submit two separate copies (one Word file and one PDF file) using the Assignment Template on
Blackboard via the allocated folder. These files must not be in compressed format.
• It is your responsibility to check and make sure that you have uploaded both the correct files.
• Zero mark will be given if you try to bypass the SafeAssign (e.g. misspell words, remove spaces between
words, hide characters, use different character sets, convert text into image or languages other than English
or any kind of manipulation).
• Email submission will not be accepted.
• You are advised to make your work clear and well-presented. This includes filling your information on the cover
page.
• You must use this template, failing which will result in zero mark.
• You MUST show all your work, and text must not be converted into an image, unless specified otherwise by
the question.
• Late submission will result in ZERO mark.
• The work should be your own, copying from students or other resources will result in ZERO mark.
• Use Times New Roman font for all your answers.
Project Instructions
Pg. 01
Project Instructions
• You can work on this project as a group (minimum 2 and maximum 3 students).
Each group member must submit the project individually with all group member
names mentioned on the cover page.
• This project is worth 14 marks and will be distributed as the following:
o Design a Conceptual Schema using ER modeling concepts, including
(Entities, Relationships, Attributes, Participation (Total or Partial), and
Cardinality).
(3 marks)
o Tables before Normalization.
(2 marks)
o Tables after Normalization Using mapping Algorithm. (3 marks)
o Use MySQL or any other DBMS to create the normalized tables and
populate your tables with at least 10 rows.
(3.5 marks)
o Execute the requested sample queries.
(2.5 marks)
• Each student must submit one report about their chosen Project via the Blackboard
(Email submission will not be accepted and will be awarded ZERO marks)
containing the following:
a) ER Diagram.
b) All schemas before normalization.
c) All schemas after normalization.
d) All SQL statements of:
▪ Creating tables.
▪ Inserting data in tables.
e) All requested queries/results.
• Screenshots from MySQL (or any other software you use) of all the tables after
population and query results.
• You are advised to make your work clear and well presented; marks may be reduced
for poor presentation. This includes filling in your information on the cover page.
Project Instructions
Pg. 02
• You MUST show all your work, and text must not be converted into an image unless
specified otherwise by the question.
•
Late submission will result in ZERO marks being awarded.
•
The work should be your own. Copying from students or other resources will
result in ZERO marks.
Project I
Pg. 03
Project I
Database System for a car rental company
Consider the company requirements as follows:
A car rental company needs a comprehensive database system to streamline its
operations. The system should enable customers to rent cars from multiple
locations (Riyadh, Jeddah, Makkah, Dammam, Al-Khobar, Qasim, Tabuk, ALBaha, Al-Jawf, Ha’il, Aseer, Jazan, Najran). Customers will be required to
register by providing their full name, email, phone number, and date of birth.
The company owns a fleet of cars, which contains important details such as the
manufacturer, model, manufacturing year, license plate, and daily rental rate.
Every rental transaction will involve the customer, the rented car, and the rental
period (start and end dates). As the company operates in multiple cities and
states, multiple rental locations are available, each with its name, street
address, city, state, and postal code.
Customers can rent multiple cars, and each car can be rented by multiple
customers. A specific rental location will be associated with each car.
Moreover, each rental transaction will be linked to a specific rental location. To
maintain data integrity, constraints such as unique customer and car IDs will be
enforced. Rental transactions must be associated with both a customer and a
car.
On the other hand, each car should be linked to a rental location. Reports on
rental transactions will be generated, including customer information, location,
and period. User roles will be implemented for customers and system
administrators. Customers will be able to view available cars, rent cars, and
access their rental history. Meanwhile, administrators will be able to manage
car inventory, rental locations, and customer accounts.
Project I
Pg. 04
The system will ensure that cars are available for rent at specific locations and
track car availability to prevent overbooking. Rental costs will be calculated
based on the rental rate per day. User authentication and authorization will be
implemented to protect customer data and system operations.
Project I
Pg. 05
a) ER Diagram
Project I
Pg. 06
b) Tables before the normalization
Customer
•
Customer_ID (PK)
•
Full_Name
•
Email
•
Phone
•
DOB
Car
•
Car_ID (PK)
•
Location_ID (FK)
•
Manufacturer
•
Model
•
Manufacturing_year
•
Plate
•
Rental_rate
Location
•
Location_ID (PK)
•
Name
•
Street_address
•
City
•
State
•
Postal_Code
Transaction
•
Transaction ID (PK)
•
Location_ID (FK)
•
Rental start date
•
Rental end date
Project I
Pg. 07
Rental
Mapping of M:N by junction table
•
Transaction_ID (PK and FK)
•
Customer_ID (PK and FK)
•
Car_ID (PK and FK)
c) Tables after the normalization
Customer
Now after mapping, we can do normalization up to 3NF.
Step 1: 1NF
We must map the multivalued attribute into a relation of its own. No multivalued
attributes here, so no change.
Step 2: 2NF
Relations are in 2NF because no partial functional dependency exists, no nonkey (nonprime) attribute is determine by a subkey (part of primary key). Here it
is obvious it is in
2NF because the primary key is not composite, i.e., there are no subkeys and
we can
never have a partial functional dependency.
Step 3: 3NF
To be in 3NF, no nonprime attribute of R is transitively dependent on the
primary key, as
in it has no transitive dependencies. In other words, No non-key attribute
determines
another non-key attribute. This is already done.
So, after mapping, the relation is already in 3NF
Pg. 08
Project I
d) Create the normalized tables and populate them with at least 10 rows
Project I
Pg. 09
e) Write the sample requested Queries & Execute them
1. List the first and last names of customers who have rented a car
more than two times.
SELECT c.F_name, c.L_name
FROM Customer as c
INNER JOIN Rental_Transaction as rt ON c.Id = rt.Customer_id
GROUP BY c.Id
HAVING COUNT(rt.Id) > 2;
2. List all cars in Jazan whose manufacturing year is greater than 2007.
SELECT *
FROM Car as c
INNER JOIN Location_Car as lc ON c.Id = lc.Car_id
INNER JOIN Rental_Location as rl ON lc.Location_id = rl.Id
WHERE rl.City = ‘Jazan’ AND c.Manufacturing_Year > 2007;
Project I
Pg. 10
3. List all cars that have been rented from Jeddah city along with
customer information (First and last name, email address, and phone
number)
SELECT c.*, cu.F_name, cu.L_name, cu.Email, cu.Phone_No
FROM Car c
INNER JOIN Rental_Transaction rt ON c.Id = rt.Car_id
INNER JOIN Rental_Location rl ON rt.Location_id = rl.Id
INNER JOIN Customer cu ON rt.Customer_id = cu.Id
WHERE rl.City = ‘Jeddah’;
4. List all cars rented more than three times in all cities.
SELECT c.*, COUNT(rt.Id) AS Rental_Count
FROM Car as c
INNER JOIN Rental_Transaction as rt ON c.Id = rt.Car_id
Project I
Pg. 11
GROUP BY c.Id
HAVING Rental_Count > 3;
5. List all cars with a rental period of more than five days, along with
the customer information (First and last name, email address, and
phone number).
SELECT c.*, cu.F_name, cu.L_name, cu.Email, cu.Phone_No,
rt.Start_Date, rt.End_Date
FROM Car as c
INNER JOIN Rental_Transaction as rt ON c.Id = rt.Car_id
INNER JOIN Customer as cu ON rt.Customer_id = cu.Id
WHERE DATEDIFF(rt.End_Date, rt.Start_Date) > 5;
Pg. 12
Project I