Temple University – CIS Dept. CIS331– Principles of Database Systems

Slides:



Advertisements
Similar presentations
Announcements Read 6.1 – 6.3 for Wednesday Project Step 3, due now Homework 5, due Friday 10/22 Project Step 4, due Monday Research paper –List of sources.
Advertisements

Manipulating Functional Dependencies Zaki Malik September 30, 2008.
CS 440 Database Management Systems Lecture 4: Constraints, Schema Design.
Temple University – CIS Dept. CIS616– Principles of Data Management V. Megalooikonomou Functional Dependencies (based on notes by Silberchatz,Korth, and.
Carnegie Mellon Carnegie Mellon Univ. Dept. of Computer Science Database Applications C. Faloutsos Integrity Constraints.
CMU SCS Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications Lecture #16: Schema Refinement & Normalization - Functional Dependencies.
©Silberschatz, Korth and Sudarshan Relational Database Design First Normal Form Pitfalls in Relational Database Design Functional Dependencies Decomposition.
Chapter 7: Relational Database Design. ©Silberschatz, Korth and Sudarshan7.2Database System Concepts Chapter 7: Relational Database Design First Normal.
Chapter 7: Relational Database Design. ©Silberschatz, Korth and Sudarshan7.2Database System Concepts Chapter 7: Relational Database Design First Normal.
CMSC424: Database Design Instructor: Amol Deshpande
1 CMSC424, Spring 2005 CMSC424: Database Design Lecture 9.
Chapter 8: Relational Database Design First Normal Form First Normal Form Functional Dependencies Functional Dependencies Decomposition Decomposition Boyce-Codd.
©Silberschatz, Korth and Sudarshan7.1Database System Concepts Chapter 7: Relational Database Design First Normal Form Pitfalls in Relational Database Design.
Computing & Information Sciences Kansas State University Monday, 13 Oct 2008CIS 560: Database System Concepts Lecture 18 of 42 Monday, 13 October 2008.
Chapter 7: Relational Database Design. 7.2Unite International CollegeDatabase Management Systems Chapter 7: Relational Database Design Features of Good.
Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 7: Relational.
Functional Dependencies An example: loan-info= Observe: tuples with the same value for lno will always have the same value for amt We write: lno  amt.
BCNF & Lossless Decomposition Prof. Sin-Min Lee Department of Computer Science.
Computing & Information Sciences Kansas State University Tuesday, 27 Feb 2007CIS 560: Database System Concepts Lecture 18 of 42 Tuesday, 27 February 2007.
Ihr Logo Fundamentals of Database Systems Fourth Edition El Masri & Navathe Chapter 10 Functional Dependencies and Normalization for Relational Databases.
Ihr Logo Fundamentals of Database Systems Fourth Edition El Masri & Navathe Chapter 10 Functional Dependencies and Normalization for Relational Databases.
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
CMU SCS Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications C. Faloutsos – A. Pavlo Lecture#16: Schema Refinement & Normalization.
1 Dept. of CIS, Temple Univ. CIS616/661 – Principles of Data Management V. Megalooikonomou Integrity Constraints (based on slides by C. Faloutsos at CMU)
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide
Temple University – CIS Dept. CIS331– Principles of Database Systems V. Megalooikonomou Database Design and Normalization (based on notes by Silberchatz,Korth,
CMU SCS Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications Lecture #16: Schema Refinement & Normalization - Functional Dependencies.
Carnegie Mellon Carnegie Mellon Univ. Dept. of Computer Science Database Applications C. Faloutsos Database design and normalization.
Chapter 8 Relational Database Design. 2 Relational Database Design: Goals n Reduce data redundancy (undesirable replication of data values) n Minimize.
1 Dept. of CIS, Temple Univ. CIS661 – Principles of Data Management V. Megalooikonomou Database design and normalization (based on slides by C. Faloutsos.
Computing & Information Sciences Kansas State University Friday, 03 Oct 2007CIS 560: Database System Concepts Lecture 16 of 42 Wednesday, 03 October 2007.
©Silberschatz, Korth and Sudarshan6.1Database System Concepts Chapter 6: Integrity Constraints Domain Constraints Referential Integrity Assertions Triggers.
Normalization Database Management Systems, 3rd ed., Ramakrishnan and Gehrke, Chapter 19.
CS422 Principles of Database Systems Normalization
Schedule Today: Next After that Normal Forms. Section 3.6.
Database Management Systems (CS 564)
Functional Dependency
Relational Database Design
Module 5: Overview of Database Design -- Normalization
CS422 Principles of Database Systems Normalization
Relational Database Design by Dr. S. Sridhar, Ph. D
Chapter 7: Relational Database Design
Relational Database Design
Relational Database Design
Chapter 8: Relational Database Design
Schema Refinement & Normalization Theory
Chapter 7: Relational Database Design
Functional Dependencies
Functional Dependencies and Normalization for Relational Databases
Faloutsos & Pavlo SCS /615 Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications Lecture #16: Schema Refinement & Normalization.
Module 9: Relational Database Design
Lecture #17: Schema Refinement & Normalization - Normal Forms
Functional Dependencies and Normalization
Functional Dependencies
Normal Form: 4 & 5.
CS 405G: Introduction to Database Systems
Chapter 7: Relational Database Design
Instructor: Mohamed Eltabakh
Functional Dependencies
Chapter 19 (part 1) Functional Dependencies
Relational Database Design
Terminology Product Attribute names Name Price Category Manufacturer
Relational Database Theory
CSC 453 Database Systems Lecture
Asst.Prof.Dr.İlker Kocabaş UBİ502 at
Chapter 7: Relational Database Design
Lecture 6: Functional Dependencies
Chapter 7b: Normalization
Presentation transcript:

Temple University – CIS Dept. CIS331– Principles of Database Systems V. Megalooikonomou Functional Dependencies (based on notes by Silberchatz,Korth, and Sudarshan and notes by C. Faloutsos at CMU)

General Overview Formal query languages Commercial query languages rel algebra and calculi Commercial query languages SQL QBE, (QUEL) Integrity constraints Functional Dependencies Normalization - ‘good’ DB design

Overview Domain; Ref. Integrity constraints Assertions and Triggers Security Functional dependencies why definition Armstrong’s “axioms” closure and cover

Functional dependencies motivation: ‘good’ tables takes1 (ssn, c-id, grade, name, address) ‘good’ or ‘bad’?

Functional dependencies takes1 (ssn, c-id, grade, name, address)

Functional dependencies ‘Bad’ - why?

Functional Dependencies Redundancy space inconsistencies insertion/deletion anomalies (later…) What caused the problem?

Functional dependencies … ‘name’ depends on ‘ssn’ define ‘depends’

Functional dependencies Definition: ‘a’ functionally determines ‘b’

Functional dependencies Informally: ‘if you know ‘a’, there is only one ‘b’ to match’

Functional dependencies formally: if two tuples agree on the ‘X’ attribute, they *must* agree on the ‘Y’ attribute, too (e.g., if ssn is the same, so should address) … a functional dependency is a generalization of the notion of a key

Functional dependencies ‘X’, ‘Y’ can be sets of attributes other examples??

Functional dependencies ssn -> name, address ssn, c-id -> grade

Functional dependencies K is a superkey for relation R iff K -> R K is a candidate key for relation R iff: K -> R for no a  K, a -> R

Functional dependencies Closure of a set of FD: all implied FDs – e.g.: ssn -> name, address ssn, c-id -> grade imply ssn, c-id -> grade, name, address ssn, c-id -> ssn

FDs - Armstrong’s axioms Closure of a set of FD: all implied FDs – e.g.: ssn -> name, address ssn, c-id -> grade how to find all the implied ones, systematically?

FDs - Armstrong’s axioms “Armstrong’s axioms” guarantee soundness and completeness: Reflexivity: e.g., ssn, name -> ssn Augmentation e.g., ssn->name then ssn,grade-> ssn,grade

FDs - Armstrong’s axioms Transitivity ssn->address address-> county-tax-rate THEN: ssn-> county-tax-rate

FDs - Armstrong’s axioms Reflexivity: Augmentation: Transitivity: ‘sound’ and ‘complete’

FDs – finding the closure F+ F+ = F repeat for each functional dependency f in F+ apply reflexivity and augmentation rules on f add the resulting functional dependencies to F+ for each pair of functional dependencies f1and f2 in F+ if f1 and f2 can be combined using transitivity then add the resulting functional dependency to F+ until F+ does not change any further We can further simplify manual computation of F+ by using the following additional rules 

FDs - Armstrong’s axioms Additional rules: Union Decomposition Pseudo-transitivity

FDs - Armstrong’s axioms Prove ‘Union’ from the three axioms:

FDs - Armstrong’s axioms Prove ‘Union’ from the three axioms:

FDs - Armstrong’s axioms Prove Pseudo-transitivity:

FDs - Armstrong’s axioms Prove Decomposition

}F FDs - Closure F+ Given a set F of FD (on a schema) F+ is the set of all implied FD. E.g., takes(ssn, c-id, grade, name, address) ssn, c-id -> grade ssn-> name, address }F

FDs - Closure F+ ssn, c-id -> grade ssn-> name, address ssn-> ssn ssn, c-id-> address c-id, address-> c-id ... F+

FDs - Closure F+ R=(A,B,C,G,H,I) F= { A->B A->C CG->H CG->I B->H} Some members of F+: A->H AG->I CG->HI

}F FDs - Closure A+ Given a set F of FD (on a schema) A+ is the set of all attributes determined by A: takes(ssn, c-id, grade, name, address) ssn, c-id -> grade ssn-> name, address {ssn}+ =?? }F

}F FDs - Closure A+ takes(ssn, c-id, grade, name, address) ssn-> name, address {ssn}+ ={ssn, name, address } }F

}F FDs - Closure A+ takes(ssn, c-id, grade, name, address) ssn-> name, address {c-id}+ = ?? }F

}F FDs - Closure A+ takes(ssn, c-id, grade, name, address) ssn-> name, address {c-id, ssn}+ = ?? }F

