UA1150A Coursework: Database Implementation

advertisement
School of Computing & Creative Technologies
Module SA0951a – Database Programming
Module Tutor: L Ball/ P Leimich
Semester 3
Unit 1&2 – replaces original test and coursework
Instructions:
Please see below.
Please submit your completed assessment by one of the following methods :
Posting it in the Submission Box :
Posting it by Recorded Delivery to:
You may 'post' it in the 'Coursework
Submission Box' on level 4 of the Kydd
Building, outside the School Office,
Room 4523.
School of Computing & Creative
Technologies
University of Abertay Dundee
Kydd Building
Dundee
DD1 1HG
The hand-in time for all courseworks is 4 pm.
For all courseworks submitted by 4 pm an electronic receipt will be sent
to your University email account by the end of that working day.
SA0951A Resit 2009-10
Database Design and Implementation
Submission Dates: as per instructions
PLEASE READ THIS FIRST
Your submission depends on your current situation on the module. Please follow
the instructions below:



If you failed both the test and the coursework attempt Section A
If you failed the coursework but passed the test attempt Section B
If you failed the test but passed the coursework attempt section C
Section A
Answer Parts 1 and 2
Part 1 (40%)
Read the following scenario then answer the questions below:
A medical centre wants to create a database to store information about patient
consultations with their GP’s. Each GP makes consultations with many patients and
each patient receives consultations by any number of GP’s. For each consultation the
prescription is stored and the date it was written. Some GP’s may manage other GP’s
and some may be managed by one other GP. Some however have no manager. Each
GP is either resident at the medical centre or seconded in as a locum (i.e. on a
contractual basis to cover absences). If residential, the GP is salaried, otherwise the GP
is paid on an hourly rate as a locum. Also stored is the medical history for each patient
(i.e. a list of conditions that the patient has contracted such as mumps, chicken pox,
measles etc)
1. Draw an (Enhanced) Entity Relationship Model for this scenario using the
terminology taught in class.
Ensure that each entity has a suitable primary key. Each entity should also
have at least two other attributes. Choose appropriate ones if not specified
above.
If you make any additional assumptions, write them down clearly.
2. Map your diagram to a relational data model using the 9 step mapping
technique:
a. Show how your database changes at each stage.
b. Justify any decisions you make during the mapping process.
c. Make sure you show your final set of relations clearly.
PART 1 grading criteria are shown below and each question will assume
approximately equal weightings.
Excellent
20/19/18
Very Good
17/16/15
Good
14/13/12
Satisfactory
11/10/9
Marginal Fail
8/7/6
Clear Fail
3
Little
Evidence
Criteria
Excellent EERM, mapping and choice of attributes.
Very good EERM, mapping and choice of attributes.
Good EERM (some lack of clarity), mapping and choice of
attributes.
Satisfactory EERM, mapping and choice of attributes, but many
design or mapping errors.
The design and mapping of the EERM with its attributes has
many flaws to justify a sound database.
Generally a poorly designed EERM and poor understanding of
mapping and its attributes.
No evidence of understanding
Part 2 (60%)
Task:
To produce a report on an Oracle database implementation from Part 1
You should produce a report to include:
 A list of your DDL code for the medical centre database (including all keys and
any CHECK constraints)
 A presentation of your database tables complete with sample data (Put the
INSERT code used into an appendix)
 A selection of SQL queries (i.e. a demonstration of all 6 SQL clauses using
SELECT, UPDATE, DELETE and nested structures). These can be on the data
dictionary as well as on your database tables.
o Aim to give a range of queries (up to 10), rather than many that look the
same in structure
o Give a description in English of the purpose of each query and show the
results of each query
 A selection of PL/SQL code (i.e. triggers, procedures, functions, cursors)
o no more than 6 separate pieces of annotated code (i.e. include comments in
the program indicating what the code does)
o Give descriptions of purpose and relevance of each piece of code
o Show evidence of how your database changes after running your programs
o
o
If your programs require anything being added to the database (e.g. using
the ALTER or CREATE commands etc) this is fine so long as you justify why
you did it.
We want you to think about the scenario yourself and how your queries and
code add value to the model. We are therefore looking for code that is
relevant to the database application. The weightings of the assessment are
shown in the marking criteria below.
Part 2 marking criteria
Excellent
20
19
18
Very Good
17
16
15
Good
14
13
12
Satisfactory
11
10
9
Marginal Fail
8
7
6
Clear Fail
3
DDL Report (20%)
Excellent and accurate
DDL including constraint
definitions and data
insertion.
Very good DDL and
constraint definition
SQL Report (30%)
Excellent query descriptions and
range of relevant SQL structures
demonstrated.
Generally good DDL and
constraint definition
Good query descriptions and
range of relevant SQL structures
demonstrated.
Satisfactory DDL and
constraint definition
Satisfactory query descriptions
and range of relevant SQL
structures demonstrated.
Fairly poor DDL
generally.
Generally weak query descriptions
and range of relevant SQL
structures demonstrated.
Serious flaws in all
aspects of DDL
Little demonstration of SQL
structures and descriptions.
Very good query descriptions and
range of relevant SQL structures
demonstrated.
PL/SQL (50%)
Excellent PL/SQ, relevant,
annotated and shows an
advanced grasp complete
with excellent testing.
Very good PL/SQL, relevant
and shows a very good
grasp, complete with very
good testing.
Good PL/SQL mostly
relevant and shows a good
grasp, complete with good
testing.
Satisfactory PL/SQL, quite
relevant and shows a good
enough grasp, including in
testing.
Underperformed with.
PL/SQL, lacking relevance
and shows a fairly weak
grasp, including in testing.
Generally very weak with
little to no evidence of
testing and little description
Section B
This counts for 60% only as you have already passed 40%.
Task:
To produce a report on an Oracle database implementation from a specified scenario.
Scenario:
The tables below model a relational database for subscribers to a social
networking website.
PERSON{personID, lastName, firstName, dateofBirth, dateSubscribed, mainphotoID*}
LIKES{personID*, likesPersonID*}
MEDIAFILE{mfID, dateRecorded, fileSize, personID*)
PHOTO{photoID*, fileType, dotsPerInch}
VIDEO{vidID*, length}
HOBBIES{personID*, hobby}
Notes:
1. Underline is the Primary Key and * is the Foreign Key.
2. Foreign keys in Photo and Video link to MediaFile table
3. personID Foreign key in HOBBIES links to PERSON
4. LIKES models a recursive many-to-many relationship on PERSON and has two Foreign
key links to PERSON
5. mainPhotoID Foreign Key in PERSON holds the principal photograph and links to
PHOTO in a one-to-one relationship
6. personID Foreign key in MEDIAFILE links to PERSON
You should produce a report to include:
 A list of your DDL code for the above database (including all keys and any
CHECK constraints)
 A presentation of your database tables complete with sample data (Put the
INSERT code used into an appendix)
 A selection of SQL queries (i.e. a demonstration of all 6 SQL clauses using
SELECT, UPDATE, DELETE and nested structures). These can be on the data
dictionary as well as on your database tables.
o Aim to give a range of queries (up to 10), rather than many that look the
same in structure
o Give a description in English of the purpose of each query and show the
results of each query
o Give a description in English of the purpose of each query and show the
results of each query
 A selection of PL/SQL code (i.e. triggers, procedures, functions, cursors)
