CS 4604 Course Project: Step 4

Date Assigned: October 11, 2002
Date Due: October 21, 2002, in class, before class starts

Select one of the two relation schemas that you arrived at in Step 3 (i.e., choose either the one that you got from ODL or the one from E/R). *Choose only one*.

  1. (50 points) List all reasonable FDs (don't worry about MDs) for your application.

  2. (50 points) Are all the relations in your chosen schema in BCNF? If yes, explain why. If one or more of them are not in BCNF (but maybe are actually in 3NF), either normalize them into BCNF or explain why you would want to leave them the way they are (like the amount of redundancy introduced is limited or some other reason). Notice that if you decide to go ahead with normalization, you will have to list the FDs for each of your relations and explain why you think there is a violation.

FAQ: What about MDs and 4NF? Shouldn't we worry about whether our relations are in 4NF?

Answer: For now, we are interested only in 3NF and BCNF. If you would also like to go ahead and do 4NF, that is fine with us but please do so only after addressing the first two questions.

FAQ: The second question looks as if we can "get away without doing normalization". Is that true? Why then do you have the clause "if you decide to go ahead with normalization"?

Answer: There is no escaping from normalization! We haven't spent so much time on it without requiring you to do it for your project! First realize that you have to bring your relations into 3NF, come what may. The reason we have that clause is that there are some exceptional cases where normalization to BCNF can be skipped and you can actually leave the relation in 3NF (So, at the very least you have to bring them to 3NF). But such cases are far and few in between. You must have a really sound reason for not doing BCNF normalization, like in Example 3.32 of your textbook. So, if in doubt, meet the instructor or the TA during office hours.


Return Home