Chapter 11. Implicit Dependencies

What are you implying?

We’ve seen several illustrations in previous chapters of the idea that certain dependencies imply others. To be specific, we saw in Chapter 7 how some FDs are implied by other FDs, and we saw in Chapter 9 and Chapter 10 how some JDs are implied by FDs. It’s time to take a closer look at such matters. (Note in particular that if we need to tell what normal form some given relvar is in, we do need to know all of the dependencies, implicit ones as well as explicit ones, that hold in that relvar.) In this chapter, therefore, I want to discuss among other things:

These discussions will pave the way for an explanation of what’s called the chase, to be described in the penultimate section of the chapter.

Once again consider relvar S, with its FD {CITY} → {STATUS}. As we know from previous chapters:

Let me now restate the foregoing example in terms of JDs: Relvar S is subject to the JD

      { { SNO , SNAME , CITY } , { CITY , STATUS } }

and also to the JD

      { { SNO , SNAME , CITY } , { CITY , STATUS } , { SNAME , CITY } }

In this latter JD, however, the {SNAME,CITY} component is irrelevant: It’s a proper subset of another component, and for that reason the corresponding projection isn’t needed in the process of reconstructing the original relvar.

With the foregoing example by way of motivation, I can now give a precise definition of what it means for some component to be irrelevant in some JD:

The reason for my choice of the term irrelevant here is as follows: If Xi is irrelevant in J, then every relation that satisfies J also satisfies J′, where J′ is derived from J by dropping Xi. What’s more, the converse is true too: Every relation that satisfies J′ also satisfies J. In other words, the JDs J and J′ are equivalent: Every relation that satisfies either one necessarily satisfies the other one as well. As a consequence, irrelevant components can’t just always be dropped, they can always be added too, without significant effect.



[105] If we assume the components X1, ..., Xn are all distinct, we can drop part (b) of this definition.