Woe is Normalization
I can't help but notice that the whole normalization process isn't going as easily as I thought It would. I always seem to jump to defining tables in my head before I even begin to walk through the steps. Does anyone else have this "top-down" problem? I guess it just makes more sense for me working that way. I'm going to go through the examples a few more times and see if I get the hang of it.
[The BITwise Blog]
I suspect many people are making this observation. A lot of features of normalization are pretty intuitive. It makes sense to have a table devoted to one idea and only one idea. This is what we mean by having each field depend on “The key, the whole, and nothing but the key”.
The problem with depending on intuition is that you miss things. For instance, in projects, I see a lot of students not even getting to 1NF. Why? Well, for one, they don't properly identify the primary key. It's possible for some fields of the primary key to have null (empty) values. Or, for some unknown reason, they decide to have a repeating group. More subtly, they might miss a transitive dependency, easy to do if you have not systematically thought through the problem.