there are several Normalization steps that include:
First Normal Form abbreviated as 1NF
1NF - attributes must be atomic, row sequence order must not matter,
- suffers from redundancy(repeat values).
e.g state, cities(Accra,Windhoeck,Bujumbura)
- in 1NF = state Accra| state Windhoeck | state Bujumbura
2NF - all non key attribute must fully depend on candidate key
- e.g student_id# subject teacher -> not in 2NF because teacher partially
- depends on student_id (pk).
- Fix by decompose into two tables
[stud_id# lesson_id]
[lesson_id#, subject, teacher]
3NF - should not have transitive dependency in that i.e from example
- stud_id# course age birth_date
- above the age depends on the non key attribute birthdate.
- most cases a fix is to create a separate table with
new table:
[birthdate#,age)
- in original table will be updated to:
stud_id# course birth_date
- birth_date must remain on parent tbl.