o no more than 6 separate pieces of annotated code (i.e. include comments in
the program indicating what the code does)
o Give descriptions of purpose and relevance of each piece of code
o
o
o
Show evidence of how your database changes after running your programs
If your programs require anything being added to the database (e.g. using
the ALTER or CREATE commands etc) this is fine so long as you justify why
you did it.
We want you to think about the scenario yourself and how your queries and
code add value to the model. We are therefore looking for code that is
relevant to the database application. The weightings of the assessment are
shown in the marking criteria below.
Marking criteria
DDL Report (20%)
Excellent
Excellent and accurate
20
DDL including constraint
19
definitions and data
18
insertion.
Very Good
Very good DDL and
17
constraint definition
16
15
Good
Generally good DDL and
14
constraint definition
13
12
Satisfactory Satisfactory DDL and
11
constraint definition
10
9
Marginal Fail Fairly poor DDL
8
generally.
7
6
Clear Fail
Serious flaws in all
3
aspects of DDL
SQL Report (30%)
Excellent query descriptions and
range of relevant SQL structures
demonstrated.
Very good query descriptions and
range of relevant SQL structures
demonstrated.
Good query descriptions and
range of relevant SQL structures
demonstrated.
Satisfactory query descriptions
and range of relevant SQL
structures demonstrated.
Generally weak query descriptions
and range of relevant SQL
structures demonstrated.
Little demonstration of SQL
structures and descriptions.
PL/SQL (50%)
Excellent PL/SQ, relevant,
annotated and shows an
advanced grasp complete
with excellent testing.
Very good PL/SQL, relevant
and shows a very good
grasp, complete with very
good testing.
Good PL/SQL mostly
relevant and shows a good
grasp, complete with good
testing.
Satisfactory PL/SQL, quite
relevant and shows a good
enough grasp, including in
testing.
Underperformed with.
PL/SQL, lacking relevance
and shows a fairly weak
grasp, including in testing.
Generally very weak with
little to no evidence of
testing and little description
Section C
This counts for 40% only as you have already passed 60%.
Read the following scenario then answer the questions below:
A medical centre wants to create a database to store information about patient
consultations with their GP’s. Each GP makes consultations with many patients and
each patient receives consultations by any number of GP’s. For each consultation the
prescription is stored and the date it was written. Some GP’s may manage other GP’s
and some may be managed by one other GP. Some however have no manager. Each
GP is either resident at the medical centre or seconded in as a locum (i.e. on a
contractual basis to cover absences). If residential, the GP is salaried, otherwise the GP
is paid on an hourly rate as a locum. Also stored is the medical history for each patient
(i.e. a list of conditions that the patient has contracted such as mumps, chicken pox,
measles etc)
1. Draw an (Enhanced) Entity Relationship Model for this scenario using the
terminology taught in class.
Ensure that each entity has a suitable primary key. Each entity should
also have at least two other attributes. Choose appropriate ones if not
specified above.
If you make any additional assumptions, write them down clearly.
2. Map your diagram to a relational data model using the 9 step mapping
technique:
d. Show how your database changes at each stage.
e. Justify any decisions you make during the mapping process.
f. Make sure you show your final set of relations clearly
Grading criteria are shown below and each question will assume
approximately equal weightings.
Excellent
20/19/18
Very Good
17/16/15
Good
14/13/12
Satisfactory
11/10/9
Marginal Fail
8/7/6
Clear Fail
3
Little
Evidence
Criteria
Excellent EERM, mapping and choice of attributes.
Very good EERM, mapping and choice of attributes.
Good EERM (some lack of clarity), mapping and choice of
attributes.
Satisfactory EERM, mapping and choice of attributes, but many
design or mapping errors.
The design and mapping of the EERM with its attributes has
many flaws to justify a sound database.
Generally a poorly designed EERM and poor understanding of
mapping and its attributes.
No evidence of understanding
Download