next up previous
Next: Closure of a Set Up: Functional Dependencies Previous: Functional Dependencies

Basic Concepts

  1. Functional dependencies.
  2. Functional dependencies allow us to express constraints that cannot be expressed with superkeys.
  3. Consider the scheme

     Loan-info-schema = (bname, loan#, cname, amount) 
    

    if a loan may be made jointly to several people (e.g. husband and wife) then we would not expect loan# to be a superkey. That is, there is no such dependency

     loan#  tex2html_wrap_inline1090  cname
    

    We do however expect the functional dependency

     loan#  tex2html_wrap_inline1090  amount 
    

    loan# tex2html_wrap_inline1090 bname

    to hold, as a loan number can only be associated with one amount and one branch.

  4. A set F of functional dependencies can be used in two ways:
  5. Figure 6.2 shows a relation r that we can examine.

      figure438
    Figure 6.2:   Sample relation r.

  6. We can see that tex2html_wrap_inline1150 is satisfied (in this particular relation), but tex2html_wrap_inline1152 is not. tex2html_wrap_inline1154 is also satisfied.
  7. Functional dependencies are called trivial if they are satisfied by all relations.
  8. In general, a functional dependency tex2html_wrap_inline1058 is trivial if tex2html_wrap_inline1158 .
  9. In the customer relation of figure 5.4, we see that tex2html_wrap_inline1160 is satisfied by this relation. However, as in the real world two cities can have streets with the same names (e.g. Main, Broadway, etc.), we would not include this functional dependency in our list meant to hold on Customer-scheme.
  10. The list of functional dependencies for the example database is:

next up previous
Next: Closure of a Set Up: Functional Dependencies Previous: Functional Dependencies

Osmar Zaiane
Tue Jun 9 15:12:55 PDT 1998