TOML
Database Normalization Forms - TOML
Database normalization forms are a set of progressive rules defined in relational database design to eliminate data redundancy and maintain data integrity. They exist from First Normal Form (1NF) to Fifth Normal Form (5NF), each addressing specific data dependency issues. Generally, applying up to Third Normal Form (3NF) ensures practically sufficient data quality. Normalization prevents inconsistencies during updates and improves database maintainability and efficiency.
database
normalization
relational database
data design
SQL
[[items]]
code = "1NF"
slug = "first-normal-form"
name = "First Normal Form"
description = "A state where each cell in a table contains only a single value, eliminating repeating groups."
keyRule = "Store only single values (atomic values) and eliminate repeating groups"
level = 1
[[items]]
code = "2NF"
slug = "second-normal-form"
name = "Second Normal Form"
description = "A state that satisfies 1NF and eliminates partial functional dependencies on the primary key."
keyRule = "Non-key attributes must be fully dependent on the entire primary key"
level = 2
[[items]]
code = "3NF"
slug = "third-normal-form"
name = "Third Normal Form"
description = "A state that satisfies 2NF and eliminates transitive functional dependencies."
keyRule = "No dependencies exist between non-key attributes"
level = 3
[[items]]
code = "BCNF"
slug = "boyce-codd-normal-form"
name = "Boyce-Codd Normal Form"
description = "A state with stricter conditions than 3NF where all determinants are candidate keys."
keyRule = "All determinants must be candidate keys"
level = 4
[[items]]
code = "4NF"
slug = "fourth-normal-form"
name = "Fourth Normal Form"
description = "A state that satisfies BCNF and eliminates multi-valued dependencies."
keyRule = "Eliminate multi-valued dependencies by splitting independent multi-valued attributes into separate tables"
level = 5
[[items]]
code = "5NF"
slug = "fifth-normal-form"
name = "Fifth Normal Form"
description = "A state that satisfies 4NF and eliminates join dependencies."
keyRule = "Eliminate join dependencies by decomposing into semantically independent tables"
level = 6