Junior
What is data normalization in a relational database?
sobes.tech AI
Answer from AI
Normalization is the process of structuring a relational database to reduce data redundancy and improve data integrity.
Main goals:
- Reducing redundancy: Avoid data duplication.
- Improving integrity: Ensure data consistency during insertions, deletions, and updates.
Normalization is based on the concept of normal forms (NF). The most common are:
- 1NF (First Normal Form):
- Atomic values in each column.
- Each column contains a single value of one type.
- 2NF (Second Normal Form):
- It is in 1NF.
- Every non-key attribute depends fully on the entire primary key. (For tables with a simple key, 2NF coincides with 1NF).
- 3NF (Third Normal Form):
- It is in 2NF.
- No transitive dependencies: a non-key attribute should not depend on another non-key attribute.
Example of normalization (transition from unnormalized form to 1NF):
Unnormalized table:
| Order_ID | Customer | Products |
|---|---|---|
| 1 | Ivan | Milk, Bread |
| 2 | Maria | Apples, Bananas |
Table in 1NF:
| Order_ID | Customer | Product |
|---|---|---|
| 1 | Ivan | Milk |
| 1 | Ivan | Bread |
| 2 | Maria | Apples |
| 2 | Maria | Bananas |
Higher normal forms (BCNF, 4NF, 5NF) exist and are used for more specific scenarios. The choice of normalization level depends on performance requirements and database complexity. Too high a normalization level can increase the number of joins and reduce read performance.