FDs - Closure A+ if A+ = {all attributes of table} then ‘A’ is a candidate key

FDs - Closure A+ Algorithm to compute a+, the closure of a under F result := a; while (changes to result) do for each    in F do begin if   result then result := result   end

FDs - Closure A+ (example) R = (A, B, C, G, H, I) F = {A  B, A  C, CG  H, CG  I, B  H} (AG)+ 1. result = AG 2. result = ABCG (A  C and A  B) 3. result = ABCGH (CG  H and CG  AGBC) 4. result = ABCGHI (CG  I and CG  AGBCH) Is AG a candidate key? Is AG a super key? Does AG  R? Is any subset of AG a superkey? Does A+  R? Does G+  R?

FDs - A+ closure Diagrams AB->C (1) A->BC (2) B->C (3)

FDs - ‘canonical cover’ Fc Given a set F of FD (on a schema) Fc is a minimal set of equivalent FD. E.g., takes(ssn, c-id, grade, name, address) ssn, c-id -> grade ssn-> name, address ssn,name-> name, address ssn, c-id-> grade, name F

FDs - ‘canonical cover’ Fc ssn, c-id -> grade ssn-> name, address ssn,name-> name, address ssn, c-id-> grade, name Fc F

FDs - ‘canonical cover’ Fc why do we need it? define it properly compute it efficiently

