Lab Assignment 4

CMPS 180 Fall 02

Due Monday, November 18 at midnight

In this lab you will revisit your database schema from the first lab, and work on improving the schema. If you do not like your original schema, feel free to generate a new one. Make sure the schema you use conforms to the requirements of the first lab assignment.

"make sure that it contains at least three relational schemas and that at least one of the relational schemas has at least three attributes. Moreover, make sure that the relational schemas contain interrelated data, so that interesting tables can be created by joining appropriately some of the tables in your database. Finally, choose a key for each relational schema."

Also, if the schema you initially turned in did not conform to these requirements (as indicated in the grade email you received), please alter it so that it does.

  1. Give the schema you are starting with.
  2. Write down meaningful functional dependecies for your schema (non-trivial). Make sure that all functional dependecies that hold in the data you wish store are either listed, or can be inferred from the listed dependencies.
  3. Determine if there are candidate keys other than your chosen primary keys
  4. BCNF
    1. Test if your schema is in BCNF. If not, write down any functional dependencies which cause your original schema not to be in BCNF
    2. Decompose your original schema into BCNF
    3. If you can combine any relations without violating BCNF, do so.
  5. 3NF
    1. Test if your schema is in 3NF. If not, write down any functional dependencies which cause your original schema not to be in 3NF. Make sure you go back to the original schema and not your schema from the end of the previous step.
    2. Decompose your original schema into 3NF
    3. If you can combine any relations without violating 3NF, do so.

For this assignment, you will turn in a single file which contains the results of these actions. Please label each part carefully.

submit cmps180-pk.f02 lab4 filename