Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
98 views

Functional Dependency

A functional dependency defines a constraint between attribute sets in a relation where a determinant set determines a dependent attribute. The closure of functional dependencies includes the original dependencies plus any that can be logically derived using Armstrong's axioms. Normalization aims to avoid anomalies by decomposing relations based on their functional dependencies.

Uploaded by

class
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
98 views

Functional Dependency

A functional dependency defines a constraint between attribute sets in a relation where a determinant set determines a dependent attribute. The closure of functional dependencies includes the original dependencies plus any that can be logically derived using Armstrong's axioms. Normalization aims to avoid anomalies by decomposing relations based on their functional dependencies.

Uploaded by

class
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 14

Definition

A functional dependency is defined as a


constraint between two sets of attributes in a
relation from a database.
Given a relation R, a set of attributes X in R is
said to functionally determine another
attribute Y, also in R, (written X → Y) if and
only if each X value is associated with at most
one Y value.
In other words….
X is the determinant set and Y is the dependent
attribute. Thus, given a tuple and the values of
the attributes in X, one can determine the
corresponding value of the Y attribute.
Example
Employee
SSN Name JobType DeptName
557-78-6587 Lance Smith Accountant Salary
214-45-2398 Lance Smith Engineer Product

Note: Name is functionally dependent on SSN because an employee’s name


can be uniquely determined from their SSN. Name does not determine SSN,
because more than one employee can have the same name..
Keys
Whereas a key is a set of attributes that uniquely
identifies an entire tuple, a functional
dependency allows us to express constraints that
uniquely identify the values of certain attributes.

However, a candidate key is always a determinant,


but a determinant doesn’t need to be a key.
Closure
Let a relation R have some functional dependencies F
specified. The closure of F (usually written as F+) is
the set of all functional dependencies that may be
logically derived from F. Often F is the set of most
obvious and important functional dependencies and
F+, the closure, is the set of all the functional
dependencies including F and those that can be
deduced from F. The closure is important and may,
for example, be needed in finding one or more
candidate keys of the relation.
Example
Student
SNo SName CNo CName Addr Instr. Office

5425 Susan 102 Calc I …San P. Smith B42


Ross Jose, Room
CA 112
7845 Dave 541 Bio 10 ...San L. Talip B24
Turco Diego, Room
CA 210
SNo -> SName CNo -> CName Instr -> Office
SNo -> Addr CNo -> Instr
Axioms
Before we can determine the closure of the
relation, Student, we need a set of rules.
Developed by Armstrong in 1974, there are six
rules (axioms) that all possible functional
dependencies may be derived from them.
Axioms Cont.
1. Reflexivity Rule --- If X is a set of attributes and
Y is a subset of X, then X  Y holds.
each subset of X is functionally dependent on X.
2. Augmentation Rule --- If X  Y holds and W is
a set of attributes, then WX  WY holds.
3. Transitivity Rule --- If X  Y and Y  Z holds,
then X  Z holds.
Derived Theorems from Axioms
4. Union Rule --- If X  Y and X  Z holds, then
X  YZ holds.
5. Decomposition Rule --- If X  YZ holds, then
so do X  Y and X  Z.
6. Pseudotransitivity Rule --- If X  Y and WY 
Z hold then so does WX  Z.
Back to the Example
SNo SName CNo CName Addr Instr. Office

Based on the rules provided, the following dependencies can be


derived.
(SNo, CNo)  SNo (Rule 1) -- subset
(SNo, CNo)  CNo (Rule 1)
(SNo, CNo)  (SName, CName) (Rule 2) -- augmentation
CNo  office (Rule 3) -- transitivity
SNo  (SName, address) (Union Rule)
etc.
Too Many FDs
Using the first rule alone, from our example we
have 2^7 = 128 subsets. This will further lead to
many more functional dependencies. This defeats
the purpose of normalizing relations.
So what now?
One way is to deal with one attribute or a set of
attributes at a time and find its closure (i.e. all
functional dependencies relating to them). The
aim of this exercise is to find what attributes
depend on a given set of attributes and therefore
ought to be together.
Normal Form
• Initially Codd (1972) presented three normal forms
(1NF, 2NF and 3NF) all based on functional
dependencies among the attributes of a relation.
Later Boyce and Codd proposed another normal form
called the Boyce-Codd normal form (BCNF). The
fourth and fifth normal forms are based on multi-
value and join dependencies and were proposed
later.
• The primary objective of normalization is to avoid
anomalies.

You might also like