Chapter 11. Implicit Dependencies

What are you implying?

20th century catchphrase

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:

  • Irrelevant JD components

  • Combining JD components

  • Irreducible JDs

  • Adding JD components

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.

IRRELEVANT COMPONENTS

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

  • That relvar can be nonloss decomposed into its projections on {SNO,SNAME,CITY} and {CITY,STATUS}.

  • It can also clearly be nonloss decomposed into those same two projections together with the projection on (say) {SNAME,CITY}.

  • However, that third projection clearly isn’t needed in the process of reconstructing the original relvar.

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:

  • Definition: Let {X1,..., Xn} be a JD, J say; then Xi is irrelevant in J if and only if (a) there exists some Xj in J such that Xi is a proper subset of Xj or (b) there exists some Xj in J (i < j) such that Xi = Xj.[105]

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.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.217.175.182