a) Map the ERD, from the sample solution, into a set of relations in at least Third Normal Form (3NF). You must ensure that your relations meet 3NF. There is no need to show your working.
b) Select any two of your relations from the previous step, 1a), and perform the following for each of those two relations:
For your help, an example for a Student relation's 3NF justification has been provided below:
STUDENT (StudentID, Name, Address, DateOfBirth)
i. The primary key is StudentID which identifies a student. There will be one student name per Student ID because only one name is recorded for each student. Even though a student may have multiple addresses (e.g. a home address and a work address), the case study states that there is a need to record the home address only and hence there will be only one address for each student. There will be only one date of birth for each student. Thus, there are no repeating groups. Hence, this relation is in 1NF.
ii. The primary key is StudentID. This is the only candidate key since Name is not guaranteed to be unique (two different students may have the same name). Address is also not guaranteed to be unique. This means that Student ID functionally determines every other attribute in the table. There is a single valued simple candidate key (StudentId) and therefore no partial dependencies are possible. Hence, the relation is in 2NF.
iii. Name cannot be used to functionally determine any other attribute in the table since two different students may have the same name; likewise for address and date of birth. Therefore there are no transitive dependencies in the table. Therefore it meets the requirements of first, second and third normal form.
Note: Use the relations that you created in the above step 1- Normalization to create a database. The recommended tool for this work is Microsoft Access, version 2010 or later. One reason for recommending Microsoft Access is that your unit lecturer/tutor will be able to provide adequate support to you in the use of this tool. The remainder of this document in Part A assumes that you are using MS-Access.
In implementing the ER model provided, you must complete the following tasks:
You are required to implement integrity constraints within the database to enforce the following requirements:
Create queries to answer the following information requests. Note: Do not use the Access query builder (QBE) to create your queries you should type the queries manually using SQL view/editor.
The marking process of the queries for information requests may also consider the effectiveness of your SQL statements that have been used in the queries. It is important that your SQL statement must reflect the correct business logic & SQL syntax. (Use enough sample data so that the output is produced by each and every query).
1. Which cars have never been rented out? List the details that include the car's registration number, make and model, number of seats, manufactured year, category as well as the daily hire rate.
2. How many bookings have been processed by each employee? Show the employee's name, working location and the number of bookings processed. Order the list so that the employee who processed the most bookings appear first.
3. Find out the customers who made bookings for a minivan. This includes customer's name, phone and the booking date.
4. Find out the rental activities that have the most expensive cost. This includes the customer names, car registration numbers, make and models, start hire dates, end hire dates and the costs.
5. Show details of all rental activities. These details include customer name, pick up location, drop off location, start hire date, end hire date and the cost.
Create a simple report object showing the details of the each rental activity occurred after 1 st July 2018. The details include the customer first name, last name, start hire date, end hire date, and the cost. At the end of report, display the average value of the cost for these rental activities.
Hints:
You must also provide a short implementation report describing your experiences with this assignment. You may discuss any of the following:
1. Any two interesting things/procedures you learnt by doing this assignment.
2. Any one requirement of the assignment that was relatively difficult / complex to solve but successfully completed by you.
Use the implementation report to demonstrate that you have thought carefully about the issues that arise when implementing a relational database.
Consider a simplified version E-R model on the car rental activity, where you only deal with three relations Customer, Rental and Car (ignore all other relations) based on the E- R model provided for assignment 1 sample solution. Using MySQL Workbench to create a database with the above three relations, include specifying the primary key and foreign key where it is necessary, and populate the necessary sample data,