Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

COIT20247 Database Design and Development (T1 2022)

Assessment item 2—Assignment 2

Objectives

This assessment item relates to the unit learning outcomes numbers 1, 2 and 3 as stated in the unit profile.

Introduction

The sample solution of assignment 1 will be released on the unit website approximately two

(2)  weeks after the assignment 1 due date.  You must use that sample solution of assignment 1 only for the following tasks:

Assessment task

ER Mapping and Normalization

a) Map the ER diagram, 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:

· List all the functional dependencies exist in the relation.

· Demonstrate that the relation meets Third Normal Form (3NF).

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.

Use MySQL Workbench to create the logical database model

Based on the solution of assignment 1 released on the unit website, use MySQL Workbench 8.0 CE to create a logical database model with the relations as per the previous

section-1 (E-R mapping and normalization).  You need to specify the primary keys, foreign keys, and create relationships as appropriate in the E-R diagram. Save the file as cqgdb.mwb

Relational database implementation using MySQL Server

Use MySQL Server to perform the physical implementation of the designed database from the above logical model and export the database file as cqgdb.sql. In implementing the ER model provided, you must complete the following tasks:

· Create all the relations in a MySQL database. Consider each attribute in every table and make appropriate choices regarding data types & sizes, null allowed or not. Your choices should be appropriate for each attribute and should support data integrity.

· Indexing can speed up search for particular tables or queries. Review the guideline given in the textbook regarding set-up of index. You should at least ensure the last name and phone attributes in the Customer table to be indexed.

· Populate the database with sample data of your own. You must include sufficient sample data to test your queries and report. Please note that the expected result of query questions as below should depend on the actual sample data populated.

You also can implement your database using MySQL Workbench or via Command Line Client. (Note: Week 6 lecture and tutorial provide the instructions how to export a MySQL database file)

Stored procedures

You are required to write two stored procedures as mentioned below:

(i) Write a stored procedure that can be used to show the details of customer whose name, either in full or in part, is passed into the procedure through a parameter.

(ii) Write a stored procedure that has two parameters.  The first parameter is used to receive the partId value. When the stored procedure is called, the value for the first parameter will be passed to the procedure. The procedure will find out the relevant part price and assign it to the second parameter so that the second parameter can be used to display the part price after the completion of the procedure.

Information requests

Create queries to answer the following information requests. You should type the query codes manually using SQL view/editor under MySQL Server.

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. The expected result is under each question. Your result should be in a similar format but may have a different content, depending on the data you populated in your database). Under MySQL Server, save each query question SQL statement as a file such as q1.sql, q2.sql, …, q5.sql

1.  For each service, display its serviced, respective service type and the total service charges.

Hint: total service charges = parts used charges + labour charges

 

2.  For each of the parts that is used in a service, calculate the part used charges and display as mentioned below:

Hint: part used charges = quantity * unit price

 

3.  Which customers have not placed any work order?  Display their id, name and address details in ascending order of name.

 

4.  For each work order, calculate the total charges and display accordingly.

 

5. Display the details of the service(s) that have the highest labour charges than that of the remaining services.

 

Implementation Report

You must also submit a short implementation report describing the following:

· any interesting or difficult aspect that you faced during the implementation of this database

· methodologies used to solve the super type and sub type relationship to form appropriate relations

· methodology used for solving query 1 or query 2

· Copy and paste the screen shots showing the outputs produced by each of the queries (q1 to q5) along with the respective SQL query.

e.g.,

 

What you should submit

Place the following files in a zip file named Ass2.zip and submit via moodle assignment 2 link.

1. MySQL Workbench logical database model file – cqgdb.mwb

2. MySQL database file – cqgdb.sql containing:

· Create table SQL statements

· Tables with sample data with insert SQL statements

· Create indexes

· The required stored procedures

3. The files of answering five information request questions (q1.sql, q2.sql, …., q5.sql)

4. A Microsoft Word document containing:

· A set of relations mapped from E-R diagram (3NF)

· Two relations with functional dependencies and demonstration of normalization

· Implementation report

Your document should contain appropriate identification information (your student  number, name, unit number, etc.) and should contain the relevant headings for each section.

Important points

· You must work individually on this assignment.

· The model solution to this assignment will be released approximately two (2) weeks after the due date.

· Assignments that are submitted after the release of the model solution will receive zero marks.

· You must state in your word document the details of all materials and sources that you used to complete this assignment. This may be as simple as 'This assignment was completed using only the COIT 20247 unit materials'.

· Extension requests (by filling in an online form) should be submitted before the assignment due date.

· Before submitting your assignment, review the marking criteria provided on the last page of this document. Ensure that all the criteria are addressed in your submission.

· Penalties related to late submission and plagiarism will be applied as per University policy.