Functional Dependencies

Slides:



Advertisements
Similar presentations
1 Lecture 7 Design Theory for Relational Databases (part 1) Slides based on
Advertisements

Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 16 Relational Database Design Algorithms and Further Dependencies.
Database Management COP4540, SCS, FIU Functional Dependencies (Chapter 14)
Database Management Systems Chapter 3 The Relational Data Model (II) Instructor: Li Ma Department of Computer Science Texas Southern University, Houston.
Functional Dependencies - Example
CMPT 354, Simon Fraser University, Fall 2008, Martin Ester 227 Database Systems I Design Theory for Relational Databases.
1 The Relational Data Model Functional Dependencies.
Chapter 7: Relational Database Design. ©Silberschatz, Korth and Sudarshan7.2Database System Concepts Chapter 7: Relational Database Design First Normal.
1 Functional Dependencies Meaning of FD’s Keys and Superkeys Inferring FD’s Source: slides by Jeffrey Ullman.
The principal problem that we encounter is redundancy, where a fact is repeated in more than one tuple. Most common cause: attempts to group into one relation.
1 CMSC424, Spring 2005 CMSC424: Database Design Lecture 9.
Cs3431 Normalization. cs3431 Why Normalization? To remove potential redundancy in design Redundancy causes several anomalies: insert, delete and update.
Fall 2001Arthur Keller – CS 1804–1 Schedule Today Oct. 4 (TH) Functional Dependencies and Normalization. u Read Sections Project Part 1 due. Oct.
Chapter 8: Relational Database Design First Normal Form First Normal Form Functional Dependencies Functional Dependencies Decomposition Decomposition Boyce-Codd.
CS143 Review: Normalization Theory Q: Is it a good table design? We can start with an ER diagram or with a large relation that contain a sample of the.
Lecture 09: Functional Dependencies. Outline Functional dependencies (3.4) Rules about FDs (3.5) Design of a Relational schema (3.6)
Computing & Information Sciences Kansas State University Tuesday, 27 Feb 2007CIS 560: Database System Concepts Lecture 18 of 42 Tuesday, 27 February 2007.
Logical Database Design (1 of 3) John Ortiz Lecture 6Logical Database Design (1)2 Introduction  The logical design is a process of refining DB schema.
1 Lecture 6: Schema refinement: Functional dependencies
Functional Dependencies. FarkasCSCE 5202 Reading and Exercises Database Systems- The Complete Book: Chapter 3.1, 3.2, 3.3., 3.4 Following lecture slides.
IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.
Functional Dependencies. Outline Functional dependencies (3.4) Rules about FDs (3.5) Design of a Relational schema (3.6)
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide
© D. Wong Ch. 3 (continued)  Database design problems  Functional Dependency  Keys of relations  Decompositions based on Functional Dependency.
Rensselaer Polytechnic Institute CSCI-4380 – Database Systems David Goldschmidt, Ph.D.
CS 405G: Introduction to Database Systems Instructor: Jinze Liu Fall 2009.
Functional Dependencies CIS 4301 Lecture Notes Lecture 8 - 2/7/2006.
Rensselaer Polytechnic Institute CSCI-4380 – Database Systems David Goldschmidt, Ph.D.
CS542 1 Schema Refinement Chapter 19 (part 1) Functional Dependencies.
CS411 Database Systems Kazuhiro Minami 04: Relational Schema Design.
Databases 1 Sixth lecture. 2 Functional Dependencies X -> A is an assertion about a relation R that whenever two tuples of R agree on all the attributes.
© D. Wong Functional Dependencies (FD)  Given: relation schema R(A1, …, An), and X and Y be subsets of (A1, … An). FD : X  Y means X functionally.
Chapter 8 Relational Database Design. 2 Relational Database Design: Goals n Reduce data redundancy (undesirable replication of data values) n Minimize.
CSC 411/511: DBMS Design Dr. Nan Wang 1 Schema Refinement and Normal Forms Chapter 19.
Formal definition of a key A key is a set of attributes A 1,..., A n such that for any other attribute B: A 1,..., A n  B A minimal key is a set of attributes.
Functional Dependencies and Normalization 1 Instructor: Mohamed Eltabakh Part 2.
Lecture 11: Functional Dependencies
Functional Dependency and Normalization
Advanced Normalization
Design Theory for Relational Databases
CS422 Principles of Database Systems Normalization
Database Management Systems (CS 564)
Functional Dependency
CS422 Principles of Database Systems Normalization
Relational Database Design
3.1 Functional Dependencies
Handout 4 Functional Dependencies
Advanced Normalization
Schema Refinement & Normalization Theory
Lecture 6: Design Theory
Normalization Murali Mani.
Functional Dependencies and Normalization
Functional Dependencies and Normalization
Functional Dependencies and Relational Schema Design
Lecture 09: Functional Dependencies, Database Design
Lecture 07: E/R Diagrams and Functional Dependencies
Normalization cs3431.
CS 405G: Introduction to Database Systems
Instructor: Mohamed Eltabakh
Functional Dependencies
Chapter 19 (part 1) Functional Dependencies
Functional Dependencies
Relational Database Design
CSC 453 Database Systems Lecture
XML, distributed data, replicated data, and Security
Lecture 6: Functional Dependencies
Database.
Chapter 3: Design theory for relational Databases
Lecture 09: Functional Dependencies
Presentation transcript:

