Download presentation
Presentation is loading. Please wait.
Published byMark Bailey Modified over 9 years ago
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)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.