{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

Useful Notes on FDs

# Useful Notes on FDs - → Z" For example we may...

This preview shows page 1. Sign up to view the full content.

Some Points to Note on Functional Dependencies, Minimal Covers, and 3NF/BCNF decompositions Trivial functional dependency vs. non-trivial functional dependency A functional dependency X Y is trivial if Y, the right hand side of the fd, is a subset of X. For example, the functional dependency "(S#, P#) S#" is trivial because the set {S#} (for the R.H.S. of the fd) is a subset of (S#, P#} (for the L.H.S. of the fd). On the other hand, the functional dependency "(S#, P#) S#, Qty" is NON-trivial because the set {S#, Qty} is NOT a subset of the attribute set {S#, P#}. Can we remove attributes common to the L.H.S. and R.H.S. of a functional depen- dency? NO, in general, we can NOT do that - namely, if we hav e "(X, Y) X, Z", we can NOT simply remove the attribute "X" common to both the L.H.S. and R.H.S. of the fd, and obtain "Y
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: → Z". For example, we may have "(S#, P#) → Qty" and thus "(S#, P#) → S#, Qty" (by augmentation rule). However, from "(S#, P#) → S#, Qty", we can NOT derive "P# → Qty". • W hich functional dependency to remove? Suppose we have a relation R(ABC) with functional dependencies F = {A → B, B → C, A → C}. We can see that "A → C" can be derived from "A → B" and "B → C". Here we should remove "A → C" when we construct minimal cover for F, since "A → C" can be derived from the remaining functional dependencies. If we removed "A → B" or "B → C" instead of removing "A → C", we would not be able to re-derive the removed one from the remaining fd’s. So the idea is to remove the fd’s which are derivable from the others, and keep those fd’s used in the process of derivation....
View Full Document

{[ snackBarMessage ]}

Ask a homework question - tutors are online