COIT20247 Database Design and Development (T2 2016)
Assessment item 2—Assignment 2
Due date 11:45pm on Friday of Week 10 (September 23, 2016)
Length Not applicable
This assessment item relates to the course learning outcomes numbers 1, 2 and 3 as stated in the course profile.
The sample solution of assignment 1 will be released on the course 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:
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 (2) 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. There will be one student name per Student ID, since only one name is recorded for each student. There will be one address per Student ID; even though a student may have multiple address (e.g. a home address and a work address), the case study states that there is a need to record the home address only. There will be only one date of birth per Student ID. 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 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.
2 Relational database implementation
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 course lecturer/tutor will be able to provide adequate support to you in the use of this tool. If you choose to use a different DBMS, then there is no guarantee that your lecturer/tutor will be able to provide enough support to you. The remainder of this document assumes that you are using MS-Access.
In implementing the ER model provided, you must complete the following tasks:
• Create all the relations in a Microsoft Access database. Consider each attribute in every table and make appropriate choices regarding data types & sizes, indexes, required/not required and validation rules. Your choices should be appropriate for each attribute and should support data integrity. (Note: see the Data Integrity section below for specific data integrity requirements)
• Create relationships as appropriate. Enforce referential integrity for all appropriate relationships in the database. Apply cascade update and/or delete options wherever necessary.
• Review the default indexes created by Access for each table. You should ensure that the indexes follow the guidelines given in the course textbook.
• 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 may depend on the actual sample data populated.
You are required to implement integrity constraints within the database to enforce the following requirements:
For the table TreeRemoval:
• All fields must be entered.
• Charges should be positive and expressed 2 decimals only.
• Number Of Trees should be positive round numbers only.
For the table Inspection:
• Date should not be null.
For the table Owner:
• Name should not be null.
• State value should be limited to Australian States/Territories only.
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. Display the details of council inspector(s) who has/have never performed any inspection.
2. For each of the suburbs, display the number of successful applications.
3. For each of the applications display the application number, details of owner and total charges.
4. Display the lowest, the highest and average number of applications in the advertisements.
5. Which application(s) did receive the highest number of objections? Display the details of those application(s) and their respective applicant(s) in descending order of their name.
6. Display the details of the applicant(s) whose name contains the word “build”. Show the results in ascending order of their name.
Note: The word ‘name’ is a reserved word in MS Access. Wherever you use it for SQL query, you need to put a bracket like [name]. Follow the same technique for other reserved words too.
Create a simple report object showing the details of all the inspections carried out by each inspector. The report should have appropriate heading and display the details of inspections performed by each of inspector separately. The details of inspection by individual inspector have to be displayed in ascending order of the date of inspection.
• Create a query that lists all details needed for a report. If you are unable to formulate this query, then create a report that is based directly on the table(s). [Note: you will not be able to obtain full marks for the report creation if you base your report directly on the table(s) and some criteria are not met in your reports.]
• Use the report wizard to generate a basic report based upon your query [or the table(s) if you were unable to formulate the query].
• Once the report wizard finishes, switch to design view and rename the labels appropriately; for example, change the label ‘FirstName’ to ‘First Name’.
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.
What you should submit
A Microsoft Access database files containing:
1. Tables with sample data
4. Integrity constraints
5. Report (object).
A Microsoft Word document containing:
1. Two relations with functional dependencies and demonstration of normalization
2. Implementation report
Your document should contain appropriate identification information (your student number, name, course number, etc.) and should contain the relevant headings for each section.
• 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 (at the end under the heading Acknowledgements is a good place) 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 course materials' if that was all that you used.
• Extension requests (by filling in an online form) should be submitted before the assignment due date.
• Before submitting your assignment, review the marking criteria as shown 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.
COIT20247 Assignment 2 Marking Sheet
1 Relational database implementation (12 marks) Available marks
Set of relations correctly mapped from ERD 3
Functional dependencies correctly listed for two of the relations 2
Normalization correctly listed for two of the relations 2
Relationships set up correctly, referential integrity enforced, appropriate use of cascade update/delete 2
Data types & sizes selected appropriately 2
Indexes – Indexes are appropriate 1
2 Data integrity (4.5 marks)
Data integrity correctly implemented for table TreeRemoval 1.5
Data integrity correctly implemented for table Inspection 1.5
Data integrity correctly implemented for table Owner 1.5
3 Queries (12 marks)
Query 1 2
Query 2 2
Query 3 2
Query 4 2
Query 5 2
Query 6 2
4 Report (3.5 marks)
Underlying query/queries has/have been created and are correct 1.5
Report layout and heading are appropriate; grouping and sorting are appropriate 2
5 Implementation report (3 marks)
Implementation report discusses appropriate issues 3
Sub-total before any possible deductions 35
Late penalty (enter as the number of days late)
Assignment 2 total /35