The objectives of this assignment are:
- to develop skills in the design of database driven applications
- to develop skills in applying SQL to implement the relational and object-relational design
- to make you aware of the differences between set-processing and block-structured programming paradigms
- to present an opportunity to practice problem solving and communication skills.
Develop a fragment of a hypothetical System for Timely Recording IN Global Yo-yoing (STRINGY), whose underlying logical data model includes the following entities:
- COMPETITOR - an entrant to one or more of the federation's events
- EVENT - each event is specified in terms of the number and type of yo-yos, the length of the string, and any other, more specific rules (e.g. The player must use two long spinning yo-yos and perform tricks with both simultaneously)
- COMPETITION - a selected set of events, in which competitors collect points towards an overall competition winner. Each competition will be specified for a particular class of event (e.g. Single, unattached yo-yo). Occasionally, a single event will form a part of more than one competition.
- VENUE - The location of each event. Several events will take place during an afternoon or evening, at the same venue.
- CLUB - competitors may belong to a club. Competition results also contribute to annual club trophies for each event class, awarded to the club whose members receive the most competition points that year, in that class.
STRINGY is to be used by the UK Yo-yo Society to monitor and manage the results of each event, and the individual and club competitions. It also needs to manage the allocation of events to venues. Use the first deliverable to clearly state any other assumptions that you make, and any additions or changes to the outline data model above.
Deliverables are divided into two stages.
Stage 1 submission is due on Friday, week 5, 4th March 2011, and should contain
(1) Specification of the scope and functionality of your system.
(2) Logical data model:
EAR scheme and its relational representation. RI diagram with its concise but informative description.
Stage 2 is due on Friday, week 10, 15th April 2011, and should contain:
(3) Identification of functional dependencies and normalisation of tables. Table definition & population with the relevant data:
SQL code + final data set (presented in an Appendix). The use of sqlloader is encouraged but not required.
(4) A transaction (delete_X) that causes the biggest propagation effect (i.e. affects most of the database tables),
appropriately designed and coded in SQL:
• specification of pre- and post-conditions
• definition of input & output
• processing logic and the SQL code
• illustrative test run.
(5) A non-trivial query (e.g. involving multiple joins, group functions, qualifiers, correlation variables) appropriately designed and coded in SQL.