Search code examples
sqldatabasedatabase-designdatabase-normalization

Does every table have to go through normalization?


I am learning about databases in school and have an assignment that I must perform normalization. I have a good understanding on the subject I think. I have a project I am working on that I need to perform normalization on for a few tables. I was able to do that on a few tables but others I just can't think of any partial or transitive dependencies. My question is, does every table/entity need to go through normalization?

Thanks in advance for your replies.


Solution

  • As a general advice, you should have your initial design of database normalized. This means simply eliminating redundancies by decomposing relations with problematic dependencies in Boyce-Codd Normal Form, or Fourth Normal Form (unless you lose some dependencies, in which case you should opt for the Third Normal Form).

    Of course, if relations do not have problems due to transitive or partial dependencies, or multivalued dependencies, you should not touch them, since they are already normalized.

    Then, but only if needed, by looking at the performances of the queries, you can denormalize, for instance putting together different relations, and accepting a limited amount of redundancy, or modification anomalies; or splitting a relation that is already normalized. This is beacause you have to pay a price in term of increased program complexity, and more risks of inconsistencies, so pay it only if strictly necessary.