I have an homework which should be submitted tomorrow
I normaly know normalization concepts but in some questions I have difficulty.
How should i normalize this to BCNF? Can you show the steps please?
R(A,B,C,D,E,F,H)
FD set are
A->D
AE->H
DF->BC
E->C
H->E
for this realtion I have to find the keys and normalize to BCNF..
If I normalize to 2NF I loose some relations which doesn’t suit to 3NF. So I am confused.
Any help will be appreciated..
Thank you
There are two basic requirements for a database to be in third normal form:
If you normalize in 2NF you wont lose any relations, rather you will get another relation.
Okay so lets do your homework now.
Lets start by assuming that your relations are already in 1NF.
Now for 2NF
The above relation is in 2NF, none of the non-prime attributes are partially dependent on the candidate key. And also in 3NF because there is not transitive relationship within a relation.
okay now for BCNF, all the relation obey BCNF except for R1 because H->E relationship holds in R1 and H does not belong to the candidate key in R1.
Beeri and Bernstein showed in 1979 that, for example, a set of functional dependencies {AB → C, C → B} cannot be represented by a BCNF schema by preserving the dependencies that held in the original table. Read wiki for further details.
But you can still convert it into BCNF,
But the above tables dose not hold the original relationship AE-> H, making it inconsistent and this relationship being BCNF non-achievable by preserving the dependencies that held in the original table.