We claim that delete anomality is due to table not being in 3NF, but...
Date: Sun, 26 Oct 2008 13:51:08 -0700 (PDT)
Uh, I've been away for the weekend but some new questions about normalization non the less popped up ( it seems every time I give a thought about the subject, a new question arises ). I hope you don't mind if I ask some more, cause there's no way I can figure out this stuff on my own
- Third Normal Form prohibits transitive dependencies ( non_key attribute CLASSROOM is dependent on other non key attribute TEACHER_NAME). One of the arguments why we should put a table in 3NF form is because of delete anomalies, which for SUBJECT_TEACHER table means, that if we remove certain subject from the table, then all of the data about certain teacher could also be lost ( in cases where teacher teaches just one subject ).
SUBJECT_TEACHER( SUBJECT_ID, SUB_NAME, TEACHER_NAME, CLASSROOM )
But same argument could be used for the following table:
SUBJECT_TEACHER( SUBJECT_ID, SUB_NAME, TEACHER_NAME )
But this time we donít have any non-key attribute in a table dependent
SUBJECT_TEACHER( SUBJECT_ID, SUB_NAME, TEACHER_NAME ) But this time we donít have any non-key attribute in a table dependenton some other non-key attribute, and as such SUBJECT_TEACHER is in 3NF. But despite table being in 3NF, all of data ( name of the teacher ) about certain teacher could still be lost.
So how can we claim that delete anomality is due to table not being in 3NF, when it is obvious this situation ( in our case data about certain teacher being lost ) can arise even when table complies to third form?
2) Say we have a relation with attributes A, B and C, where A is also a primary key. I know that transitive dependency means that a non-key attribute ( say C ) is dependent on other non key attribute ( B ) .
- I also assume that with transitive dependency C is also ALWAYS
dependent on A?!
- But is C always dependent on A simply because B is dependent on A orÖI mean, B will be dependent on A regardless of whether we have C attribute, but I assume that is not the case with C?
thank you Received on Sun Oct 26 2008 - 21:51:08 CET