Project #2: Due Nov. 1 (Before Class Begins)
PDA (Personal Database Application), Courtesy of J. Widom
Part 1: Normalization
- If TA pointed out errors from Project #1, fix those, and
tell us How and Where you fixed.
- For each relation in your schema, specify a set of
non-trivial functional dependencies. Any
functional dependencies that actually hold in the real-world
scenario that you're modeling should be specified.
- For each relation in your schema, from the initial
functional dependencies that you have gathered, derive all
valid non-trivial functional dependencies. Show the detailed steps of your reasoning as much as you can.
- For each relation in your schema, find all Candidate Keys and show why they are candidate keys.
- Is each relation in your schema in Boyce-Codd Normal Form
(BCNF) with respect to the functional dependencies you have found?
For each relation, write down if it is or not, and tell us why.
- If any relation is not in BCNF, decompose the relation
into smaller relations so that resulting relations are in
BCNF. Show us again why this new decomposed relations are in BCNF.
If TA finds any relation not in BCNF but you missed, then you will lose points.
Part 2: Turn-In
- Turn in a hard-copy of your final report.
- Like Proj #1, post your report to project team web space for public access.
Dongwon Lee
Last modified: Mon Oct 18 00:31:32 EDT 2004