You have been tasked to turn these data into a relational database. You will need to build the database and write a report about what you did. You only need to submit the report. It should have the following sections:
a. Introduction – Introduce the business requirements and describe one business rule and one use case you can identify from the scenario given above.
10 marks
b. ER Diagram – Identify the entities and relationships in the scenario given above and draw an ER diagram showing the entities, attributes, relationships, and cardinality. Do not decompose any of the relationships at this point.
10 marks
c. Database Schema – Decompose the design to create a schema to store the data in a suitable normal form (2NF or 3NF). Say which normal form the design is in and justify your choice. List the tables and show the fields, primary keys, and any foreign keys in your schema. Describe any assumptions you have made or any additional fields you have added to your design. Make sure all the primary keys are a sensible choice and introduce new fields if needed. Draw a schema diagram to illustrate your design.
20 marks
d. Create Tables – Create a MySQL database to store the schema that you designed in part c. above. Create the tables using SQL statements and reproduce the code in your answer report. Define the keys and choose appropriate data types and any other restrictions you think are required.
20 marks
e. Insert the Data – Insert the data given above into the appropriate tables. Give a single example of an SQL statement that you used to insert one row of data into one of the tables.
10 marks
f. SQL Queries – Carry out the appropriate SQL queries of answering the following questions. For each query, give the SQL code and the result of running the query on the data in your database. Marks are given by each question.
i. Return a list of all dog names (2).
ii. Return a list of all dog breeds, showing each breed only once (3).
iii. Write a query to count how many dogs have the string “Labr” in their breed (2).
iv. Calculate the average age of all dogs in the kennel (2).
v. Calculate the average age of dogs by breed (3).
vi. Find the breed of dog that has an average age of more than 8 (4).
vii. List all the dog names along with their owners’ names (4).
viii. List all the dogs who have had a vet note recorded. Give the name of the dog and the date of the vet note (5).
ix. List all dogs, giving their name, and if a dog has had a vet visit, give the note for the visit, otherwise, if the dog has not visited the vet, return null in the vet note field (5).