What is Normalization?
Normalization is the process of efficiently organizing data in a database. There are two goals of the normalization process: eliminating redundant data (for example, storing the same data in more than one table) and ensuring data dependencies make sense (only storing related data in a table). Both of these are worthy goals as they reduce the amount of space a database consumes and ensure that data is logically stored.The main normal forms are summarized below.
Normal form | Defined by | Brief definition |
---|---|---|
First normal form(1NF) | Two versions: E.F. Codd (1970), C.J. Date (2003) | Table faithfully represents a relation and has no repeating groups |
Second normal form (2NF) | E.F. Codd (1971) | No non-prime attribute in the table is functionally dependenton a part (proper subset) of a candidate key |
Third normal form(3NF) | E.F. Codd (1971); see also Carlo Zaniolo's equivalent but differently-expressed definition (1982) | Every non-prime attribute is non-transitively dependent on every key of the table |
Boyce-Codd normal form(BCNF) | Raymond F. Boyce and E.F. Codd (1974) | Every non-trivial functional dependency in the table is a dependency on a superkey |
Fourth normal form (4NF) | Ronald Fagin (1977) | Every non-trivial multivalued dependency in the table is a dependency on a superkey |
Fifth normal form(5NF) | Ronald Fagin (1979) | Every non-trivial join dependency in the table is implied by thesuperkeys of the table |
Domain/key normal form(DKNF) | Ronald Fagin (1981) | Every constraint on the table is a logical consequence of the table's domain constraints and key constraints |
Sixth normal form(6NF) | Chris Date, Hugh Darwen, and Nikos Lorentzos (2002) | Table features no non-trivial join dependencies at all (with reference to generalized join operator) |
No comments:
Post a Comment