Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 09: Functional Dependencies. Outline Functional dependencies (3.4) Rules about FDs (3.5) Design of a Relational schema (3.6)

Similar presentations


Presentation on theme: "Lecture 09: Functional Dependencies. Outline Functional dependencies (3.4) Rules about FDs (3.5) Design of a Relational schema (3.6)"— Presentation transcript:

1 Lecture 09: Functional Dependencies

2 Outline Functional dependencies (3.4) Rules about FDs (3.5) Design of a Relational schema (3.6)

3 Relational Schema Design Conceptual Model: Relational Model: plus FD’s Normalization: Eliminates anomalies Person buys Product name price namessn date

4 Functional Dependencies Definition: A 1,..., A m → B 1,..., B n holds in R if:  t, t’  R, (t.A 1 =t’.A 1 ...  t.A m =t’.A m  t.B 1 =t’.B 1 ...  t.B m =t’.B m ) A1...AmB1...Bm if t, t’ agree here then t, t’ agree here t t’ R

5 Important Point! Functional dependencies are part of the schema! They constrain the possible legal data instances. At any point in time, the actual database may satisfy additional FD’s.

6 Examples EmpID → Name, Phone, Position Position → Phone but Phone → Position EmpIDNamePhonePosition E0045John Smith2376HR E1847Zheng Li2376QA E3123Lucy Larsen1264Developer E9923Zheng Li1264Developer

7 Formal definition of a key A key is a set of attributes A 1,..., A n s.t. for any other attribute B, A 1,..., A n → B A minimal key is a set of attributes which is a key and for which no subset is a key Note: book calls them superkey and key

8 Examples of Keys Product(name, price, category, color) name, category → price category → color Keys are: {name, category} and all supersets Enrollment(student, address, course, room, time) student → address room, time → course student, course → room, time Keys are: [in class]

9 Inference Rules for FD’s A 1, A 2, … A n →B 1, B 2, … B m Is equivalent to A 1, A 2, … A n →B 1 A 1, A 2, … A n →B 2 A 1, A 2, … A n →B m … Splitting rule and Combing rule A1...AmB1...Bm AND

10 Inference Rules for FD’s (continued) Trivial Rule Why ? A1...Am where i = 1, 2,..., n A 1, A 2, … A n → A i

11 Inference Rules for FD’s (continued) Transitive Closure Rule If and then Why? A 1, A 2, … A n → B 1, B 2, … B m B 1, B 2, … B m → C 1, C 2, … C k A 1, A 2, … A n → C 1, C 2, … C k

12 A1...AmB1...BmC1C1...CkCk

13 Enrollment(student, major, course, room, time) student → major major, course → room course → time What else can we infer ? [in class]

14 Closure of a set of Attributes Given a set of attributes {A 1, …, A n } and a set of dependencies S. Problem: find all attributes B such that: any relation which satisfies S also satisfies: A 1, A 2, … A n → B The closure of {A 1, …, A n }, denoted {A 1, …, A n } +, is the set of all such attributes B

15 Closure Algorithm Start with X={A 1, …, A n }. Until X doesn’t change do: if B 1, B 2, … B m → C is in S, and B 1, B 2, … B m are all in X and C is not in X then add C to X

16 Example The schema - R(A,B,C,D,E,F) A, B→C A,D→ E B→ D A,F→B Closure of {A,B}:X = {A, B,} Closure of {A, F}:X = {A, F,}

17 Why Is the Algorithm Correct ? Show the following by induction: –For every B in X: A 1, A 2, … A n → B Initially X = {A 1, A 2, … A n } holds Induction step: B 1, …, B m in X –Implies A 1, A 2, … A n → B 1, B 2, … B m –We also have B 1, B 2, … B m → C –By transitivity we have A 1, A 2, … A n → C This shows that the algorithm is sound; need to show it is complete

18 Relational Schema Design (or Logical Design) Main idea: Start with some relational schema Find out its FD’s Use them to design a better relational schema

19 Relational Schema Design Anomalies: Redundancy= repeated data Update anomalies= Fred moves to “Bellevue” Deletion anomalies= Fred drops all phone numbers: what is his city ? Recall set attributes (persons with several phones): SSN → Name, City, but not SSN → PhoneNumber NameSSNPhoneNumberCity Fred123-45-6789206-555-1234Seattle Fred123-45-6789206-555-6543Seattle Joe987-65-4321908-555-2121Westfield Joe987-65-4321908-555-1234Westfield

20 Relation Decomposition Break the relation into two: NameSSNCity Fred123-45-6789Seattle Joe987-65-4321Westfield SSNPhoneNumber 123-45-6789206-555-1234 123-45-6789206-555-6543 987-65-4321908-555-2121 987-65-4321908-555-1234

21 Relational Schema Design Conceptual Model: Relational Model: plus FD’s Normalization: Eliminates anomalies Person buys Product name price namessn date

