中文网站
  Advanced Search
Read the latest Blogs from IT professionals in the field. Read and write community created documents. Need IT help? Ask our staff. Connect with your peers. Check our Tech Shop for posters, books and software tools. Home

7.4.2 Database Systems: Theory of Multivalued Dependencies

1. We will need to compute all the multivalued dependencies that are logically implied by a given set of multivalued dependencies.

  • Let D denote a set of functional and multivalued dependencies.
  • The closure D+ of D is the set of all functional and multivalued dependencies logically implied by D.
  • We can compute D+ from D using the formal definitions, but it is easier to use a set of inference rules.

2. The following set of inference rules is sound and complete. The rst three rules are Armstrong's axioms from Chapter 5.

(a) Reexivity rule: if is a set of attributes and β ∈α , then α→ β holds.
(b) Augmentation rule: if α→ β holds, and γis a set of attributes, then γα→ γβholds.
(c) Transitivity rule: if α→ β holds, and β→ γ holds, then α→ γ holds.
(d) Complementation rule: if α→→ β holds, then α→→ R- α- βholds.
(e) Multivalued augmentation rule: if α→→ β holds, and γ ∈ R and δ ∈ γ , then γα→→ δβ holds.
(f) Multivalued transitivity rule: if α→→ β holds, and β→→ γ holds, then α→→ γ- β holds.
(g) Replication rule: if α→ β holds, then α→→ β.
(h) Coalescence rule: if α→→ β holds, and γ ∈ β , and there is a γ such that γ∈ R and γ ∩ β= Ф, and δ→ γ, then α→ γ holds.

3. An example of multivalued transitivity rule is as follows. loan# →→ cname and cname →→ {cname, caddress}.

Thus we have loan# →→ caddress, where caddress = {cname, caddress}-cname.
An example of coalescence rule is as follows. If we have student name →→ {bank, account}, and student_id → bank,
then we have student name → bank.

4. Let's do an example:

  • Let R = (A,B,C, G,H, I) be a relation schema.
  • Suppose A →→BC holds.
  • The de nition of multivalued dependencies implies that if t1[A] = t2[A], then there exists tuples t3 and t4 such that:

t1[A] = t2[A] = t3[A] = t4[A]
t3[BC] = t1[BC]
t3[GHI] = t2[GHI]
t4[GHI] = t1[GHI]
t4[BC] = t2[BC]

  • The complementation rule states that if A →→ BC then A →→ GHI.
  • Tuples t3 and t4 satisfy A →→ GHI if we simply change the subscripts.

5. We can simplify calculating D+, the closure of D by using the following rules, derivable from the previous ones:

  • Multivalued union rule: if α→→ β holds and α→→ γ holds, then α→→ βγ holds.
  • Intersection rule: if α→→ β holds and α→→ γ holds, then α→→ β∩ γ holds.
  • Difference rule: if α→→ β holds and α→→ γ holds, then α→→ β- γholds then α→→ γ- βholds.

6. An example will help:

Let R = (A,B,C, G,H, I) with the set of dependencies:
A →→ B
B →→ HI
CG→H
We list some members of D+:

  • A →→ CGHI: since A →→ B, complementation rule implies that A →→ R-B-A, and R-B-A = CGHI.
  • A →→HI: Since A →→ B and B →→ HI, multivalued transitivity rule implies that A →→ HI-B.
  • B → H: coalescence rule can be applied. B →→ HI holds, H ∈ HI and CG→→H and CG ∩ HI = Ф ,

so we can satisfy the coalescence rule with being B, being HI,  being CG, and being H. We conclude that B → H.