I have some transitive dependencies in my database design. I have been told by my superiors that these can cause bugs. I am finding it difficult to find resources that will tell me how having these dependencies will cause bugs. What kind of problems will they cause?
I am not disputing the fact, just eager to learn what kind of problems they can cause.
Edit for more details:
From wikipedia :
Transitive dependency
A transitive dependency is an indirect functional dependency, one in which X→Z only by virtue of X→Y and Y→Z.
I’ll explain by an example:
Courseyou can easily get itsInstructorsoCourse->Instructor.Instructoryou can’t get hisCourseas he might be teaching different courses.Instructoryou can easily get hisPhonesoInstructor->Phone.That means the if you have a
Coursethen you can get theInstructor Phonewhich meansCourse->Instructor Phone(i.e. Transitive dependency)Now for the problems:
FrenchandEnglishcourses then you will delete their instructorJohn Doeas well and his phone number will be lost forever.Instructorto your database unless you add aCoursefor him first, or you can duplicate the data in anInstructors tablewhich is even worse.John Doechanges his phone number then you will have to update all Courses that he teaches with the new info which can be very prone to mistakes.Birth Datefield to theCoursestable. Does this even sound logical? Why keep an instructor information in the courses table in the first place?