22 Decompositions in General R(A 1,..., A n ) Create two relations R 1 (B 1,..., B m ) and R 2 (C 1,..., C k ) such that: B 1,..., B m  C 1,..., C k = A 1,..., A n and: R 1 = projection of R on B 1,..., B m R 2 = projection of R on C 1,..., C k

23 Incorrect Decomposition Sometimes it is incorrect: NamePriceCategory Gizmo19.99Gadget OneClick24.99Camera DoubleClick29.99Camera Decompose on : Name, Category and Price, Category

24 Incorrect Decomposition NameCategory GizmoGadget OneClickCamera DoubleClickCamera PriceCategory 19.99Gadget 24.99Camera 29.99Camera NamePriceCategory Gizmo19.99Gadget OneClick24.99Camera OneClick29.99Camera DoubleClick24.99Camera DoubleClick29.99Camera When we put it back: Cannot recover information

25 Normal Forms First Normal Form = all attributes are atomic Second Normal Form (2NF) = old and obsolete Third Normal Form (3NF) = this lecture Boyce Codd Normal Form (BCNF) = this lecture Others...

26 Boyce-Codd Normal Form A simple condition for removing anomalies from relations: In English: Whenever a set of attributes of R determines one more attribute, it should determine all the attributes of R. A relation R is in BCNF if: Whenever there is a nontrivial dependency A 1,..., A n → B in R, {A 1,..., A n } is a key for R A relation R is in BCNF if: Whenever there is a nontrivial dependency A 1,..., A n → B in R, {A 1,..., A n } is a key for R Including superkeys

27 Example What are the dependencies? SSN → Name, City What are the keys? {SSN, PhoneNumber} Is it in BCNF? NameSSNPhoneNumberCity Fred123-45-6789206-555-1234Seattle Fred123-45-6789206-555-6543Seattle Joe987-65-4321908-555-2121Westfield Joe987-65-4321908-555-1234Westfield

28 Decompose it into BCNF NameSSNCity Fred123-45-6789Seattle Joe987-65-4321Westfield SSNPhoneNumber 123-45-6789206-555-1234 123-45-6789206-555-6543 987-65-4321908-555-2121 987-65-4321908-555-1234 SSN → Name, City

29 Summary of BCNF Decomposition Find a dependency that violates the BCNF condition: A 1, A 2, … A n → B 1, B 2, … B m A’s Others B’s R1R2 Heuristics: choose B 1, B 2, … B m “as large as possible” Decompose: Exercise: Is there a 2- attribute relation that is not in BCNF ? Continue until there are no BCNF violations left.

30 Example Decomposition Person(name, SSN, age, hairColor, phoneNumber) SSN → name, age age → hairColor Decompose in BCNF (in class): Step 1: find all keys Step 2: now decompose

31 Other Example R(A,B,C,D) A → B, B → C Key: A, D Violations of BCNF: A → B, B → C, A → C, A → B,C Pick A → B,C: split R into R 1 (A,B,C), R 2 (A,D) What happens if we pick A → B first ?

32 Correct Decompositions A decomposition is lossless if we can recover: R(A,B,C) R1(A,B) R2(A,C) R’(A,B,C) should be the same as R(A,B,C) R’ is in general larger than R. Must ensure R’ = R Decompose Recover

33 Correct Decompositions Given R(A,B,C) s.t. A→B, the decomposition into R1(A,B), R2(A,C) is lossless

34 3NF: A Problem with BCNF FD’s: Character  Film;Film, Actor  Character So, there is a BCNF violation, and we decompose. Character  Film No FDs FilmActorCharacter ActorCharacter FilmCharacter

35 So What’s the Problem? No problem so far. All local FD’s are satisfied. Let’s put all the data back into a single table again: Violates the dependency: Film, Actor  Character! FilmCharacter Austin Powers Dr. Evil ActorCharacter Mike MyersAustin Powers Mike MyersDr. Evil FilmActorCharacter Austin PowersMike MyersAustin Powers Mike MyersDr. Evil What happened here?

36 Solution: 3rd Normal Form (3NF) A simple condition for removing anomalies from relations: 3NF has a dependency-preserving decomposition A relation R is in 3rd normal form if : Whenever there is a nontrivial dependency A 1, A 2,..., A n  B for R, then {A 1, A 2,..., A n } a key for R, or B is part of a key. A relation R is in 3rd normal form if : Whenever there is a nontrivial dependency A 1, A 2,..., A n  B for R, then {A 1, A 2,..., A n } a key for R, or B is part of a key. Including superkeys

37 Decomposition into 3NF Easy when we know BCNF decomposition (how?) Not-so-easy: if we want a dependency- preserving decomposition…  In the book (3.5)


Download ppt "Lecture 09: Functional Dependencies. Outline Functional dependencies (3.4) Rules about FDs (3.5) Design of a Relational schema (3.6)"

Similar presentations


Ads by Google