Answer the following questions in a word processing document, export the document as a PDF file, and submit via the course web site.
Consider that a journalist wants to create a simple database for covering the 2010 Tour de France cycling race. The race consists of a number of stages identified by a starting and destination city. Each stage is completed on a single date, and goes over a specific number of kilometers.
Riders (first name, last name, and date of birth, which together are unique) are employed by a team which is identified by a name and is managed by the team boss. The team boss is not a rider and is identified by his/her name. Each team is led by a team leader who himself/herself is also a rider. A team needs to have at least one rider to enroll in the race. Each rider must belong to one and only one team in the race. No two teams are allowed to have the same boss. Riders participate in a number of stages (not necessarily all, as they could give up after a number of days) and it is possible that a rider is absent from all stages. It is also possible that there are not any riders participating in a stage.
For each stage that a rider participates in, his total time spent from start to finish is recorded. Stages are either Mountain, Flat, or Team Time Trial stages. There are no other kinds of stages. For mountain stages the database keeps track of the grade (= difficulty level), the number of mountains in it, and the best climber (a rider). For a flat stage we record the number of intermediate sprints. For a team time trial we record which team won the stage.
For the information of the Best Climber of Mountain Stage and the Winning Team of TeamTimeTrial Stage, please model them as attributes instead of relationships.
(a) Draw an Entity-Relationship diagram for this database using UML notation. Be sure to include all the entities mentioned above, together with attributes (including primary key attributes), relationships and multiplicity constraints. Note that generalization/specification will be involved in the ER diagram.
(b) Construct a relational schema for the ER-diagram. Make sure that you correctly translate Specialization and Many-to-Many relationships.
Please follow carefully the following guidelines when you finish this question:
• Please ONLY include the following entities in the ER diagram: Team, Rider, Stage, Boss, Mountain, Flat and TeamTimeTrial. The last three entities correspond to the three stage types. It is possible that there are more than one relationship between two entities in the diagram; • Please only use the attributes given in the instruction. Please do not make up any other attributes yourself or use other names for the attributes; • Please only use the drawing tools (e.g., Microsoft Word or Visio) that are available for drawing up the ER diagram. It is not allowed to use those tools for automatic generation of the ER diagram;
• Always highlight the primary keys for the entities created in the ER diagram and the relations transformed from the ER diagram; • Please do not use any artificial primary key (such as stage#). All the natural primary keys are provided in the instruction.
Please put the ER diagram on one page, and the relational schema on a second page. Use the course Forum to clarify requirements if necessary.
Continued on next page
8 marks Consider the following relation schema for table R:
Attributes starting with “E” refer to Employees, those starting with “D” refer to Departments, and those with “P” to Projects. Employees, Departments, and Projects are identified by unique numbers. Each department has only one manager, but an employee can be managers for different departments. A department manager is represented by his/her name. The number of hours and hourly rate of pay for an employee to carry out a project are determined by himself/herself and the project. There may be multiple projects that are conducted in a department and multiple departments can be involved in a single project as well. Any employee can be affiliated with a few different departments and work in multiple projects at the same time. A project may involve multiple employees. Names for employees, managers, departments and projects are not generally unique. A project will only be conducted in a single city. Multiple cities from the same country may appear in the table, however, cities are uniquely named within and across all countries.
Answer the following questions:
(a) Identify the Functional Dependencies in R. Be sure to only include functional dependencies that satisfy the following 4 rules: 1) Only include non-trivial FDs; 2) Minimize the determinant (LHS), that is, only include full FDs; 3) Maximize the RHS; and 4) Only include FDs that cannot be derived from other FDs using Armstrongs axioms. Please refer to Page 26 of the Module 10 lecture notes for the details of the above requirements.
(b) Identify the super keys of R based on the Functional Dependencies. You need to use the concept of attribute closure to identify the keys. Intermediate steps in this process should be summarised. There may be many different super keys of R. It would be great if you can present all of them in a smart way rather than enumerating them one by one.
(c) Assume that R is in 1NF. Now normalise the relation to 2NF, 3NF, and BCNF. Be sure to indicate the FDs you are removing at each step, and why. Just giving the decompositions in each of the three Normal Forms is not sufficient.
While it is recommended to answer this question on just one page, you should use no more than two pages for this question.
End of Assignment Questions