Databases Reference
In-Depth Information
SCT {SNO,CNO,TNO}, as in the original version of the example
Observe now that:
1.
Relvar SC is equal to some subset of the join (actually the cartesian product) of S{SNO} and C{CNO} (and
similarly for CT and TS).
2.
Relvar SC is also equal to the projection of SCT on {SNO,CNO} (and, again, similarly for CT and TS).
Note: To be more precise about the matter, SC is equal to SCT projected on {SNO,CNO} if and only if no
student can be enrolled in a course without being assigned a tutor for that course (and, once again, similarly
for CT and TS). So we're making some semantic assumptions about the situation here, assumptions that
weren't spelled out originally and might or might not be valid.
3.
Relvar SCT is also equal to some subset of the join of SC, CT, and TS, and that join in turn is some subset of
the join (actually the cartesian product) of S{SNO}, C{CNO}, and T{TNO}.
Because of point 2 in particular, SC, CT, and TS can be dropped, as indeed they were in the original version
of the example. Assume for the moment, however, that they aren't dropped. Then there's clearly redundancy. For
example, given the sample values from Fig. 15.7, the proposition Student S1 is enrolled in course C1 is represented
(a) by an explicit tuple in relvar SC and also (b) as one of the conjuncts in the following proposition, which is
represented by an explicit tuple in relvar SCT:
Student S1 is enrolled in course C1 and
Course C1 is tutored by tutor T1 and
Tutor T1 tutors student S1 and
Tutor T1 tutors student S1 on course C1.
Even if relvar SC is dropped, however, I claim there's still redundancy! For example, that same proposition
Student S1 is enrolled in course C1 is represented as one of the conjuncts in the foregoing compound proposition
and as one of the conjuncts in the following (also compound) proposition:
Student S1 is enrolled in course C1 and
Course C1 is tutored by tutor T2 and
Tutor T2 tutors student S1 and
Tutor T2 tutors student S1 on course C1.
Both of these compound propositions are represented by explicit tuples in relvar SCT. Thus, although my
earlier characterization of the redundancies in this example might perhaps have been slightly misleading, I claim that
redundancy does nevertheless exist. What's more, if you agree with this position, I think you also have to agree that
the use of either surrogates (see the discussion of the current example, Example 9, earlier in the chapter) or relation
valued attributes (see the discussion of Example 10, also earlier in the chapter) makes no difference! That is, it's
still the case, with both surrogates and RVAs, that certain propositions are represented more than once, in general.
Now, I admit this latter claim on my part might be somewhat open to debate. However, if you don't agree with it,
then I think you need to justify your position rather carefully, and in particular I think you need to come up with a
replacement for─in fact, an improvement on─my proposed “final” definition of redundancy.
As a kind of appendix to all of the above, let me add that I believe a similar analysis applies to certain other
examples from earlier in the topic. For example, consider relvar CTXD from Chapters 9 and 12, with its attributes

Search WWH ::

Custom Search