normal form | rule | example | what to look for |
---|---|---|---|
unnormalized | has repeating groups | Student(s#,progr,school,(module,classroom,mark)) | - can have brackets |
1NF | no repeating groups |
Student(s#,progr, school)
Exams(s#,module,classroom,mark) | - must not have brackets |
2NF | no partial key dependencies |
Student(s#,progr, school)
Exams(s#,module,mark) Module(module,classroom) |
- for each composite key:
check whether part of key implies non-key attribute |
3NF | no transitive dependencies |
Student(s#,progr)
Programme(progr, school) Exams(s#,module,mark) Module(module,classroom) |
- if there is more than 1 non-key attribute:
non-key attributes must not dependent on each other |
BCNF | every determinant is candidate key | - check all functional dependencies: - all LHS must be candidate keys | |
4NF | no multi-valued dependencies | ||
5NF | not decomposable via joins |