SlideServe
Menu
Préférences
© SlideServe · v2026

Functional Dependencies, Normalization

rogerwilson avatar
32 diapositives · 371 Views · Jan 02, 2020

Learn about functional dependencies and normalization in database design, including keys, redundancy, anomalies, and the 3NF. Fix broken database designs using these principles.

Functional Dependencies, Normalization - slide 1
01 / 32Functional Dependencies, Normalization
1 / 17

Télécharger la présentation

Functional Dependencies, Normalization
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Functional Dependencies,Normalization Rose-Hulman Institute of Technology Curt Clifton

  2. Or…

  3. Fixing Broken Database Designs This material will almost certainly appear on Exam II next week.

  4. Outline • Functional Dependencies • Keys Revisited • Redundancy and Anomalies • Normalization

  5. Functional Dependencies (FD) • Let X be a set of attributes of a relation R • Let A be a single attribute of R • X  A holds for R if: • whenever two tuples of R agree on all the attributes of X, • then they must also agree on the attribute A. • We say X “uniquely determines” A in R

  6. Example • Customer(Name, Addr, SodaLiked, Manf, FavSoda), with name identifying a unique person • Lots of redundancy here…

  7. FDs from Data • Does Name  Addr?

  8. FDs from Data • Does Name  Addr? • Yes, since we assumed unique names

  9. FDs from Data • Does Name  FavSoda?

  10. FDs from Data • Does Name  FavSoda? • Yes, we want just one favorite per person

  11. FDs from Data • Does SodaLiked  Manf?

  12. FDs from Data • Does SodaLiked  Manf? • Yes, since each soda has just one manf.

  13. FDs from Data • Does FavSoda  Name?

  14. FDs from Data • Does FavSoda  Name? • No, two people might have the same favorite

  15. FDs from ER Diagrams • From entity sets • (Key of entity set)  other attributes of entity set • From many-one relationship • (Key of “many” set)  attributes of “one” set

  16. Drawing FDs • Use arrows to indicate FDs on schemas: Customer(Name, Addr, SodaLiked, Manf, FavSoda)

  17. Notation Shorthand • Technically FDs go from sets to single attributes • { Name }  Addr • { Name }  FavSoda • Often just combine to write: • Name  Addr, FavSoda • Usually omit set braces on left side also: • Restaurant, Soda  Price

  18. Keys Revisited • Let K be a set of attributes of a relation R • K is a super key for R if: • For all attributes A in R, K A • K is a key for R if: • No proper subset of K is a super key for R • An attribute B is a prime attribute of R if: • B is an element of some key of R

  19. Example • What is the key here? • What are the prime attributes? Customer(Name, Addr, SodaLiked, Manf, FavSoda)

  20. Two Ways to Find Keys • Guess a superkey K: • Show that KA for all attributes A • Show that no subset of K is a superkey • Find all functional dependencies • Check all possible keys

  21. Why Talk About FDs? • Let us formally identify redundancy • Tell us how to fix it!

  22. Redundancy Leads to Anomalies • Update anomaly: one occurrence of a fact is changed, but not all occurrences • Deletion anomaly: valid fact is lost when a tuple is deleted

  23. Example Redundant with first row since Name  Addr, FavSoda Redundant with first row since SodaLiked  Manf

  24. Normalization • Using functional dependencies to eliminate redundancy • An extremely powerful technique

  25. Third Normal Form • A relation R is in Third Normal Form (3NF) if whenever X A is a nontrivial functional dependency that holds in R, then either: • X is a superkey for R, or • A is a prime attribute of R

  26. Normalization Algorithm • To normalize a relation R: • Find the functional dependencies for R • Check that whether each FD satisfies 3NF • If so, we’re done and R is normalized • Otherwise let X A be an FD that violates 3NF • Find the closure of X in R, denoted X+ • Split R into new relations (R - X+ + X) and X+ • Repeat algorithm for each new relation

  27. Example: Grades Relation • Grade(Term, Yr, C#, Sec#, IName, SName, SAddr, S#, SSSN, Gr)

  28. Step 1: Find the FDs

  29. Step 2: Check for 3NF Violations • A relation R is in Third Normal Form (3NF) if whenever X A is a nontrivial functional dependency that holds in R, then either: • X is a superkey for R, or • A is a prime attribute of R

  30. Step 3: Pick a Violating FD, Find Closure • For XA the closure of X, denoted X+, is: • The set of all attributes that can be reached from any subset of X by following any FDs • Or, just follow the arrows

  31. Step 4: Split R into Two Relations R1 R-X+ X X+-X R2 R

  32. Repeat for the New Relations • Find FDs • Check for 3NF violations • …