FDs - ‘canonical cover’ Fc why do we need it? easier to compute candidate keys define it properly compute it efficiently

FDs - ‘canonical cover’ Fc define it properly - three properties every FD a->b has no extraneous attributes on the RHS same for the LHS all LHS parts are unique

FDs - ‘canonical cover’ Fc ‘extraneous’ attribute: if the closure is the same, before and after its elimination or if F-before implies F-after and vice-versa

FDs - ‘canonical cover’ Fc ssn, c-id -> grade ssn-> name, address ssn,name-> name, address ssn, c-id-> grade, name F

FDs - ‘canonical cover’ Fc Algorithm: examine each FD; drop extraneous LHS or RHS attributes merge FDs with same LHS repeat until no change

FDs - ‘canonical cover’ Fc Trace algo for AB->C (1) A->BC (2) B->C (3) A->B (4)

FDs - ‘canonical cover’ Fc Trace algo for AB->C (1) A->BC (2) B->C (3) A->B (4) (4) and (2) merge: AB->C (1) A->BC (2) B->C (3)

FDs - ‘canonical cover’ Fc AB->C (1) A->BC (2) B->C (3) in (2): ‘C’ is extr. AB->C (1) A->B (2’) B->C (3)

FDs - ‘canonical cover’ Fc AB->C (1) A->B (2’) B->C (3) in (1): ‘A’ is extr. B->C (1’) A->B (2’) B->C (3)

FDs - ‘canonical cover’ Fc B->C (1’) A->B (2’) B->C (3) (1’) and (3) merge A->B (2’) B->C (3) nothing is extraneous: ‘canonical cover’

FDs - ‘canonical cover’ Fc BEFORE AB->C (1) A->BC (2) B->C (3) A->B (4) AFTER A->B (2’) B->C (3)

Overview - conclusions Domain; Ref. Integrity constraints Assertions and Triggers Functional dependencies why definition Armstrong’s “axioms” closure and cover