Databases Reference
In-Depth Information
Chapter 11
I m p l i c i t D e p e n d e n c i e s
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 Chapters 9 and 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
{ { SNO , SNAME , CITY } , { CITY , STATUS } }
and also to the JD
{ { SNO , SNAME , CITY } , { CITY , STATUS } , { SNAME , CITY } }
Search WWH ::

Custom Search