3NF
After today's class, i finally understood that 3NF does not mean that we have a situation where C depends on B, and B depends on A. Prior to today's class, i thought the normalization process could theoretically go on forever, to XNF. Correct me if i am wrong, now i see that the 4NF is the most/best we could do to a database. It is good to see the example where 2NF is the same as the 3NF. Therefore, in order to achieve 4NF and reduce redundancy, we could only have one attribute depending on the primary key in each database. Personally i think the extended auto example in the CP is very helpful to illustrate this point. However, at ti mes i still find it hard to understand the normalization process by reading its definition, without the use of example.
[thecrew]
Now, I want to make sure I understand this post (BTW, go to the site and see my trackback). Basically, after putting a set of tables in 2NF but prior to putting them in 3NF using functional notation, there may be tables where some of fields on the right side of the arrow are functionally dependent on other fields on the right side of the arrow.
By definition, once tables are in 2NF, all fields on the right side of the arrow are fully dependent on the primary key. Therefore, if there are any fields on the right side of the arrow functionally dependent on other fields on the right side of the arrow, these fields are dependent on those fields which in turn depend on the primary key. That's where the transitivity idea comes in. We remove these transitive dependencies and make new tables when putting the tables in 3NF.
Now, have we removed all possible redundancy when we get to 3NF. Well no, as we saw today in class. That's all the 4NF example was meant to show. However, don't think that all normalization stops at 4NF. There are other potential issues that may arise. The thing is that these other issues start to become more and more esoteric (esoteric: rare, exceedingly uncommon).
Comments