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.


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

      { { ...

Get Database Design and Relational Theory now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.