Functional Dependency (cont.) ● Some examples Beers(name,manf) name→manf manf→name? Sells(bar,beer,price) Bar,beer→price 6
6 Functional Dependency (cont.) z Some examples Beers(name, manf) nameÆmanf manfÆname ? Sells(bar, beer, price) Bar,beer Æ price
Splitting Right Sides of FD's X->A,A2...A holds for R exactly when each of X->A1,X->A2,...,X->A hold for R. Example:A->BC is equivalent to A->B and A->C. ● There is no splitting rule for left sides. We'll generally express FD's with singleton right sides 7
7 Splitting Right Sides of FD’s z X->A1A2…An holds for R exactly when each of X->A1, X->A2,…, X->An hold for R. z Example: A->BC is equivalent to A->B and A->C. z There is no splitting rule for left sides. z We’ll generally express FD’s with singleton right sides
Example:FD's Drinkers(name,addr,beersLiked,manf, favBeer) Reasonable FD's to assert: 1. name->addr favBeer (combining rule) Note this FD is the same as name->addr and name -favBeer.(splitting rule) 2.beersLiked -manf 8
8 Example: FD’s Drinkers(name, addr, beersLiked, manf, favBeer) z Reasonable FD’s to assert: 1. name -> addr favBeer (combining rule) Note this FD is the same as name -> addr and name -> favBeer. (splitting rule) 2. beersLiked -> manf
Example:Possible Data name addr beersLiked manf favBeer Janeway Voyager Bud A.B. WickedAle Janeway Voyager WickedAle Pete's WickedAle Spock Enterprise Bud A.B. Bud Because name -addr Because name -favBeer Because beersLiked -manf 9
9 Example: Possible Data name addr beersLiked manf favBeer Janeway Voyager Bud A.B. WickedAle Janeway Voyager WickedAle Pete’s WickedAle Spock Enterprise Bud A.B. Bud Because name -> addr Because name -> favBeer Because beersLiked -> manf
Keys of Relations K is a superkey for relation R if K functionally determines all of R. ● K is a key for R if K is a superkey,but no proper subset of K is a superkey. (minimality) 10
10 Keys of Relations z K is a superkey for relation R if K functionally determines all of R. z K is a key for R if K is a superkey, but no proper subset of K is a superkey. (minimality)