Functional Dependencies - Virginia Techcs4604/Fall09/lectures/... · 2009. 10. 26. · A functional...
Transcript of Functional Dependencies - Virginia Techcs4604/Fall09/lectures/... · 2009. 10. 26. · A functional...
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Functional Dependencies
T. M. Murali
October 19, 21 2009
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example
IdId
Students
NameName
AdvisorsAdvises
Favourite
I Convert to relations:
Students(Id, Name)
Advisors(Id, Name)
Advises(StudentId, AdvisorId)
Favourite(StudentId, AdvisorId)
I Suppose we perversely decide to convert Students, Advises, andFavourite into one relation.
Students(Id, Name, AdvisorId, AdvisorName,FavouriteAdvisorId)
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example
IdId
Students
NameName
AdvisorsAdvises
Favourite
I Convert to relations:
Students(Id, Name)
Advisors(Id, Name)
Advises(StudentId, AdvisorId)
Favourite(StudentId, AdvisorId)
I Suppose we perversely decide to convert Students, Advises, andFavourite into one relation.
Students(Id, Name, AdvisorId, AdvisorName,FavouriteAdvisorId)
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example
IdId
Students
NameName
AdvisorsAdvises
Favourite
I Convert to relations:
Students(Id, Name)
Advisors(Id, Name)
Advises(StudentId, AdvisorId)
Favourite(StudentId, AdvisorId)
I Suppose we perversely decide to convert Students, Advises, andFavourite into one relation.
Students(Id, Name, AdvisorId, AdvisorName,FavouriteAdvisorId)
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of a Bad Relation
Students(Id, Name, AdvisorId, AdvisorName,FavouriteAdvisorId)
I If you know a student’s Id, can you determine the values of any otherattributes?
Name and FavouriteAdvisorId.
Id→ Name
Id→ FavouriteAdvisorId
AdvisorId→ AdvisorName
I Can we say Id→ AdvisorId? NO! Id is not a key for the Studentsrelation.
I What is the key for the Students? {Id, AdvisorId}.I Why is this relation “bad?” Parts of the key determine other
attributes.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of a Bad Relation
Students(Id, Name, AdvisorId, AdvisorName,FavouriteAdvisorId)
I If you know a student’s Id, can you determine the values of any otherattributes? Name and FavouriteAdvisorId.
Id→ Name
Id→ FavouriteAdvisorId
AdvisorId→ AdvisorName
I Can we say Id→ AdvisorId? NO! Id is not a key for the Studentsrelation.
I What is the key for the Students? {Id, AdvisorId}.I Why is this relation “bad?” Parts of the key determine other
attributes.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of a Bad Relation
Students(Id, Name, AdvisorId, AdvisorName,FavouriteAdvisorId)
I If you know a student’s Id, can you determine the values of any otherattributes? Name and FavouriteAdvisorId.
Id→ Name
Id→ FavouriteAdvisorId
AdvisorId→ AdvisorName
I Can we say Id→ AdvisorId? NO! Id is not a key for the Studentsrelation.
I What is the key for the Students? {Id, AdvisorId}.I Why is this relation “bad?” Parts of the key determine other
attributes.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of a Bad Relation
Students(Id, Name, AdvisorId, AdvisorName,FavouriteAdvisorId)
I If you know a student’s Id, can you determine the values of any otherattributes? Name and FavouriteAdvisorId.
Id→ Name
Id→ FavouriteAdvisorId
AdvisorId→
AdvisorName
I Can we say Id→ AdvisorId? NO! Id is not a key for the Studentsrelation.
I What is the key for the Students? {Id, AdvisorId}.I Why is this relation “bad?” Parts of the key determine other
attributes.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of a Bad Relation
Students(Id, Name, AdvisorId, AdvisorName,FavouriteAdvisorId)
I If you know a student’s Id, can you determine the values of any otherattributes? Name and FavouriteAdvisorId.
Id→ Name
Id→ FavouriteAdvisorId
AdvisorId→ AdvisorName
I Can we say Id→ AdvisorId? NO! Id is not a key for the Studentsrelation.
I What is the key for the Students? {Id, AdvisorId}.I Why is this relation “bad?” Parts of the key determine other
attributes.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of a Bad Relation
Students(Id, Name, AdvisorId, AdvisorName,FavouriteAdvisorId)
I If you know a student’s Id, can you determine the values of any otherattributes? Name and FavouriteAdvisorId.
Id→ Name
Id→ FavouriteAdvisorId
AdvisorId→ AdvisorName
I Can we say Id→ AdvisorId?
NO! Id is not a key for the Studentsrelation.
I What is the key for the Students? {Id, AdvisorId}.I Why is this relation “bad?” Parts of the key determine other
attributes.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of a Bad Relation
Students(Id, Name, AdvisorId, AdvisorName,FavouriteAdvisorId)
I If you know a student’s Id, can you determine the values of any otherattributes? Name and FavouriteAdvisorId.
Id→ Name
Id→ FavouriteAdvisorId
AdvisorId→ AdvisorName
I Can we say Id→ AdvisorId? NO! Id is not a key for the Studentsrelation.
I What is the key for the Students? {Id, AdvisorId}.I Why is this relation “bad?” Parts of the key determine other
attributes.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of a Bad Relation
Students(Id, Name, AdvisorId, AdvisorName,FavouriteAdvisorId)
I If you know a student’s Id, can you determine the values of any otherattributes? Name and FavouriteAdvisorId.
Id→ Name
Id→ FavouriteAdvisorId
AdvisorId→ AdvisorName
I Can we say Id→ AdvisorId? NO! Id is not a key for the Studentsrelation.
I What is the key for the Students?
{Id, AdvisorId}.I Why is this relation “bad?” Parts of the key determine other
attributes.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of a Bad Relation
Students(Id, Name, AdvisorId, AdvisorName,FavouriteAdvisorId)
I If you know a student’s Id, can you determine the values of any otherattributes? Name and FavouriteAdvisorId.
Id→ Name
Id→ FavouriteAdvisorId
AdvisorId→ AdvisorName
I Can we say Id→ AdvisorId? NO! Id is not a key for the Studentsrelation.
I What is the key for the Students? {Id, AdvisorId}.
I Why is this relation “bad?” Parts of the key determine otherattributes.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of a Bad Relation
Students(Id, Name, AdvisorId, AdvisorName,FavouriteAdvisorId)
I If you know a student’s Id, can you determine the values of any otherattributes? Name and FavouriteAdvisorId.
Id→ Name
Id→ FavouriteAdvisorId
AdvisorId→ AdvisorName
I Can we say Id→ AdvisorId? NO! Id is not a key for the Studentsrelation.
I What is the key for the Students? {Id, AdvisorId}.I Why is this relation “bad?”
Parts of the key determine otherattributes.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of a Bad Relation
Students(Id, Name, AdvisorId, AdvisorName,FavouriteAdvisorId)
I If you know a student’s Id, can you determine the values of any otherattributes? Name and FavouriteAdvisorId.
Id→ Name
Id→ FavouriteAdvisorId
AdvisorId→ AdvisorName
I Can we say Id→ AdvisorId? NO! Id is not a key for the Studentsrelation.
I What is the key for the Students? {Id, AdvisorId}.I Why is this relation “bad?” Parts of the key determine other
attributes.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Motivation for Functional Dependencies
I Reason about constraints on attributes in a relation.
I Procedurally determine the keys of a relation.
I Detect when a relation has redundant information.
I Improve database designs systematically using normalisation.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Definition of Functional Dependency
I If t is a tuple in a relation R and A is an attribute of R, then tA is thevalue of attribute A in tuple t.
I The FD AdvisorId→ AdvisorName holds in R if in every instanceof R, for every pair of tuples t and u
if tAdvisorId = uAdvisorId, then tAdvisorName = uAdvisorName.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Definition of Functional Dependency
I If t is a tuple in a relation R and A is an attribute of R, then tA is thevalue of attribute A in tuple t.
I The FD AdvisorId→ AdvisorName holds in R if in every instanceof R, for every pair of tuples t and u
if tAdvisorId = uAdvisorId, then tAdvisorName = uAdvisorName.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Definition of Functional Dependency
I If t is a tuple in a relation R and A is an attribute of R, then tA is thevalue of attribute A in tuple t.
I The FD AdvisorId→ AdvisorName holds in R if in every instanceof R, for every pair of tuples t and u
if tAdvisorId = uAdvisorId, then tAdvisorName = uAdvisorName.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Definition of Functional Dependencies
A functional dependency (FD) on a relation R is a statement
I If two tuples in R agree on attributes A1, A2, . . . An then they agreeon attribute B.
I Notation: A1A2 . . . An → B
I FD says that for every pair of tuples t and u in any instance of R, iftA1 = uA1 and tA2 = uA2 and . . . tAn = uAn , then tB = uB .
I The set of attributes A1, A2, . . . An functionally determine B.
I An FD is a constraint on a single relation schema. It must hold onevery instance of the relation.
I You cannot deduce an FD from a relation instance.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Definition of Functional Dependencies
A functional dependency (FD) on a relation R is a statement
I If two tuples in R agree on attributes A1, A2, . . . An then they agreeon attribute B.
I Notation: A1A2 . . . An → B
I FD says that for every pair of tuples t and u in any instance of R,
iftA1 = uA1 and tA2 = uA2 and . . . tAn = uAn , then tB = uB .
I The set of attributes A1, A2, . . . An functionally determine B.
I An FD is a constraint on a single relation schema. It must hold onevery instance of the relation.
I You cannot deduce an FD from a relation instance.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Definition of Functional Dependencies
A functional dependency (FD) on a relation R is a statement
I If two tuples in R agree on attributes A1, A2, . . . An then they agreeon attribute B.
I Notation: A1A2 . . . An → B
I FD says that for every pair of tuples t and u in any instance of R, iftA1 = uA1 and tA2 = uA2 and . . . tAn = uAn , then tB = uB .
I The set of attributes A1, A2, . . . An functionally determine B.
I An FD is a constraint on a single relation schema. It must hold onevery instance of the relation.
I You cannot deduce an FD from a relation instance.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Examples of FDs
I What FDs can we assert for the relation
Courses(Number, DeptName, CourseName, Classroom, Enrollment)
Number DeptName CourseName Classroom Enrollment
4604 CS Databases TORG 1020 454604 Dance Tree Dancing Drillfield 454604 English The Basis of Data Williams 44 452604 CS Data Structures MCB 114 1002604 Physics Dark Matter Williams 44 100
Number DeptName→ CourseName
Number DeptName→ Classroom
Number DeptName→ Enrollment
Number DeptName→ CourseName Classroom Enrollment
I Is Number→ Enrollment an FD?
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Examples of FDs
I What FDs can we assert for the relation
Courses(Number, DeptName, CourseName, Classroom, Enrollment)
Number DeptName CourseName Classroom Enrollment
4604 CS Databases TORG 1020 454604 Dance Tree Dancing Drillfield 454604 English The Basis of Data Williams 44 452604 CS Data Structures MCB 114 1002604 Physics Dark Matter Williams 44 100
Number DeptName→ CourseName
Number DeptName→ Classroom
Number DeptName→ Enrollment
Number DeptName→ CourseName Classroom Enrollment
I Is Number→ Enrollment an FD?
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Examples of FDs
I What FDs can we assert for the relation
Courses(Number, DeptName, CourseName, Classroom, Enrollment)
Number DeptName CourseName Classroom Enrollment
4604 CS Databases TORG 1020 454604 Dance Tree Dancing Drillfield 454604 English The Basis of Data Williams 44 452604 CS Data Structures MCB 114 1002604 Physics Dark Matter Williams 44 100
Number DeptName→ CourseName
Number DeptName→ Classroom
Number DeptName→ Enrollment
Number DeptName→ CourseName Classroom Enrollment
I Is Number→ Enrollment an FD?
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Examples of FDs
I What FDs can we assert for the relation
Courses(Number, DeptName, CourseName, Classroom, Enrollment)
Number DeptName CourseName Classroom Enrollment
4604 CS Databases TORG 1020 454604 Dance Tree Dancing Drillfield 454604 English The Basis of Data Williams 44 452604 CS Data Structures MCB 114 1002604 Physics Dark Matter Williams 44 100
Number DeptName→ CourseName
Number DeptName→ Classroom
Number DeptName→ Enrollment
Number DeptName→ CourseName Classroom Enrollment
I Is Number→ Enrollment an FD?
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Where do FDs come from?
I “Keyness” of attributes.
I Domain and application constraints.
I Real world constraints, e.g., ProfessorID Time→ Classroom
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Where do FDs come from?
I “Keyness” of attributes.
I Domain and application constraints.
I Real world constraints, e.g., ProfessorID Time→ Classroom
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Definition of Keys
I FDs allow us to formally define keys.
I A set of attributes {A1, A2, . . .An} is a key for a relation R if
Uniqueness {A1, A2, . . . An} functionally determine all the otherattributes of R and
Minimality no proper subset of {A1, A2, . . .An} functionallydetermines all the other attributes of R.
I A superkey is a set of attributes that has the uniqueness property butis not necessarily minimal.
I If a relation has multiple keys, specify one to be the primary key.
I Convention: in a relational schema, underline the attributes of theprimary key.
I If a key has only one attribute A, we say that A rather than {A} is akey.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Definition of Keys
I FDs allow us to formally define keys.
I A set of attributes {A1, A2, . . .An} is a key for a relation R if
Uniqueness {A1, A2, . . . An} functionally determine all the otherattributes of R and
Minimality no proper subset of {A1, A2, . . .An} functionallydetermines all the other attributes of R.
I A superkey is a set of attributes that has the uniqueness property butis not necessarily minimal.
I If a relation has multiple keys, specify one to be the primary key.
I Convention: in a relational schema, underline the attributes of theprimary key.
I If a key has only one attribute A, we say that A rather than {A} is akey.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of Keys
I What is the key for
Courses(Number, DeptName, CourseName, Classroom,Enrollment)?
I The key is {Number, DeptName}.I These attributes functionally determine every other attribute.I No proper subset of {Number, DeptName} has this property.
I What is the key for
Teach(, , ProfessorName, Classroom)?
I The key is {Number, DepartmentName}. Why?
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of Keys
I What is the key for
Courses(Number, DeptName, CourseName, Classroom,Enrollment)?
I The key is {Number, DeptName}.I These attributes functionally determine every other attribute.I No proper subset of {Number, DeptName} has this property.
I What is the key for
Teach(, , ProfessorName, Classroom)?
I The key is {Number, DepartmentName}. Why?
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of Keys
I What is the key for
Courses(Number, DeptName, CourseName, Classroom,Enrollment)?
I The key is {Number, DeptName}.I These attributes functionally determine every other attribute.I No proper subset of {Number, DeptName} has this property.
I What is the key for
Teach(Number, DepartmentName, ProfessorName,Classroom)?
I The key is {Number, DepartmentName}. Why?
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of Keys
I What is the key for
Courses(Number, DeptName, CourseName, Classroom,Enrollment)?
I The key is {Number, DeptName}.I These attributes functionally determine every other attribute.I No proper subset of {Number, DeptName} has this property.
I What is the key for
Teach(Number, DepartmentName, ProfessorName,Classroom)?
I The key is {Number, DepartmentName}. Why?
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Keys in the Conversion from E/R to RelationalDesigns
I If the relation comes from an entity set, the key attributes of therelation are precisely the key attributes of the entity set.
I If the relation comes from a binary relationship R between entity setsE and F :
I R is many-many: key attributes of the relation are the key attributes ofE and of F .
I R is many-one from E to F : key attributes of the relation are the keyattributes of E .
I R is one-one: key attributes of the relation are the key attributes of Eor of F .
I If the relationship R is multiway, we need to reason about the FDsthat R satisfies.
I There is no simple rule.I If R has an arrow towards entity set E , at least one key for the relation
for R excludes the key for E .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Keys in the Conversion from E/R to RelationalDesigns
I If the relation comes from an entity set, the key attributes of therelation are precisely the key attributes of the entity set.
I If the relation comes from a binary relationship R between entity setsE and F :
I R is many-many: key attributes of the relation are the key attributes ofE and of F .
I R is many-one from E to F : key attributes of the relation are the keyattributes of E .
I R is one-one: key attributes of the relation are the key attributes of Eor of F .
I If the relationship R is multiway, we need to reason about the FDsthat R satisfies.
I There is no simple rule.I If R has an arrow towards entity set E , at least one key for the relation
for R excludes the key for E .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Keys in the Conversion from E/R to RelationalDesigns
I If the relation comes from an entity set, the key attributes of therelation are precisely the key attributes of the entity set.
I If the relation comes from a binary relationship R between entity setsE and F :
I R is many-many:
key attributes of the relation are the key attributes ofE and of F .
I R is many-one from E to F : key attributes of the relation are the keyattributes of E .
I R is one-one: key attributes of the relation are the key attributes of Eor of F .
I If the relationship R is multiway, we need to reason about the FDsthat R satisfies.
I There is no simple rule.I If R has an arrow towards entity set E , at least one key for the relation
for R excludes the key for E .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Keys in the Conversion from E/R to RelationalDesigns
I If the relation comes from an entity set, the key attributes of therelation are precisely the key attributes of the entity set.
I If the relation comes from a binary relationship R between entity setsE and F :
I R is many-many: key attributes of the relation are the key attributes ofE and of F .
I R is many-one from E to F : key attributes of the relation are the keyattributes of E .
I R is one-one: key attributes of the relation are the key attributes of Eor of F .
I If the relationship R is multiway, we need to reason about the FDsthat R satisfies.
I There is no simple rule.I If R has an arrow towards entity set E , at least one key for the relation
for R excludes the key for E .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Keys in the Conversion from E/R to RelationalDesigns
I If the relation comes from an entity set, the key attributes of therelation are precisely the key attributes of the entity set.
I If the relation comes from a binary relationship R between entity setsE and F :
I R is many-many: key attributes of the relation are the key attributes ofE and of F .
I R is many-one from E to F :
key attributes of the relation are the keyattributes of E .
I R is one-one: key attributes of the relation are the key attributes of Eor of F .
I If the relationship R is multiway, we need to reason about the FDsthat R satisfies.
I There is no simple rule.I If R has an arrow towards entity set E , at least one key for the relation
for R excludes the key for E .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Keys in the Conversion from E/R to RelationalDesigns
I If the relation comes from an entity set, the key attributes of therelation are precisely the key attributes of the entity set.
I If the relation comes from a binary relationship R between entity setsE and F :
I R is many-many: key attributes of the relation are the key attributes ofE and of F .
I R is many-one from E to F : key attributes of the relation are the keyattributes of E .
I R is one-one: key attributes of the relation are the key attributes of Eor of F .
I If the relationship R is multiway, we need to reason about the FDsthat R satisfies.
I There is no simple rule.I If R has an arrow towards entity set E , at least one key for the relation
for R excludes the key for E .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Keys in the Conversion from E/R to RelationalDesigns
I If the relation comes from an entity set, the key attributes of therelation are precisely the key attributes of the entity set.
I If the relation comes from a binary relationship R between entity setsE and F :
I R is many-many: key attributes of the relation are the key attributes ofE and of F .
I R is many-one from E to F : key attributes of the relation are the keyattributes of E .
I R is one-one:
key attributes of the relation are the key attributes of Eor of F .
I If the relationship R is multiway, we need to reason about the FDsthat R satisfies.
I There is no simple rule.I If R has an arrow towards entity set E , at least one key for the relation
for R excludes the key for E .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Keys in the Conversion from E/R to RelationalDesigns
I If the relation comes from an entity set, the key attributes of therelation are precisely the key attributes of the entity set.
I If the relation comes from a binary relationship R between entity setsE and F :
I R is many-many: key attributes of the relation are the key attributes ofE and of F .
I R is many-one from E to F : key attributes of the relation are the keyattributes of E .
I R is one-one: key attributes of the relation are the key attributes of Eor of F .
I If the relationship R is multiway, we need to reason about the FDsthat R satisfies.
I There is no simple rule.I If R has an arrow towards entity set E , at least one key for the relation
for R excludes the key for E .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Keys in the Conversion from E/R to RelationalDesigns
I If the relation comes from an entity set, the key attributes of therelation are precisely the key attributes of the entity set.
I If the relation comes from a binary relationship R between entity setsE and F :
I R is many-many: key attributes of the relation are the key attributes ofE and of F .
I R is many-one from E to F : key attributes of the relation are the keyattributes of E .
I R is one-one: key attributes of the relation are the key attributes of Eor of F .
I If the relationship R is multiway
, we need to reason about the FDsthat R satisfies.
I There is no simple rule.I If R has an arrow towards entity set E , at least one key for the relation
for R excludes the key for E .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Keys in the Conversion from E/R to RelationalDesigns
I If the relation comes from an entity set, the key attributes of therelation are precisely the key attributes of the entity set.
I If the relation comes from a binary relationship R between entity setsE and F :
I R is many-many: key attributes of the relation are the key attributes ofE and of F .
I R is many-one from E to F : key attributes of the relation are the keyattributes of E .
I R is one-one: key attributes of the relation are the key attributes of Eor of F .
I If the relationship R is multiway, we need to reason about the FDsthat R satisfies.
I There is no simple rule.I If R has an arrow towards entity set E , at least one key for the relation
for R excludes the key for E .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Rules for Manipulating FDs
I Learn how to reason about FDs.
I Define rules for deriving new FDs from a given set of FDs.
I Next class: use these rules to remove “anomalies” from relationaldesigns.
I Example: A relation R with attributes A, B, and C , satisfies the FDsA→ B and B → C . What other FDs does it satisfy? A→ C .
I What is the key for R? A, because A→ B and A→ C .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Rules for Manipulating FDs
I Learn how to reason about FDs.
I Define rules for deriving new FDs from a given set of FDs.
I Next class: use these rules to remove “anomalies” from relationaldesigns.
I Example: A relation R with attributes A, B, and C , satisfies the FDsA→ B and B → C . What other FDs does it satisfy?
A→ C .
I What is the key for R? A, because A→ B and A→ C .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Rules for Manipulating FDs
I Learn how to reason about FDs.
I Define rules for deriving new FDs from a given set of FDs.
I Next class: use these rules to remove “anomalies” from relationaldesigns.
I Example: A relation R with attributes A, B, and C , satisfies the FDsA→ B and B → C . What other FDs does it satisfy? A→ C .
I What is the key for R? A, because A→ B and A→ C .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Rules for Manipulating FDs
I Learn how to reason about FDs.
I Define rules for deriving new FDs from a given set of FDs.
I Next class: use these rules to remove “anomalies” from relationaldesigns.
I Example: A relation R with attributes A, B, and C , satisfies the FDsA→ B and B → C . What other FDs does it satisfy? A→ C .
I What is the key for R?
A, because A→ B and A→ C .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Rules for Manipulating FDs
I Learn how to reason about FDs.
I Define rules for deriving new FDs from a given set of FDs.
I Next class: use these rules to remove “anomalies” from relationaldesigns.
I Example: A relation R with attributes A, B, and C , satisfies the FDsA→ B and B → C . What other FDs does it satisfy? A→ C .
I What is the key for R? A, because A→ B and A→ C .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Equivalence of FDs
I An FD F follows from a set of FDs T if every relation instance thatsatisfies all the FDs in T also satisfies F .
I A→ C follows from T = {A→ B, B → C}.I Does T follow from S?
I Two sets of FDs S and T are equivalent if each FD in S follows fromT and each FD in T follows from S .
I S = {A→ B, B → C , A→ C} and T = {A→ B, B → C} areequivalent.
I These notions are useful in deriving new FDs from a given set of FDs.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Equivalence of FDs
I An FD F follows from a set of FDs T if every relation instance thatsatisfies all the FDs in T also satisfies F .
I A→ C follows from T = {A→ B, B → C}.I Does T follow from S?
I Two sets of FDs S and T are equivalent if each FD in S follows fromT and each FD in T follows from S .
I S = {A→ B, B → C , A→ C} and T = {A→ B, B → C} areequivalent.
I These notions are useful in deriving new FDs from a given set of FDs.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Equivalence of FDs
I An FD F follows from a set of FDs T if every relation instance thatsatisfies all the FDs in T also satisfies F .
I A→ C follows from T = {A→ B, B → C}.I Does T follow from S?
I Two sets of FDs S and T are equivalent if each FD in S follows fromT and each FD in T follows from S .
I S = {A→ B, B → C , A→ C} and T = {A→ B, B → C} areequivalent.
I These notions are useful in deriving new FDs from a given set of FDs.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Splitting and Combining FDs
I The set of FDs
A1A2 . . . An → B1
A1A2 . . . An → B2
...
A1A2 . . . An → Bm
is equivalent to the FD
A1A2 . . . An → B1B2 . . . Bm.I This equivalence implies two rules.
I Splitting ruleI Combining ruleI These rules work because all the FDs in S and T have identical left
hand sides.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Splitting and Combining FDs
I Can we split and combine left hand sides of FDs?
I For the relation Courses, is the FD
Number DeptName→ CourseName
equivalent to the set of FDs
{Number→ CourseName, DeptName→ CourseName}? NO!
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Splitting and Combining FDs
I Can we split and combine left hand sides of FDs?
I For the relation Courses, is the FD
Number DeptName→ CourseName
equivalent to the set of FDs
{Number→ CourseName, DeptName→ CourseName}?
NO!
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Splitting and Combining FDs
I Can we split and combine left hand sides of FDs?
I For the relation Courses, is the FD
Number DeptName→ CourseName
equivalent to the set of FDs
{Number→ CourseName, DeptName→ CourseName}? NO!
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Triviality of FDs
An FD A1A2 . . . An → B1B2 . . . Bm is
I trivial if the B’s are a subset of the A’s, i.e.,{B1, B2, . . . Bn} ⊆ {A1, A2, . . .An}.
I non-trivial if at least one B is not among the A’s, i.e.,{B1, B2, . . . Bn} − {A1, A2, . . . An} 6= ∅.
I completely non-trivial if none of the B’s are among the A’s, i.e.,{B1, B2, . . . Bn} ∩ {A1, A2, . . . An} = ∅.
I What good are trivial and non-trivial dependencies?I Trivial dependencies are always true.I They help simplify reasoning about FDs.
I Trivial dependency rule: The FD A1A2 . . . An → B1B2 . . . Bm isequivalent to the FD A1A2 . . . An → C1C2 . . . Ck , where the C ’s arethose B’s that are not A’s, i.e.,{C1, C2, . . . ,Ck} = {B1, B2, . . . ,Bm} − {A1, A2, . . . ,An}.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Triviality of FDs
An FD A1A2 . . . An → B1B2 . . . Bm is
I trivial if the B’s are a subset of the A’s,
i.e.,{B1, B2, . . . Bn} ⊆ {A1, A2, . . .An}.
I non-trivial if at least one B is not among the A’s, i.e.,{B1, B2, . . . Bn} − {A1, A2, . . . An} 6= ∅.
I completely non-trivial if none of the B’s are among the A’s, i.e.,{B1, B2, . . . Bn} ∩ {A1, A2, . . . An} = ∅.
I What good are trivial and non-trivial dependencies?I Trivial dependencies are always true.I They help simplify reasoning about FDs.
I Trivial dependency rule: The FD A1A2 . . . An → B1B2 . . . Bm isequivalent to the FD A1A2 . . . An → C1C2 . . . Ck , where the C ’s arethose B’s that are not A’s, i.e.,{C1, C2, . . . ,Ck} = {B1, B2, . . . ,Bm} − {A1, A2, . . . ,An}.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Triviality of FDs
An FD A1A2 . . . An → B1B2 . . . Bm is
I trivial if the B’s are a subset of the A’s, i.e.,{B1, B2, . . . Bn} ⊆ {A1, A2, . . .An}.
I non-trivial if at least one B is not among the A’s, i.e.,{B1, B2, . . . Bn} − {A1, A2, . . . An} 6= ∅.
I completely non-trivial if none of the B’s are among the A’s, i.e.,{B1, B2, . . . Bn} ∩ {A1, A2, . . . An} = ∅.
I What good are trivial and non-trivial dependencies?I Trivial dependencies are always true.I They help simplify reasoning about FDs.
I Trivial dependency rule: The FD A1A2 . . . An → B1B2 . . . Bm isequivalent to the FD A1A2 . . . An → C1C2 . . . Ck , where the C ’s arethose B’s that are not A’s, i.e.,{C1, C2, . . . ,Ck} = {B1, B2, . . . ,Bm} − {A1, A2, . . . ,An}.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Triviality of FDs
An FD A1A2 . . . An → B1B2 . . . Bm is
I trivial if the B’s are a subset of the A’s, i.e.,{B1, B2, . . . Bn} ⊆ {A1, A2, . . .An}.
I non-trivial if at least one B is not among the A’s,
i.e.,{B1, B2, . . . Bn} − {A1, A2, . . . An} 6= ∅.
I completely non-trivial if none of the B’s are among the A’s, i.e.,{B1, B2, . . . Bn} ∩ {A1, A2, . . . An} = ∅.
I What good are trivial and non-trivial dependencies?I Trivial dependencies are always true.I They help simplify reasoning about FDs.
I Trivial dependency rule: The FD A1A2 . . . An → B1B2 . . . Bm isequivalent to the FD A1A2 . . . An → C1C2 . . . Ck , where the C ’s arethose B’s that are not A’s, i.e.,{C1, C2, . . . ,Ck} = {B1, B2, . . . ,Bm} − {A1, A2, . . . ,An}.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Triviality of FDs
An FD A1A2 . . . An → B1B2 . . . Bm is
I trivial if the B’s are a subset of the A’s, i.e.,{B1, B2, . . . Bn} ⊆ {A1, A2, . . .An}.
I non-trivial if at least one B is not among the A’s, i.e.,{B1, B2, . . . Bn} − {A1, A2, . . . An} 6= ∅.
I completely non-trivial if none of the B’s are among the A’s, i.e.,{B1, B2, . . . Bn} ∩ {A1, A2, . . . An} = ∅.
I What good are trivial and non-trivial dependencies?I Trivial dependencies are always true.I They help simplify reasoning about FDs.
I Trivial dependency rule: The FD A1A2 . . . An → B1B2 . . . Bm isequivalent to the FD A1A2 . . . An → C1C2 . . . Ck , where the C ’s arethose B’s that are not A’s, i.e.,{C1, C2, . . . ,Ck} = {B1, B2, . . . ,Bm} − {A1, A2, . . . ,An}.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Triviality of FDs
An FD A1A2 . . . An → B1B2 . . . Bm is
I trivial if the B’s are a subset of the A’s, i.e.,{B1, B2, . . . Bn} ⊆ {A1, A2, . . .An}.
I non-trivial if at least one B is not among the A’s, i.e.,{B1, B2, . . . Bn} − {A1, A2, . . . An} 6= ∅.
I completely non-trivial if none of the B’s are among the A’s,
i.e.,{B1, B2, . . . Bn} ∩ {A1, A2, . . . An} = ∅.
I What good are trivial and non-trivial dependencies?I Trivial dependencies are always true.I They help simplify reasoning about FDs.
I Trivial dependency rule: The FD A1A2 . . . An → B1B2 . . . Bm isequivalent to the FD A1A2 . . . An → C1C2 . . . Ck , where the C ’s arethose B’s that are not A’s, i.e.,{C1, C2, . . . ,Ck} = {B1, B2, . . . ,Bm} − {A1, A2, . . . ,An}.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Triviality of FDs
An FD A1A2 . . . An → B1B2 . . . Bm is
I trivial if the B’s are a subset of the A’s, i.e.,{B1, B2, . . . Bn} ⊆ {A1, A2, . . .An}.
I non-trivial if at least one B is not among the A’s, i.e.,{B1, B2, . . . Bn} − {A1, A2, . . . An} 6= ∅.
I completely non-trivial if none of the B’s are among the A’s, i.e.,{B1, B2, . . . Bn} ∩ {A1, A2, . . . An} = ∅.
I What good are trivial and non-trivial dependencies?I Trivial dependencies are always true.I They help simplify reasoning about FDs.
I Trivial dependency rule: The FD A1A2 . . . An → B1B2 . . . Bm isequivalent to the FD A1A2 . . . An → C1C2 . . . Ck , where the C ’s arethose B’s that are not A’s, i.e.,{C1, C2, . . . ,Ck} = {B1, B2, . . . ,Bm} − {A1, A2, . . . ,An}.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Triviality of FDs
An FD A1A2 . . . An → B1B2 . . . Bm is
I trivial if the B’s are a subset of the A’s, i.e.,{B1, B2, . . . Bn} ⊆ {A1, A2, . . .An}.
I non-trivial if at least one B is not among the A’s, i.e.,{B1, B2, . . . Bn} − {A1, A2, . . . An} 6= ∅.
I completely non-trivial if none of the B’s are among the A’s, i.e.,{B1, B2, . . . Bn} ∩ {A1, A2, . . . An} = ∅.
I What good are trivial and non-trivial dependencies?I Trivial dependencies are always true.I They help simplify reasoning about FDs.
I Trivial dependency rule: The FD A1A2 . . . An → B1B2 . . . Bm isequivalent to the FD A1A2 . . . An → C1C2 . . . Ck , where the C ’s arethose B’s that are not A’s, i.e.,{C1, C2, . . . ,Ck} = {B1, B2, . . . ,Bm} − {A1, A2, . . . ,An}.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Triviality of FDs
An FD A1A2 . . . An → B1B2 . . . Bm is
I trivial if the B’s are a subset of the A’s, i.e.,{B1, B2, . . . Bn} ⊆ {A1, A2, . . .An}.
I non-trivial if at least one B is not among the A’s, i.e.,{B1, B2, . . . Bn} − {A1, A2, . . . An} 6= ∅.
I completely non-trivial if none of the B’s are among the A’s, i.e.,{B1, B2, . . . Bn} ∩ {A1, A2, . . . An} = ∅.
I What good are trivial and non-trivial dependencies?I Trivial dependencies are always true.I They help simplify reasoning about FDs.
I Trivial dependency rule: The FD A1A2 . . . An → B1B2 . . . Bm isequivalent to the FD A1A2 . . . An → C1C2 . . . Ck , where the C ’s arethose B’s that are not A’s, i.e.,{C1, C2, . . . ,Ck} = {B1, B2, . . . ,Bm} − {A1, A2, . . . ,An}.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Closures of Attributes: Example
Suppose a relation with attributes A, B, C , D, E , and F satisfies the FDs
AB → C BC → AD D → E , CF → B
Given these FDs,
I what is the set X of attributes such that AB → X is true?
X = {A, B, C , D, E}, i.e., AB → ABCDE .
I what is the set Y of attributes such that BCF → Y is true?Y = {A, B, C , D, E , F}, i.e., BCF → ABCDEF
I what is the set Z of attributes such that AF → Z is true?Z = {A, F}, i.e., AF → AF .
I X , Y , and Z are the closures of {A, B}, {B, C , F}, and {A, F},respectively.
I {B, C , F} is a superkey.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Closures of Attributes: Example
Suppose a relation with attributes A, B, C , D, E , and F satisfies the FDs
AB → C BC → AD D → E , CF → B
Given these FDs,
I what is the set X of attributes such that AB → X is true?X = {A, B, C , D, E}, i.e., AB → ABCDE .
I what is the set Y of attributes such that BCF → Y is true?Y = {A, B, C , D, E , F}, i.e., BCF → ABCDEF
I what is the set Z of attributes such that AF → Z is true?Z = {A, F}, i.e., AF → AF .
I X , Y , and Z are the closures of {A, B}, {B, C , F}, and {A, F},respectively.
I {B, C , F} is a superkey.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Closures of Attributes: Example
Suppose a relation with attributes A, B, C , D, E , and F satisfies the FDs
AB → C BC → AD D → E , CF → B
Given these FDs,
I what is the set X of attributes such that AB → X is true?X = {A, B, C , D, E}, i.e., AB → ABCDE .
I what is the set Y of attributes such that BCF → Y is true?
Y = {A, B, C , D, E , F}, i.e., BCF → ABCDEF
I what is the set Z of attributes such that AF → Z is true?Z = {A, F}, i.e., AF → AF .
I X , Y , and Z are the closures of {A, B}, {B, C , F}, and {A, F},respectively.
I {B, C , F} is a superkey.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Closures of Attributes: Example
Suppose a relation with attributes A, B, C , D, E , and F satisfies the FDs
AB → C BC → AD D → E , CF → B
Given these FDs,
I what is the set X of attributes such that AB → X is true?X = {A, B, C , D, E}, i.e., AB → ABCDE .
I what is the set Y of attributes such that BCF → Y is true?Y = {A, B, C , D, E , F}, i.e., BCF → ABCDEF
I what is the set Z of attributes such that AF → Z is true?Z = {A, F}, i.e., AF → AF .
I X , Y , and Z are the closures of {A, B}, {B, C , F}, and {A, F},respectively.
I {B, C , F} is a superkey.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Closures of Attributes: Example
Suppose a relation with attributes A, B, C , D, E , and F satisfies the FDs
AB → C BC → AD D → E , CF → B
Given these FDs,
I what is the set X of attributes such that AB → X is true?X = {A, B, C , D, E}, i.e., AB → ABCDE .
I what is the set Y of attributes such that BCF → Y is true?Y = {A, B, C , D, E , F}, i.e., BCF → ABCDEF
I what is the set Z of attributes such that AF → Z is true?
Z = {A, F}, i.e., AF → AF .
I X , Y , and Z are the closures of {A, B}, {B, C , F}, and {A, F},respectively.
I {B, C , F} is a superkey.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Closures of Attributes: Example
Suppose a relation with attributes A, B, C , D, E , and F satisfies the FDs
AB → C BC → AD D → E , CF → B
Given these FDs,
I what is the set X of attributes such that AB → X is true?X = {A, B, C , D, E}, i.e., AB → ABCDE .
I what is the set Y of attributes such that BCF → Y is true?Y = {A, B, C , D, E , F}, i.e., BCF → ABCDEF
I what is the set Z of attributes such that AF → Z is true?Z = {A, F}, i.e., AF → AF .
I X , Y , and Z are the closures of {A, B}, {B, C , F}, and {A, F},respectively.
I {B, C , F} is a superkey.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Closures of Attributes: Example
Suppose a relation with attributes A, B, C , D, E , and F satisfies the FDs
AB → C BC → AD D → E , CF → B
Given these FDs,
I what is the set X of attributes such that AB → X is true?X = {A, B, C , D, E}, i.e., AB → ABCDE .
I what is the set Y of attributes such that BCF → Y is true?Y = {A, B, C , D, E , F}, i.e., BCF → ABCDEF
I what is the set Z of attributes such that AF → Z is true?Z = {A, F}, i.e., AF → AF .
I X , Y , and Z are the closures of {A, B}, {B, C , F}, and {A, F},respectively.
I {B, C , F} is a superkey.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Closures of Attributes: Example
Suppose a relation with attributes A, B, C , D, E , and F satisfies the FDs
AB → C BC → AD D → E , CF → B
Given these FDs,
I what is the set X of attributes such that AB → X is true?X = {A, B, C , D, E}, i.e., AB → ABCDE .
I what is the set Y of attributes such that BCF → Y is true?Y = {A, B, C , D, E , F}, i.e., BCF → ABCDEF
I what is the set Z of attributes such that AF → Z is true?Z = {A, F}, i.e., AF → AF .
I X , Y , and Z are the closures of {A, B}, {B, C , F}, and {A, F},respectively.
I {B, C , F} is a
superkey.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Closures of Attributes: Example
Suppose a relation with attributes A, B, C , D, E , and F satisfies the FDs
AB → C BC → AD D → E , CF → B
Given these FDs,
I what is the set X of attributes such that AB → X is true?X = {A, B, C , D, E}, i.e., AB → ABCDE .
I what is the set Y of attributes such that BCF → Y is true?Y = {A, B, C , D, E , F}, i.e., BCF → ABCDEF
I what is the set Z of attributes such that AF → Z is true?Z = {A, F}, i.e., AF → AF .
I X , Y , and Z are the closures of {A, B}, {B, C , F}, and {A, F},respectively.
I {B, C , F} is a superkey.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Closures of Attributes: Definition
Given
I a set of attributes {A1, A2, . . . ,An} and
I a set of FDs S ,
the closure of {A1, A2, . . . ,An} under the FDs in S is
I the set of attributes {B1, B2, . . . ,Bm} such that for 1 ≤ i ≤ m, theFD A1A2 . . . An → Bi follows from S .
I the closure is denoted by {A1, A2, . . . ,An}+.
I Which attributes must {A1, A2, . . . ,An}+ contain at a minimum?{A1, A2, . . . ,An}. Why? A1A2 . . . An → Ai is a trivial FD.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Closures of Attributes: Definition
Given
I a set of attributes {A1, A2, . . . ,An} and
I a set of FDs S ,
the closure of {A1, A2, . . . ,An} under the FDs in S is
I the set of attributes {B1, B2, . . . ,Bm} such that for 1 ≤ i ≤ m, theFD A1A2 . . . An → Bi follows from S .
I the closure is denoted by {A1, A2, . . . ,An}+.
I Which attributes must {A1, A2, . . . ,An}+ contain at a minimum?
{A1, A2, . . . ,An}. Why? A1A2 . . . An → Ai is a trivial FD.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Closures of Attributes: Definition
Given
I a set of attributes {A1, A2, . . . ,An} and
I a set of FDs S ,
the closure of {A1, A2, . . . ,An} under the FDs in S is
I the set of attributes {B1, B2, . . . ,Bm} such that for 1 ≤ i ≤ m, theFD A1A2 . . . An → Bi follows from S .
I the closure is denoted by {A1, A2, . . . ,An}+.
I Which attributes must {A1, A2, . . . ,An}+ contain at a minimum?{A1, A2, . . . ,An}. Why?
A1A2 . . . An → Ai is a trivial FD.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Closures of Attributes: Definition
Given
I a set of attributes {A1, A2, . . . ,An} and
I a set of FDs S ,
the closure of {A1, A2, . . . ,An} under the FDs in S is
I the set of attributes {B1, B2, . . . ,Bm} such that for 1 ≤ i ≤ m, theFD A1A2 . . . An → Bi follows from S .
I the closure is denoted by {A1, A2, . . . ,An}+.
I Which attributes must {A1, A2, . . . ,An}+ contain at a minimum?{A1, A2, . . . ,An}. Why? A1A2 . . . An → Ai is a trivial FD.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Closures of Attributes: Algorithm
Given
I a set of attributes {A1, A2, . . . ,An} andI a set of FDs S ,I compute X = {A1, A2, . . . ,An}+.
1. Use the splitting rule so that each FD in S has one attribute on theright.
2. Set X ← {A1, A2, . . . ,An}.3. Find an FD B1B2 . . . Bk → C in S such that {B1, B2, . . . Bk} ⊆ X but
C 6∈ X .
4. Add C to X .
5. Repeat the last two steps until you cannot find such an attribute C .
6. The final value of X is the desired closure.
I Why does the algorithm compute the closure correctly? Read Chapter3.2.5 of the textbook.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Closures of Attributes: Algorithm
Given
I a set of attributes {A1, A2, . . . ,An} andI a set of FDs S ,I compute X = {A1, A2, . . . ,An}+.
1. Use the splitting rule so that each FD in S has one attribute on theright.
2. Set X ← {A1, A2, . . . ,An}.3. Find an FD B1B2 . . . Bk → C in S such that {B1, B2, . . . Bk} ⊆ X but
C 6∈ X .
4. Add C to X .
5. Repeat the last two steps until you cannot find such an attribute C .
6. The final value of X is the desired closure.
I Why does the algorithm compute the closure correctly? Read Chapter3.2.5 of the textbook.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Closures of Attributes: Algorithm
Given
I a set of attributes {A1, A2, . . . ,An} andI a set of FDs S ,I compute X = {A1, A2, . . . ,An}+.
1. Use the splitting rule so that each FD in S has one attribute on theright.
2. Set X ← {A1, A2, . . . ,An}.3. Find an FD B1B2 . . . Bk → C in S such that {B1, B2, . . . Bk} ⊆ X but
C 6∈ X .
4. Add C to X .
5. Repeat the last two steps until you cannot find such an attribute C .
6. The final value of X is the desired closure.
I Why does the algorithm compute the closure correctly? Read Chapter3.2.5 of the textbook.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Why is the Concept of Closures Useful?
1. Prove correctness of rules for manipulating FDs.
For example,I Transitive rule: if
A1A2 . . . An → B1B2 . . . Bm
andB1B2 . . . Bm → C1C2 . . . Ck
thenA1A2 . . . An → C1C2 . . . Ck .
I To prove this rule, simply check if{C1, C2, . . . ,Ck} ⊆ {A1, A2, . . . ,An}+.
2. Check if a “new” FD A1A2 . . . An → B follows from a set of FDs S :simply check if B is in {A1, A2, . . . An}+ under S .
3. Procedurally define keys. A set of attributes X is a key for a relationR if and only if
I {X}+ is the set of all attributes of R andI for no attribute A ∈ X is {X − {A}}+ the set of all attributes of R.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Why is the Concept of Closures Useful?
1. Prove correctness of rules for manipulating FDs. For example,I Transitive rule: if
A1A2 . . . An → B1B2 . . . Bm
andB1B2 . . . Bm → C1C2 . . . Ck
thenA1A2 . . . An → C1C2 . . . Ck .
I To prove this rule, simply check if{C1, C2, . . . ,Ck} ⊆ {A1, A2, . . . ,An}+.
2. Check if a “new” FD A1A2 . . . An → B follows from a set of FDs S :simply check if B is in {A1, A2, . . . An}+ under S .
3. Procedurally define keys. A set of attributes X is a key for a relationR if and only if
I {X}+ is the set of all attributes of R andI for no attribute A ∈ X is {X − {A}}+ the set of all attributes of R.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Why is the Concept of Closures Useful?
1. Prove correctness of rules for manipulating FDs. For example,I Transitive rule: if
A1A2 . . . An → B1B2 . . . Bm
andB1B2 . . . Bm → C1C2 . . . Ck
thenA1A2 . . . An → C1C2 . . . Ck .
I To prove this rule, simply check if{C1, C2, . . . ,Ck} ⊆ {A1, A2, . . . ,An}+.
2. Check if a “new” FD A1A2 . . . An → B follows from a set of FDs S :simply check if B is in {A1, A2, . . . An}+ under S .
3. Procedurally define keys. A set of attributes X is a key for a relationR if and only if
I {X}+ is the set of all attributes of R andI for no attribute A ∈ X is {X − {A}}+ the set of all attributes of R.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Why is the Concept of Closures Useful?
1. Prove correctness of rules for manipulating FDs. For example,I Transitive rule: if
A1A2 . . . An → B1B2 . . . Bm
andB1B2 . . . Bm → C1C2 . . . Ck
thenA1A2 . . . An → C1C2 . . . Ck .
I To prove this rule, simply check if{C1, C2, . . . ,Ck} ⊆ {A1, A2, . . . ,An}+.
2. Check if a “new” FD A1A2 . . . An → B follows from a set of FDs S :simply check if B is in {A1, A2, . . . An}+ under S .
3. Procedurally define keys. A set of attributes X is a key for a relationR if and only if
I {X}+ is the set of all attributes of R andI for no attribute A ∈ X is {X − {A}}+ the set of all attributes of R.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Why is the Concept of Closures Useful?
1. Prove correctness of rules for manipulating FDs. For example,I Transitive rule: if
A1A2 . . . An → B1B2 . . . Bm
andB1B2 . . . Bm → C1C2 . . . Ck
thenA1A2 . . . An → C1C2 . . . Ck .
I To prove this rule, simply check if{C1, C2, . . . ,Ck} ⊆ {A1, A2, . . . ,An}+.
2. Check if a “new” FD A1A2 . . . An → B follows from a set of FDs S :simply check if B is in {A1, A2, . . . An}+ under S .
3. Procedurally define keys.
A set of attributes X is a key for a relationR if and only if
I {X}+ is the set of all attributes of R andI for no attribute A ∈ X is {X − {A}}+ the set of all attributes of R.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Why is the Concept of Closures Useful?
1. Prove correctness of rules for manipulating FDs. For example,I Transitive rule: if
A1A2 . . . An → B1B2 . . . Bm
andB1B2 . . . Bm → C1C2 . . . Ck
thenA1A2 . . . An → C1C2 . . . Ck .
I To prove this rule, simply check if{C1, C2, . . . ,Ck} ⊆ {A1, A2, . . . ,An}+.
2. Check if a “new” FD A1A2 . . . An → B follows from a set of FDs S :simply check if B is in {A1, A2, . . . An}+ under S .
3. Procedurally define keys. A set of attributes X is a key for a relationR if and only if
I {X}+ is the set of all attributes of R andI for no attribute A ∈ X is {X − {A}}+ the set of all attributes of R.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Examples of Closure Computations
I Consider the “bad” relation Students(Id, Name, AdvisorId,AdvisorName, FavouriteAdvisorId).
I What are the FDs that hold in this relation?
Id→ Name
Id→ FavouriteAdvisorId
AdvisorId→ AdvisorName
I To compute the key for this relation,
1. Compute the closures for all sets of attributes.2. Find the minimal set of attributes whose closure is the set of all
attributes.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Examples of Closure Computations
I Consider the “bad” relation Students(Id, Name, AdvisorId,AdvisorName, FavouriteAdvisorId).
I What are the FDs that hold in this relation?
Id→ Name
Id→ FavouriteAdvisorId
AdvisorId→ AdvisorNameI To compute the key for this relation,
1. Compute the closures for all sets of attributes.2. Find the minimal set of attributes whose closure is the set of all
attributes.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Algorithm for Computing Keys
Given
I a relation R(A1, A2, . . . ,An) and
I the set of all FDs S that hold in R,
I compute all the keys of R.
1. For every subset K ⊆ {A1, A2, . . . ,An}, compute {K}+.
2. If {K}+ = {A1, A2, . . . ,An} and for every attribute A,{K − {A}}+ 6= {A1, A2, . . . ,An}, then output K as a key.
I Running time of the algorithm is exponential in the number ofattributes.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Algorithm for Computing Keys
Given
I a relation R(A1, A2, . . . ,An) and
I the set of all FDs S that hold in R,
I compute all the keys of R.
1. For every subset K ⊆ {A1, A2, . . . ,An}, compute {K}+.
2. If {K}+ = {A1, A2, . . . ,An} and for every attribute A,{K − {A}}+ 6= {A1, A2, . . . ,An}, then output K as a key.
I Running time of the algorithm is exponential in the number ofattributes.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Algorithm for Computing Keys
Given
I a relation R(A1, A2, . . . ,An) and
I the set of all FDs S that hold in R,
I compute all the keys of R.
1. For every subset K ⊆ {A1, A2, . . . ,An}, compute {K}+.
2. If {K}+ = {A1, A2, . . . ,An} and for every attribute A,{K − {A}}+ 6= {A1, A2, . . . ,An}, then output K as a key.
I Running time of the algorithm is exponential in the number ofattributes.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Armstrong’s Axioms
I We can use closures of attributes to determine if any FD follows froma given set of FDs.
I Armstrong’s axioms: complete set of inference rules from which it ispossible to derive every FD that follows from a given set:
Reflexivity If {B1, B2, . . . ,Bm} ⊆ {A1, A2, . . . ,An}, thenA1A2 . . . Am → B1B2 . . . Bm (Trivial FDs).
Augmentation If A1A2 . . . Am → B1B2 . . . Bm, thenA1A2 . . . AmC1C2 . . . Ck → B1B2 . . . BmC1C2 . . . Ck , forany set of attributes {C1, C2, . . . ,Ck}.
Transitivity If A1A2 . . . An → B1B2 . . . Bm andB1B2 . . . Bm → C1C2 . . . Ck thenA1A2 . . . An → C1C2 . . . Ck .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Armstrong’s Axioms
I We can use closures of attributes to determine if any FD follows froma given set of FDs.
I Armstrong’s axioms: complete set of inference rules from which it ispossible to derive every FD that follows from a given set:
Reflexivity If {B1, B2, . . . ,Bm} ⊆ {A1, A2, . . . ,An}, thenA1A2 . . . Am → B1B2 . . . Bm (Trivial FDs).
Augmentation If A1A2 . . . Am → B1B2 . . . Bm, thenA1A2 . . . AmC1C2 . . . Ck → B1B2 . . . BmC1C2 . . . Ck , forany set of attributes {C1, C2, . . . ,Ck}.
Transitivity If A1A2 . . . An → B1B2 . . . Bm andB1B2 . . . Bm → C1C2 . . . Ck thenA1A2 . . . An → C1C2 . . . Ck .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Armstrong’s Axioms
I We can use closures of attributes to determine if any FD follows froma given set of FDs.
I Armstrong’s axioms: complete set of inference rules from which it ispossible to derive every FD that follows from a given set:
Reflexivity If {B1, B2, . . . ,Bm} ⊆ {A1, A2, . . . ,An}, thenA1A2 . . . Am → B1B2 . . . Bm (Trivial FDs).
Augmentation If A1A2 . . . Am → B1B2 . . . Bm, thenA1A2 . . . AmC1C2 . . . Ck → B1B2 . . . BmC1C2 . . . Ck , forany set of attributes {C1, C2, . . . ,Ck}.
Transitivity If A1A2 . . . An → B1B2 . . . Bm andB1B2 . . . Bm → C1C2 . . . Ck thenA1A2 . . . An → C1C2 . . . Ck .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Armstrong’s Axioms
I We can use closures of attributes to determine if any FD follows froma given set of FDs.
I Armstrong’s axioms: complete set of inference rules from which it ispossible to derive every FD that follows from a given set:
Reflexivity If {B1, B2, . . . ,Bm} ⊆ {A1, A2, . . . ,An}, thenA1A2 . . . Am → B1B2 . . . Bm (Trivial FDs).
Augmentation If A1A2 . . . Am → B1B2 . . . Bm, thenA1A2 . . . AmC1C2 . . . Ck → B1B2 . . . BmC1C2 . . . Ck , forany set of attributes {C1, C2, . . . ,Ck}.
Transitivity If A1A2 . . . An → B1B2 . . . Bm andB1B2 . . . Bm → C1C2 . . . Ck thenA1A2 . . . An → C1C2 . . . Ck .
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Differences in Notation
Relation schema R(A1, A2, A3): parentheses surround attributes,attributes separated by commas.
Set of attributes {A1, A2, A3}: curly braces surround attributes, attributesseparated by commas.
FD A1A2 → A3: no parentheses or curly braces, attributesseparated by spaces, arrows separates left hand side and righthand side.
Set of FDs {A1A2 → A3, A2 → A1}: curly braces surround FDs, FDsseparated by commas.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Minimal Basis
I A relation may have a large set of equivalent sets of FDs.
I If we are given a set S of FDs, then any set of FDs that is equivalentto S is called a basis of S .
I We will limit ourselves to bases in which each FD has only oneattribute on the right hand side.
I A set B of FDs is a minimal basis for a relation R if
1. Every FD in B has one attribute on the right hand side.2. If we remove any FD from B, then the result is not a basis.3. If for any FD in B, we remove one or more attributes from the left
hand side of the FD, then the result is not a basis.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Minimal Basis
I A relation may have a large set of equivalent sets of FDs.
I If we are given a set S of FDs, then any set of FDs that is equivalentto S is called a basis of S .
I We will limit ourselves to bases in which each FD has only oneattribute on the right hand side.
I A set B of FDs is a minimal basis for a relation R if
1. Every FD in B has one attribute on the right hand side.2. If we remove any FD from B, then the result is not a basis.3. If for any FD in B, we remove one or more attributes from the left
hand side of the FD, then the result is not a basis.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Minimal Basis
I A relation may have a large set of equivalent sets of FDs.
I If we are given a set S of FDs, then any set of FDs that is equivalentto S is called a basis of S .
I We will limit ourselves to bases in which each FD has only oneattribute on the right hand side.
I A set B of FDs is a minimal basis for a relation R if
1. Every FD in B has one attribute on the right hand side.2. If we remove any FD from B, then the result is not a basis.3. If for any FD in B, we remove one or more attributes from the left
hand side of the FD, then the result is not a basis.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of Minimal Basis
I R(A, B, C ) is a relation such that each attribute functionallydetermines the other two attributes.
I What are the FDs that hold in R and what are the minimal bases?(Assume only one attribute on the right-hand side, only non-trivialFDs)
I FDs: A→ B, A→ C , B → A, B → C , C → A, C → B, AB → C ,BC → A, AC → B.
I Minimal bases: {A→ B, B → A, B → C , C → B},{A→ B, B → C , C → A}, and others.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of Minimal Basis
I R(A, B, C ) is a relation such that each attribute functionallydetermines the other two attributes.
I What are the FDs that hold in R and what are the minimal bases?(Assume only one attribute on the right-hand side, only non-trivialFDs)
I FDs:
A→ B, A→ C , B → A, B → C , C → A, C → B, AB → C ,BC → A, AC → B.
I Minimal bases: {A→ B, B → A, B → C , C → B},{A→ B, B → C , C → A}, and others.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of Minimal Basis
I R(A, B, C ) is a relation such that each attribute functionallydetermines the other two attributes.
I What are the FDs that hold in R and what are the minimal bases?(Assume only one attribute on the right-hand side, only non-trivialFDs)
I FDs: A→ B, A→ C , B → A, B → C , C → A, C → B,
AB → C ,BC → A, AC → B.
I Minimal bases: {A→ B, B → A, B → C , C → B},{A→ B, B → C , C → A}, and others.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of Minimal Basis
I R(A, B, C ) is a relation such that each attribute functionallydetermines the other two attributes.
I What are the FDs that hold in R and what are the minimal bases?(Assume only one attribute on the right-hand side, only non-trivialFDs)
I FDs: A→ B, A→ C , B → A, B → C , C → A, C → B, AB → C ,BC → A, AC → B.
I Minimal bases: {A→ B, B → A, B → C , C → B},{A→ B, B → C , C → A}, and others.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of Minimal Basis
I R(A, B, C ) is a relation such that each attribute functionallydetermines the other two attributes.
I What are the FDs that hold in R and what are the minimal bases?(Assume only one attribute on the right-hand side, only non-trivialFDs)
I FDs: A→ B, A→ C , B → A, B → C , C → A, C → B, AB → C ,BC → A, AC → B.
I Minimal bases:
{A→ B, B → A, B → C , C → B},{A→ B, B → C , C → A}, and others.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies
Basics of FDs Manipulating FDs Closures and Keys Minimal Bases
Example of Minimal Basis
I R(A, B, C ) is a relation such that each attribute functionallydetermines the other two attributes.
I What are the FDs that hold in R and what are the minimal bases?(Assume only one attribute on the right-hand side, only non-trivialFDs)
I FDs: A→ B, A→ C , B → A, B → C , C → A, C → B, AB → C ,BC → A, AC → B.
I Minimal bases: {A→ B, B → A, B → C , C → B},{A→ B, B → C , C → A}, and others.
T. M. Murali October 19, 21 2009 CS 4604: Functional Dependencies