Given a relation schema R[U], a functional dependency (FD) is an expression of the form X → Y , where X,Y ⊆ U. An instance I of R[U] satisfies X → Y , denoted by I⊧X → Y , if for every two tuples t1, t2 in I, t1[X] = t2[X] implies t1[Y ] = t2[Y]. That is, whenever two tuples contain the same values for attributes in X, they must have the same values for attributes in Y. A functional dependency X → Y is called trivial if Y ⊆ X.
A key dependency is a functional dependency of the form X → U. Then X is called a superkey for relation R. If there is no proper subset Y of X such that Y is a superkey, then X is called a key.
Functional dependencies form an important class of integrity constraints that play a critical role in maintaining the integrity of data, query optimization and indexing, and especially schema design. The focus of the normalizationtechnique in schema design is on avoiding redundancies caused by functional and other types of dependencies...