Third Normal Form prohibits transitive dependencies. A transitive
dependency exists when any attribute in a table is dependent on
any other non-key attribute in that table.
Consider the following example CourseSections Table:
CourseID | Section | ProfessorID | ProfessorName |
3100 | 1 | 6789 | David |
1300 | 1 | 6789 | David |
The
professor is uniquely identified by the CourseID and Section of the
course. However, ProfessorName depends on ProfessorID and has no
relation to CourseID or Section.
This
data is properly stored as follows:
Professors
Table
ProfessorID | ProfessorName |
6789 | David |
CourseSections Table
CourseID | Section | ProfessorID |
3100 | 1 | 6789 |
1300 | 1 | 6789 |
By
splitting the data into two tables, the transitive dependency is
removed.
Taking
the original design of the CourseSections table introduces the
chance that ProfessorName may be Corrupted. Perhaps, on the second row
the ProfessorName is entered as Davif, a simple typo. Since there is
no such professor Davif, there would be a problem.
Original date of publication, 02/21/2001