# Functional Dependencies Lecture Notes

### Question-1) Define functional dependency in Relational Model.

Answer) Functional dependency defines the relationship of one attribute to the other in a database table. A functional dependency of a relation is denoted by an arrow→. If the attribute A is dependent on attribute B, it is denoted by A→B A→ indicates that tuples having the same value of attribute A also should have the same value of attribute B.

In the below example, SID→SNam is a functional dependency, because Sname is dependent on SID.

### Question-2) Define functional dependency set.

Answer) A functional dependency set of a relation is the set of all functional dependencies in that relation

### Question-3) What are the types of functional dependencies?

Answer) 1. Trivial Functional Dependency

A→B is said to be a trivial functional dependency if B is the subset of A and A∩B is not NULL. Such a functional dependency is always valid. An attribute determining itself (A→A) is also a trivial functional dependency.

2. Non-trivial Functional Dependency

A→B is said to be a non-trivial functional dependency if B is not a subset of A and A∩B is NULL. Such a functional dependency may be valid or invalid

### Question-4) What are the different properties of functional dependency?

Answer) Armstrong’s axioms are the set of rules which define the properties of a functional dependency.

1. REFLEXIVITY

a. If Y is subset of X, then X→ Y

2. AUGMENTATION

a. If X → Y, then XZ →YZ

3. TRANSITIVE

a. If X →Y and Y →Z, then X→Z

4. UNION

a. If X→Y and X→Z, then X→YZ

5. DECOMPOSITION

a. If X→YZ, then X→Y and X→Z

6. PSEUDO TRANSITIVITY

a. If X→Y and WY→Z, then WX→Z

7. COMPOSITION

a. If X→Y and Z→W, then XZ→YW

### Question-5) Define Attribute Closure with an example.

Answer) The attribute closure of a set of attributes is defined as the set of all attributes which can be functionally determined from it. Attribute closure of the relation A is denoted by {A} + .

Steps to find attribute closure of a relation:

1.Add elements of an attribute set to the result set

2.Recursively add elements to the result set which can be functionally determined from the elements of the result set

### Question-6) Define Canonical Cover with an example

Canonical cover Fc of a set of functional dependencies F is a simplified or irreducible set of FDs that has the same closure as that of the original set F. Fc logically implies all dependencies in F. A functional dependency in the canonical or minimal cover must not have extraneous attributes. Each eft side of an FD in Fc is unique. i.e. there are no 2 dependencies A→B and C→D such that A→C

Example:

### Question-7) Explain Lossless join decomposition.

Answer) Lossless join decomposition is used to remove redundancy from the relation safely. When a relation is decomposed into two or more relations (R1, R2, etc.,) such that the natural join of the relations will give back the original relation, it is called lossless join decomposition.

Consider that a relation R is decomposed into three relations R1, R2, and R3. This decomposition is lossless if the union of the attributes R1, R2, and R3 is equal to the attributes of R, and the intersection of the attributes of R1, R2, and R3 is NULL.

### Question-8) What do you undrstand by Extraneous attributes?

Answer) After removing an attribute of functional dependency, if there is no change in the attribute closure of the set of FDs, then the removed attribute is called an extraneous attribute. A canonical cover must not contain extraneous attributes.

### Question-9) What is the use of attribute closure?

Answer) 1. Attribute closure helps in finding all the functional dependencies of a relation.

2. It is used to find the candidate keys of a relation.

### Question-10) What is trival depedencies?

Answer) A→B is said to be a trivial functional dependency if B is the subset of A and A∩B is not NULL. Such a functional dependency is always valid. An attribute determining itself (A→A) is also a trivial functional dependency.