Functional Dependencies

Reading and Exercises Database Systems- The Complete Book: Chapter 3.1, 3.2, 3.3., 3.4 Following lecture slides are modified from Jeff Ullman’s slides for Fall 2002 -- Stanford Farkas CSCE 520

Database Design Goal: Anomalies: Represent domain information Avoid anomalies Avoid redundancy Anomalies: Update: not all occurrences of a fact are changed Deletion: valid fact is lost when tuple is deleted Farkas CSCE 520

Functional Dependencies FD: X  A for relation R X functional determines A, i.e., if any two tuples in R agree on attributes X, they must also agree on attribute A. X: set of attributes A: single attribute If t1 and t2 are two tuples of r over R and t1[X]= t2[X] then t1[A]= t2[A] What is the relation between functional dependencies and primary keys? Farkas CSCE 520

Functional Dependency Example Owner(Name, Phone) FD: Name  Phone Dog(Name, Breed, Age, Weight) FD: Name, Breed  Age FD: Name, Breed  Weight Farkas CSCE 520

Example - FD Dog-Kennels(Name,Breed,Age,Weight,Date,Kennel) Pepper G.S. 1 70 01/01/02 White Oak Buddy Mix 4 50 03/04/01 Little Creek 04/17/02 Panka Vizsla 12 40 02/14/02 Functional Dependencies: Name,Breed  Age Name,Breed  Weight Farkas CSCE 520

FD with Multiple Attributes Right side: can be more than 1 attribute – splitting/combining rule E.g., FD: Name, Breed  Age FD: Name, Breed  Weight combine into: FD: Name, Breed  Age,Weight Left side cannot be decomposed! Farkas CSCE 520

FD Equivalence Let S and T denote two sets of FDs. S and T are equivalent if the set of relation instances satisfying S is exactly the same as the set of instances satisfying T. A set of FDs S follows from a set of FDs T if every relation instance that satisfies all FDs in T also satisfies all FDs in S. Two sets of FDs S and T are equivalent if S follows from T and T follows from S. Farkas CSCE 520

Trivial FD Given FD of the form A1,A2,…,AnB1,B2,…,Bk FD is Trivial: if the Bs are subset of As Nontrivial: if at least one of the Bs is not among As Completely nontrivial: if none of the Bs is in As. Farkas CSCE 520

Keys and FD K is a (primary) key for a relation R if K functionally determines all attributes in R 1 does not hold for any proper subset of K Superkey: 1 holds, 2 does not hold Farkas CSCE 520

