Monday, 7 December 2020

Functional Independence and Functional Dependencies in DBMS

 

Relational database schema consists of number of relations with number of attributes of various entities in the organization. However, the method of grouping these attributes in relations plays a very important role in whole database life. The quality of relational database schema depends on many properties given below.

 

1.    The attributes in a relation must be related to each other in a simple and understandable way.

2.    The duplicate values i.e. the redundant values in tuples must be reduced.

3.    The null values in tuples should be avoided.

4.    There should not be any possibility of any kind of unambiguous tuples being created by any type of operation on the database.

 

To make the database fulfil above conditions, the process of normalization is performed on the attributes. Normalization is a process of decomposing the relational schemas and breaking them into smaller relational schemas that possesses desirable properties.

 

 

Functional Independence:

 

Two fields are said to be functional independent if they are not fully dependent on the complete primary key.

 

For example: po_no, rate, item

 

Here rate is not dependent on the primary key. So, the rate is functionally independent.

 

 

 Functional Dependencies:

 

Functional dependencies are constraints on the set of legal relations. The notion of functional dependency is the generalization of the notion of a key. It is the property of the semantics or meaning of the attributes.

 

Let R be a relational schema and let (A1, A2… An) be the attributes of R. The functional dependency, denoted by X → Y, between two set of attributes X and Y (X R and Y R) that are subsets of R specifies a constraint on the possible tuples that can form a relation state ‘r’ of R.  The constraint is that, for any two tuples t1 and t2 in ‘r’, that have t1[X] =t2[X], we must also have t1[Y] =t2[Y].

 

This means that the values of the Y component of a tuple in ‘r’ depends on (or determined by) the values of the X component. Alternatively, the values of the X component of a tuple uniquely (or functionally) determine the values of the Y component.

 

So, X functionally determines Y in a relation schema R if and only if, whenever two tuples of r(R) of agree on their X value, they must necessarily agree on their Y value.

 

Note:

  1. If X is a candidate key of R, then X → Y for any subset of attributes of Y of R.
  2. If X → Y in R, this does not say whether or not Y → X in R.

 

No comments:

Post a Comment