Take the 2-minute tour ×
Computer Science Stack Exchange is a question and answer site for students, researchers and practitioners of computer science. It's 100% free, no registration required.

Given a relation $R(A, B, C, D, E, F)$, with the following functional dependencies: $\{A \rightarrow BC, CD \rightarrow E, B \rightarrow D, E \rightarrow A\}$.

The objective is to decompose $R$ into 3NF relations.

So far, I have determined that the following candidate keys are present in the given relation: $AF$, $EF$, $CDF$ and $BCF$.

Since every attribute is present as a part of some candidate key, for every $X \rightarrow A$, $A$ will be part of some candidate key, and so R itself should be in 3NF.

Since the question explicitly, however, states that it is not in 3NF, I have got a little confused. Where am I going wrong? Is there something that I have not understood?

share|improve this question
add comment

2 Answers 2

As I am detouched from the subject for a long gap I have taken help from Wikipedia. A relational schema is in 3NF if for all of its FD X->A atleast one of the following holds 1) X contains A 2) X is a superkey 3) A-X is a prime attribute

For your problem any of the FD's are not being satisfied on point 1. For your problem we have not found any FD such that X is a superkey. Your superkey is AF,EF,CDF etc.. and A-X is giving you the empty set for all of FD's

So none of the conditions are satisfied. So it is not in 3NF

share|improve this answer
    
Since all the attributes are prime attributes, that is why A - X is always a prime attribute. So, the conditions seem to be satisfied. –  Arani Sep 24 '12 at 19:12
    
Yes I was wrong .. Actually third condition is satisfied. For any of the FD yur A-X is actually giving the A set and the members of set A are all prime attributes.... –  Avijit Dutta Sep 25 '12 at 3:02
    
So does that mean R is in 3NF? –  Arani Sep 25 '12 at 7:33
    
Yes your R is in 3NF. It's not in BCNF, but that's another issue. –  Erwin Smout May 29 '13 at 0:19
add comment

The original definition of 3NF was "flawed". Relvars such as yours could perfectly be in 3NF and still have undesirable redundancy.

And the flaw was exactly in cases when there was more than one candidate key.

Which was the very reason why BCNF was introduced, as a "fix" to the "flaw" that was discovered in [the definition of] 3NF.

The thing is, in cases of >1 candidate key, we wouldn't even want designs such as yours to even satisfy 2NF. Both 2NF and 3NF can be violated only by nonprime attributes. That is the flaw in their definition. When the "fix" was applied to 3NF, superseding it with BCNF, the fix itself was flawed because actually what should have happened was to supersede the definition of 2NF with one that didn't limit itself to "nonprime" attributes".

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.