Project #2: Due Nov. 1 (Before Class Begins)

PDA (Personal Database Application), Courtesy of J. Widom

Part 1: Normalization

  1. If TA pointed out errors from Project #1, fix those, and tell us How and Where you fixed.

  2. 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.

  3. 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.

  4. For each relation in your schema, find all Candidate Keys and show why they are candidate keys.

  5. 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.

  6. 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

  1. Turn in a hard-copy of your final report.
  2. 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