Example Dog-Kennels(Name,Breed,Age,Weight,Date,Kennel) Name,Breed,Date is a key: K={Name,Breed,Date} functionally determines all other attributes The above does not hold for any proper subset of K What are? {Name,Breed,Kennel} {Name,Breed,Date,Kennel} {Name,Breed,Age} {Name,Breed,Age,Date} Farkas CSCE 520

Where do Keys Come From? Assert a key K, then only FDs are K  A for all attributes A (K is the only key from FDs) Assert FDs and deduce the keys E/R gives FDs from entity set keys and many-one relationships Farkas CSCE 520

E/R and Relational Keys E/R keys: properties of entities Relation keys: properties of tuples Usually: one tuple corresponds to one entity Poor relational design: one entity becomes several tuples Farkas CSCE 520

Closure of Attributes Let A1,A2,…,An be a set of attributes and S a set of FDs. The closure of A1,A2,…,An under S is the set of attributes B such that every relation that satisfies S also satisfies A1,A2,…,An  B. Closure of attributes A1,A2,…,An is denoted as {A1,A2,…,An}+ Farkas CSCE 520

Algorithm – Attribute Closure Let X = A1,A2,…,An Find B1,B2,…,Bk  C such that B1,B2,…,Bk all in X but C is not in X Add C to X Repeat until no more attribute can be added to X X= {A1,A2,…,An}+ Farkas CSCE 520

Closures and Keys {A1,A2,…,An}+ is a set of all attributes of a relation if and only if A1,A2,…,An is a superkey for the relation. Farkas CSCE 520

Projecting FDs Some FD are physical laws E.g., no two courses can meet in the same room at the same time A professor cannot be at two places at the same time. How to determine what FDs hold on a projection of a relation? Farkas CSCE 520

FD on Relation Relation schema design: which FDs hold on relation Given: X1  A1, X2  A2, …, Xn  An whether Y  B must hold on relations satisfying X1  A1, X2  A2, …, Xn  An Example: A  B and B  C, then A C must also hold Farkas CSCE 520

Inference Test Test whether Y  B Assume two tuples agree on attributes Y Use FDs to infer these tuples also agree on other attributes If B is one of the “other” attributes, then Y  B holds. Farkas CSCE 520

Armstrong Axioms Reflexivity Augmentation Transitivity If {A1,A2,…,Am} superset of {B1,B2,…,Bn} then A1,A2,…,Am  B1,B2,…,Bn Augmentation If A1,A2,…,Am  B1,B2,…,Bn then A1,A2,…,Am,C1,…,Ck  B1,B2,…,Bn,C1,…,Ck Transitivity If A1,A2,…,Am  B1,B2,…,Bn and B1,B2,…,Bn  C1,C2,…,Ck then A1,A2,…,Am  C1,C2,…,Ck Farkas CSCE 520

FD Closure Compute the closure of Y, denoted as Y+ Basis: Y+ = Y Induction: look FD, where left side X is subset of Y+ . If FD is X  A then add A to Y+ . Farkas CSCE 520

Finding All FDs Normalization: break a relation schema into two or more schemas Example: R(A,B,C,D) FD: AB C, C D, D  A Decompose into (A,B,C), (A,D) FDs of (ABC): A,B C and C  A Farkas CSCE 520

Basic Idea What FDs hold on a projections: Start with FDs Find all FDs that follow from given ones Restrict to FDs that involve only attributes from a schema Farkas CSCE 520

Algorithm For each X compute X+ Add X  A for all A in X+ - X Drop XY  A if X  A Use FD of projected attributes Farkas CSCE 520

Tricks Do not compute closure of empty set of the set of all attributes If X+ = all attributes, do not compute closure of the superset of X Farkas CSCE 520

Example ABC with A  B, B  C and projection on AC: A+ = ABC, yields A  B and A  C B+ = BC, yields B  C C+ = C, yields nothing BC+ = BC, yields nothing Resulting FDs: AB, AC, BC Projection AC: A  C Farkas CSCE 520