Suggest an editImprove this articleRefine the answer for “Tell me about normal forms (1NF, 2NF, 3NF)”. Your changes go to moderation before they’re published.Approval requiredContentWhat you’re changing🇺🇸EN🇺🇦UAPreviewTitle (EN)Short answer (EN)Normal forms are rules for organizing tables in a relational database that help reduce data duplication and improve data integrity: 1NF requires every field to be atomic, 2NF requires every field to depend on the whole primary key, and 3NF requires there to be no transitive dependency. **Key point:** a violation of any form is fixed by moving the problematic fields into a separate table with its own key - for example, repeated values in one field (1NF), a field depending on only part of a composite key (2NF), or a field depending on another non-key field (3NF).Shown above the full answer for quick recall.Answer (EN)ImageNormal forms are **rules for organizing tables in a relational database** that help reduce data duplication and improve integrity. The main ones are 1NF, 2NF, and 3NF. ### 1NF (First Normal Form) - **The rule**: every field in the table must be atomic, meaning it **can't be split into parts**, and **every record is unique**. - **What this means in practice**: you can't store several values in one field, e.g. "Phones = 12345, 67890". Every value needs to be its own record. - **An example that violates 1NF**: | ID | Name | Phones | |----|-----|----------------| | 1 | Ivan | 12345, 67890 | - **Correct (1NF)**: create a separate `Phones` table with `EmployeeID` and `Phone` fields. ### 2NF (Second Normal Form) - **The rule**: the table must be in 1NF, and **every field must fully depend on the primary key**, not just part of it (this matters for composite keys). - **What this means in practice**: if the primary key is made of two columns, a separate column shouldn't depend on only one of them. - **An example that violates 2NF**: A table with the key `(StudentID, CourseID)` and a `StudentName` field. `StudentName` depends only on `StudentID`, not on the whole key. - **The fix**: move `StudentID` and `StudentName` into a separate `Students` table. ### 3NF (Third Normal Form) - **The rule**: the table must be in 2NF, and **there's no transitive dependency**, meaning a field shouldn't depend on another field besides the primary key. - **What this means in practice**: you shouldn't store data that can be computed or looked up through another field. - **An example that violates 3NF**: | EmployeeID | DepartmentID | DepartmentName | `DepartmentName` depends on `DepartmentID`, not directly on `EmployeeID`. - **The fix**: create a `Departments` table with `DepartmentID` and `DepartmentName`, and keep only `DepartmentID` in the `Employees` table. Put simply: - **1NF**: fields are atomic, no repeating groups. - **2NF**: every field fully depends on the primary key. - **3NF**: no field depends on another non-key field.For the reviewerNote to the moderator (optional)Visible only to the moderator. Helps review go faster.