O'Reilly logo

Database Design and Relational Theory by C.J. Date

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

SUMMARY SO FAR

Let me summarize where we are. The general point is that some JDs imply others. As specific illustrations of this point, we’ve discussed:

  • Irrelevant components: Every JD J is equivalent to a JD J′ that’s obtained from J by adding or dropping irrelevant components.

  • Combining components: Every JD J implies a JD J′ that’s obtained from J by replacing two components by their union.

  • Irreducibility: Every JD J that holds in relvar R is equivalent to at least one JD J′—not necessarily distinct from J—that holds in R and is irreducible (where equivalent and irreducible must both be understood as being with respect to R). It follows that R’s irreducible JDs in fact imply all of R’s JDs.

The following observations are also valid (I haven’t discussed them in detail, but they’re intuitively obvious):

  • Adding attributes: If JD J holds in relvar R, then so does every JD J′ that’s obtained from J by adding some attribute of R to some component of J.

  • Adding components: If JD J holds in relvar R, then so does every JD J′ that’s obtained from J by adding any subset of the heading of R as another component.

Observe in both of these cases, however, that we’re talking about implication, not equivalence. For example, in relvar S (but ignoring SNAME once again, for simplicity), the JD {SNO,STATUS},{SNO,CITY}} holds, and therefore the following JD holds too: {{SNO,STATUS},{SNO,CITY},{CITY,STATUS}}. ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required