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:
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
{ { ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access