Database Normalisation Questions Medium
Database normalization is a process that helps in organizing data in a relational database to eliminate redundancy and improve data integrity. There are different normal forms in database normalization, each with its own set of rules and requirements. The different normal forms are as follows:
1. First Normal Form (1NF): This is the basic level of normalization and ensures that each column in a table contains only atomic values, meaning that it cannot be further divided. It eliminates duplicate rows and ensures that each row is unique.
2. Second Normal Form (2NF): In addition to meeting the requirements of 1NF, 2NF ensures that all non-key attributes in a table are functionally dependent on the entire primary key. It eliminates partial dependencies, where non-key attributes depend on only a part of the primary key.
3. Third Normal Form (3NF): In addition to meeting the requirements of 2NF, 3NF ensures that there are no transitive dependencies. Transitive dependencies occur when a non-key attribute depends on another non-key attribute, rather than directly on the primary key. 3NF eliminates such dependencies by moving the dependent attribute to a separate table.
4. Boyce-Codd Normal Form (BCNF): BCNF is an extension of 3NF and ensures that every determinant in a table is a candidate key. It eliminates all non-trivial functional dependencies, where a non-key attribute determines another non-key attribute.
5. Fourth Normal Form (4NF): 4NF deals with multi-valued dependencies, where a non-key attribute depends on a combination of other non-key attributes. It eliminates such dependencies by moving the multi-valued attribute to a separate table.
5. Fifth Normal Form (5NF): Also known as Project-Join Normal Form (PJNF), 5NF deals with join dependencies. It ensures that a database schema is free from any redundancy that can be derived from decomposing tables.
Each normal form builds upon the previous one, with higher normal forms providing more strict rules and reducing redundancy further. The goal of normalization is to minimize data redundancy, improve data integrity, and optimize database performance.