M.P. Johnson, DBMS, Stern/NYU, Spring 20081 C20.0046: Database Management Systems Lecture #4 M.P. Johnson Stern School of Business, NYU Spring, 2008.

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.
Chapter 3 Notes. 3.1 Functional Dependencies A functional dependency is a statement that – two tuples of a relation that agree on some particular set.
Temple University – CIS Dept. CIS616– Principles of Data Management V. Megalooikonomou Functional Dependencies (based on notes by Silberchatz,Korth, and.
Database Management COP4540, SCS, FIU Functional Dependencies (Chapter 14)
CMU SCS Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications Lecture #16: Schema Refinement & Normalization - Functional Dependencies.
603 Database Systems Senior Lecturer: Laurie Webster II, M.S.S.E.,M.S.E.E., M.S.BME, Ph.D., P.E. Lecture 6 A First Course in Database Systems.
Functional Dependencies - Example
Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004.
E/R – ODL – UML CS145 Monday November 26 Sanaz Motahari-Asl.
Functional Dependencies Definition: If two tuples agree on the attributes A, A, … A 12n then they must also agree on the attributes B, B, … B 12m Formally:
1 Introduction to Database Systems CSE 444 Lectures 8 & 9 Database Design April 16 & 18, 2008.
Lossless Decomposition Prof. Sin-Min Lee Department of Computer Science San Jose State University.
1 Lecture 06 The Relational Data Model. 2 Outline Relational Data Model Functional Dependencies FDs in ER Logical Schema Design Reading Chapter 8.
1 Functional Dependency and Normalization Informal design guidelines for relation schemas. Functional dependencies. Normal forms. Normalization.
M.P. Johnson, DBMS, Stern/NYU, Spring C : Database Management Systems Lecture #5 Matthew P. Johnson Stern School of Business, NYU Spring, 2005.
M.P. Johnson, DBMS, Stern/NYU, Spring C : Database Management Systems Lecture #7 Matthew P. Johnson Stern School of Business, NYU Spring,
M.P. Johnson, DBMS, Stern/NYU, Sp20041 C : Database Management Systems Lecture #5 Matthew P. Johnson Stern School of Business, NYU Spring, 2004.
Boyce-Codd NF & Lossless Decomposition Professor Sin-Min Lee.
M.P. Johnson, DBMS, Stern/NYU, Sp20041 C : Database Management Systems Lecture #6 Matthew P. Johnson Stern School of Business, NYU Spring, 2004.
Functional Dependencies CS 186, Spring 2006, Lecture 21 R&G Chapter 19 Science is the knowledge of consequences, and dependence of one fact upon another.
Functional Dependencies and Relational Schema Design.
Chapter 8: Relational Database Design First Normal Form First Normal Form Functional Dependencies Functional Dependencies Decomposition Decomposition Boyce-Codd.
Functional Dependencies Prof. Yin-Fu Huang CSIE, NYUST Chapter 11.
CS 405G: Introduction to Database Systems 16. Functional Dependency.
E/R Diagrams and Functional Dependencies. Modeling Subclasses The world is inherently hierarchical. Some entities are special cases of others We need.
Lecture 08: E/R Diagrams and Functional Dependencies.
Lecture 09: Functional Dependencies. Outline Functional dependencies (3.4) Rules about FDs (3.5) Design of a Relational schema (3.6)
BCNF & Lossless Decomposition Prof. Sin-Min Lee Department of Computer Science.
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.
CMU SCS Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications C. Faloutsos – A. Pavlo Lecture#16: Schema Refinement & Normalization.
IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.
CSC 411/511: DBMS Design Dr. Nan Wang 1 Schema Refinement and Normal Forms Chapter 19.
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.
1 Functional Dependencies. 2 Motivation v E/R  Relational translation problems : –Often discover more “detailed” constraints after translation (upcoming.
Functional Dependencies R&G Chapter 19 Science is the knowledge of consequences, and dependence of one fact upon another. Thomas Hobbes ( )
1 Database Systems Lecture #4 Yan Pan School of Software, SYSU 2011.
CMU SCS Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications Lecture #16: Schema Refinement & Normalization - Functional Dependencies.
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.
1 Lecture 08: E/R Diagrams and Functional Dependencies Friday, January 21, 2005.
CS542 1 Schema Refinement Chapter 19 (part 1) Functional Dependencies.
Functional Dependencies Zaki Malik September 25, 2008.
CS411 Database Systems Kazuhiro Minami 04: Relational Schema Design.
Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke1 Schema Refinement and Normal Forms Chapter 19.
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.
1 Lecture 9: Database Design Wednesday, January 25, 2006.
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.
Lecture 11: Functional Dependencies
Schema Refinement & Normalization Theory
Faloutsos & Pavlo SCS /615 Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications Lecture #16: Schema Refinement & Normalization.
Cse 344 May 16th – Normalization.
Functional Dependencies and Relational Schema Design
Lecture 09: Functional Dependencies, Database Design
Functional Dependencies
Lecture 07: E/R Diagrams and Functional Dependencies
Functional Dependencies
Chapter 19 (part 1) Functional Dependencies
Lecture 08: E/R Diagrams and Functional Dependencies
Lecture 6: Functional Dependencies
Lecture 09: Functional Dependencies
Presentation transcript:

M.P. Johnson, DBMS, Stern/NYU, Spring C : Database Management Systems Lecture #4 M.P. Johnson Stern School of Business, NYU Spring, 2008

M.P. Johnson, DBMS, Stern/NYU, Spring Agenda Last time: relational model This time: 1. Functional dependencies  Keys and superkeys in terms of FDs  Finding keys for relations 2. Extended E/R example 3. Rules for combining FDs Next time: anomalies & normalization Pick groups

M.P. Johnson, DBMS, Stern/NYU, Spring Where are we going, where have we been? Goal: manage large amounts of data effectively  Use a DBMS  must define a schema DBMSs use the relational model  But initial design is easier in E/R  Must design an E/R diagram  Must then convert it to rel. model

M.P. Johnson, DBMS, Stern/NYU, Spring Where are we going, where have we been? At this pt, often find problems – redundancy  How to fix?  Convert the tables to a special “normal” form  How to do this?  First step is: check which FDs there are  The reason we looked at FDs last time  Will have to look at all true FDs of the table  Then well do decompositions

M.P. Johnson, DBMS, Stern/NYU, Spring Next topic: Functional dependencies FDs are constraints  Logically part of the schema  can’t tell from particular relation instances  FD may hold for some instances “accidentally” Finding all FDs is part of DB design  Used in normalization

M.P. Johnson, DBMS, Stern/NYU, Spring Functional dependencies Definition: Notation: Read as: A i functionally determines B j If two tuples agree on the attributes A 1, A 2, …, A n then they must also agree on the attributes B 1, B 2, …, B m A 1, A 2, …, A n  B 1, B 2, …, B m

M.P. Johnson, DBMS, Stern/NYU, Spring Typical Examples of FDs Product  name  price, manufacturer Person  ssn  name, age  father’s/husband’s-name  last-name  zipcode  state  phone  state (notwithstanding inter-state area codes?) Company  name  stockprice, president  symbol  name  name  symbol

M.P. Johnson, DBMS, Stern/NYU, Spring Functional dependencies To check A  B, erase all other columns; for all rows t1, t2 i.e., check if remaining relation is many-one  no “divergences”  i.e., if A  B is a well-defined function  thus, functional dependency BmBm...B1B1 AmAm A1A1 t1t1 t2t2 if t 1, t 2 agree here then t 1, t 2 agree here

M.P. Johnson, DBMS, Stern/NYU, Spring FD example Product(name, category, color, department, price) name  color category  department color, category  price name  color category  department color, category  price Consider these FDs: What do they say?

M.P. Johnson, DBMS, Stern/NYU, Spring FD example FDs as properties: On some instances they hold On others they don’t namecategorycolordepartmentprice GizmoGadgetGreenToys49 TweakerGadgetGreenToys99 Does this instance satisfy all the FDs? name  color category  department color, category  price name  color category  department color, category  price

M.P. Johnson, DBMS, Stern/NYU, Spring FD example namecategorycolordepartmentprice GizmoGadgetGreenToys49 TweakerGadgetBlackToys99 GizmoStationaryGreen Office- supp. 59 What about this one? name  color category  department color, category  price name  color category  department color, category  price

M.P. Johnson, DBMS, Stern/NYU, Spring Q: Is Position  Phone an FD here? A: It is for this instance, but no, presumably not in general Others FDs? EmpID  Name, Phone, Position but Phone  Position Recognizing FDs EmpIDNamePhonePosition E0045Smith1234Clerk E1847John9876Salesrep E1111Smith9876Salesrep E9999Mary1234Lawyer

M.P. Johnson, DBMS, Stern/NYU, Spring Keys of relations {A 1 A 2 A 3 …A n } is a key for relation R if  A 1 A 2 A 3 …A n functionally determine all other atts Usual notation: A 1 A 2 A 3 …A n  B 1 B 2 …B k rels = sets  distinct rows can’t agree on all A i  A 1 A 2 A 3 …A n is minimal No proper subset of A 1 A 2 A 3 …A n functionally determines all other attributes of R Primary key: chosen if there are several possible keys

M.P. Johnson, DBMS, Stern/NYU, Spring Keys example Relation: Student(ssn,Name, Address, DoB, , Credits) Which (/why) of the following are keys?  SSN  Name, Address (on reasonable assumptions)  Name, SSN  , SSN  NB: minimal != smallest

M.P. Johnson, DBMS, Stern/NYU, Spring Superkeys Df: A set of attributes that contains a key Satisfies first condition: determination Might not satisfy the second: minimality  Some superkey attributes may be superfluous  keys are superkeys key are special case of superkey  superkey set is superset of key set name;ssn is a superkey but not a key

M.P. Johnson, DBMS, Stern/NYU, Spring Discovering keys for relations Relation  entity set  Key of relation = (minimized) key of entity set Relation  binary relationship  Many-many: union of keys of both entity sets  Many(M)-one(O): only key of M (why?)  One-one: key of either entity set (but not both!)

M.P. Johnson, DBMS, Stern/NYU, Spring Review: entity sets Key of entity set = key of relation Student(Name, Address, DoB, SSN, , Credits) Student Name Address DoB SSN Credits

M.P. Johnson, DBMS, Stern/NYU, Spring Review: many-many Many-many key: union of both ES keys StudentEnrolls Course SSNCredits CourseID Name Enrolls(SSN,CourseID)

M.P. Johnson, DBMS, Stern/NYU, Spring Review: many-one Key of the many ES but not of the one ES  keys from both would be non-minimal CourseMeetsIn Room CourseIDName RoomNo Capacity MeetsIn(CourseID,RoomNo)

M.P. Johnson, DBMS, Stern/NYU, Spring Review: one-one Keys of both ESs included in relation Key is key of either ES (but not both!) HusbandsMarriedWives SSNName SSN Name Married(HSSN, WSSN) or Married(HSSN, WSSN)

M.P. Johnson, DBMS, Stern/NYU, Spring Review: multiway relships Multiple ways – may not be obvious R:F,G,H  E is many-one  E’s key is included  but not part of key  Recall that relship atts are implicitly many-one CourseEnrolls Student CourseID Name SSN NameSection RoomNo Capacity Enrolls(CourseID,SSN,RoomNo)

M.P. Johnson, DBMS, Stern/NYU, Spring Extended E/R example: Exercise 2.3 Profs have: ssn, name, age, rank, specialty Projs have: proj#, sponsor name (e.g. NSF), start date, end date, budget Grad students have: ssn, name, age, degree program Each proj: managed by one prof Each proj: worked on by one or more profs Each proj: worked on by one or more grad students When grad students work on a proj, a prof must supervise their work. Grad students may have different supervisors for each proj. Depts have: dept#, dept name, main office Profs work in one or more departments, and a percent-worked in each dept Grad students have one major dept in which they work Then convert to relations…

M.P. Johnson, DBMS, Stern/NYU, Spring Extended E/R example: Exercise 2.7 Patients are ID’ed by ssn, and they have names, addresses, and ages Doctors are ID’ed by ssn. For each doctor, record name, specialty, years of experience Each pharm. company is ID’ed by name and has a phone number For each drug, the trade name and foruma are recorded. Each is sold by a given pharm. company, and the trade name ID’s a drug uniquely from the products of that company. If a pharm. company is deleted, you need not keep track of its products any longer. Each pharmacy has: name, address, phone number Every patient has a primary physician. Doctors can have multiple patients. Each pharmacy can sell several drugs and has a price of each. A drug price could vary between pharmacies. Doctors prescribe drugs for patients. A doctor could prescribe multiple drugs for multiple patients, and a patient could obtain prescriptions from multiple doctors. Each prescription has a date and quantity. Assume that if a doctor prescribes the same drug for the same patient multiple times, we only record the last prescription. A pharm. company can contract with several pharmacies, and vice versa. For each contract, store the text and start and end dates. Pharmacies appoint a unique supervisor for each contract. How would this change if each drug had a single price?

M.P. Johnson, DBMS, Stern/NYU, Spring Next topic: Combining FDs If some FDs are satisfied, then others are satisfied too If all these FDs are true: name  color category  department color, category  price name  color category  department color, category  price Then this FD also holds: name, category  price Why?

M.P. Johnson, DBMS, Stern/NYU, Spring Rules for FDs (quickly) Reasoning about FDs: given a set of FDs, infer other FDs – useful  E.g. A  B, B  C  A  C Definitions: for FD-sets S and T  T follows from S if all relation-instances satisfying S also satisfy T.  S and T are equivalent if the sets of relation- instances satisfying S and T are the same.  I.e., S and T are equivalent if S follows from T, and T follows from S.

M.P. Johnson, DBMS, Stern/NYU, Spring Splitting & combining FDs (quickly) Splitting rule: Combining rule: Note: doesn’t apply to the left side Q: Can you split and combine the A’s, too? A 1 A 2 …A n  B 1 B 2 …B m A 1, A 2, …, A n  B 1 A 1, A 2, …, A n  B A 1, A 2, …, A n  B m A 1, A 2, …, A n  B 1 A 1, A 2, …, A n  B A 1, A 2, …, A n  B m Bm...B1Am...A1 t1 t2

M.P. Johnson, DBMS, Stern/NYU, Spring Reflexive rule: trivial FDs (quickly) FD A 1 A 2 …A n  B 1 B 2 …B k may be  Trivial: Bs are a subset of As  Nontrivial: >=1 of the Bs is not among the As  Completely nontrivial: none of the Bs is among the As Trivial elimination rule:  Eliminate common attributes from Bs, to get an equivalent completely nontrivial FD A 1, A 2, …, A n  A i with i in 1..n is a trivial FD A1A1 …AnAn t t’

M.P. Johnson, DBMS, Stern/NYU, Spring Transitive rule (quickly) If and then A 1, A 2, …, A n  B 1, B 2, …, B m B 1, B 2, …, B m  C 1, C 2, …, C p A 1, A 2, …, A n  C 1, C 2, …, C p A1A1 …AmAm B1B1 …BmBm C1C1...CpCp t t’

M.P. Johnson, DBMS, Stern/NYU, Spring Augmentation rule (quickly) If then A 1, A 2, …, A n  B A 1, A 2, …, A n, C  B, C, for any C A1A1 …AmAm B1B1 …BmBm C1C1...CpCp t t’

M.P. Johnson, DBMS, Stern/NYU, Spring Rules summary (quickly) 1. A  B  AC  B (by definition) 2. Separation/Combination 3. Reflexive 4. Augmentation 5. Transitivity Last 3 called Armstrong’s Axioms  Complete: entire closure follows from these  Sound: no other FDs follow from these Don’t need to memorize details…

M.P. Johnson, DBMS, Stern/NYU, Spring Inferring FDs example (quickly) Start from the following FDs: Infer the following FDs: 1. name  color 2. category  department 3. color, category  price 1. name  color 2. category  department 3. color, category  price Inferred FD Which Rule did we apply? 4. name, category  name 5. name, category  color 6. name, category  category 7. name, category  color, category 8. name, category  price Reflexive rule Transitivity(4,1) Reflexive rule combine(5,6) or Aug(1) Transitivity(3,7)

M.P. Johnson, DBMS, Stern/NYU, Spring Problem: infer all FDs Given a set of FDs, infer all possible FDs How to proceed? Try all possible FDs, apply all rules  E.g. R(A, B, C, D): how many FDs are possible? Drop trivial FDs, drop augmented FDs  Still way too many Better: use the Closure Algorithm…

M.P. Johnson, DBMS, Stern/NYU, Spring Closure of a set of Attributes Given a set of attributes A 1, …, A n The closure, {A 1, …, A n } + = {B in Atts: A 1, …, A n  B} Given a set of attributes A 1, …, A n The closure, {A 1, …, A n } + = {B in Atts: A 1, …, A n  B} name  color category  department color, category  price name  color category  department color, category  price Example: Closures: {name} + = {name, color} {name, category} + = {name, category, color, department, price} {color} + = {color}

M.P. Johnson, DBMS, Stern/NYU, Spring Closure Algorithm Start with X={A 1, …, A n }. Repeat: if B 1, …, B n  C is a FD and B 1, …, B n are all in X then add C to X. until X doesn’t change Start with X={A 1, …, A n }. Repeat: if B 1, …, B n  C is a FD and B 1, …, B n are all in X then add C to X. until X doesn’t change {name, category} + = {name, category, color, department, price} name  color category  department color, category  price name  color category  department color, category  price Example:

M.P. Johnson, DBMS, Stern/NYU, Spring Example Compute {A,B} + X = {A, B, } Compute {A, F} + X = {A, F, } R(A,B,C,D,E,F) A, B  C A, D  E B  D A, F  B A, B  C A, D  E B  D A, F  B In class:

M.P. Johnson, DBMS, Stern/NYU, Spring Next time Read ch.19, sections 4-5