Thursday, September 16, 2010

What is normalization and their different forms?

Database normalization is a data design and organization process applied to data structures based on rules that help build relational databases. In relational database design, the process of organizing data to minimize redundancy. Normalization usually involves dividing a database into two or more tables and defining relationships between the tables. The objective is to isolate data so that additions, deletions, and modifications of a field can be made in just one table and then propagated through the rest of the database via the defined relationships.


TypesDescription
1NFEliminate Repeating Groups Make a separate table for each set of related attributes, and give each table a primary key. Each field contains at most one value from its attribute domain.
2NFEliminate Redundant Data If an attribute depends on only part of a multi-valued key, remove it to a separate table.
3NFEliminate Columns Not Dependent On Key If attributes do not contribute to a description of the key, remove them to a separate table. All attributes must be directly dependent on the primary key
BCNFBoyce-Codd Normal Form If there are non-trivial dependencies between candidate key attributes, separate them out into distinct tables.
4NFIsolate Independent Multiple Relationships No table may contain two or more 1:n or n:m relationships that are not directly related.
5NFIsolate Semantically Related Multiple Relationships There may be practical constrains on information that justify separating logically related many-to-many relationships.
ONFOptimal Normal Form A model limited to only simple (elemental) facts, as expressed in Object Role Model notation.
DKNFDomain-Key Normal Form A model free from all modification anomalies.
Remember, these normalization guidelines are cumulative. For a database to be in 3NF, it must first fulfill all the criteria of a 2NF and 1NF database.

No comments:

 
Feedback Form