240 likes | 491 Views
miniworld. Requirements & collection analysis. refinement. Database Requirements. Conceptual Design. Conceptual Schema ( ER diagram ). DBMS independent. Data Model Mapping. DBMS specific. Conceptual Schema ( Relations ). primary key constraint foreign key constraint.
E N D
miniworld Requirements & collection analysis refinement Database Requirements Conceptual Design Conceptual Schema ( ER diagram ) DBMS independent Data Model Mapping DBMS specific Conceptual Schema ( Relations ) • primary key constraint • foreign key constraint
Conceptual design Schemas ICs Schema Refinement and Normal Forms • Conceptual database design gives us a set of relation schemas and integrity constraints • Given a design, how do we know it is good or not? • A design can be evaluated from various perspectives, our focus is on data redundancy
The Evils of Redundancy • Redundancyis at the root of several problems associated with relational schemas: • redundant storage • Insertion/update/deletion anomalies
Example • Schema • Hourly_Emps (ssn, name, lot, rating, hrly_wages, hrs_worked) • Constraints: • ssnis the primary key • If two tuples have the same value onrating, they have the same value onhrly_wages
Solution: Decomposition • If we break Hourly_Emps into Hourly_Emps2 and Wages, then we don’t have updates, insertion, deletion anomalies. Wages Hourly_Emps2
Decomposition Concerns • Should a relation be decomposed? • If a relation is not in certain form, some problems (e.g., redundancy) will arise, are these problems tolerable? • Aforementioned anomalies • Potential performance loss: Queries over the original relation may required to join the decomposed relations • How to decompose a relation? Two properties must be preserved: • lossless-join: the data in the original relation can be recovered from the smaller relations • dependency-preservation: all constraints on the original relation must still hold by enforcing some constraints on each of the small relations
Functional Dependencies (FDs) • In a relation schema R, a set of attributes X functionally determines a set of attributes Y if and only if whenever two tuples of R agree on X value, they must necessarily agree on the Y value. • XY where r(R) is an instance of R, • XY: Y is functionally dependent on X, or • X uniquely determines Y or • X functionally determines Y, or • X determines Y
Does this data set violate X->Y? Does this data set violate Z->Y? Does this data set violate X->Y? Does this data set violate XY->Z? Does this data set violate Z->X?
An FD is a statement about all allowable relations. • Must be identified based on semantics of application. • Given some allowable instance r1 of R, we can check if it violates some FD f, but we cannot tell if f holds over R! • A primary key constraint is a special case of an FD • The attributes in the key play the role of X, and the set of all attributes in the relation plays the role of Y
Example 1 • Hourly_Emps (ssn, name, lot, rating, hrly_wages, hrs_worked) • Notation: We will denote this relation schema by listing the attributes: SNLRWH • This is really the set of attributes {S,N,L,R,W,H}. • Sometimes, we will refer to all attributes of a relation by using the relation name. (e.g., Hourly_Emps for SNLRWH) • Some FDs on Hourly_Emps: • ssn is the key: SSNLRWH (or {S}{S,N,L,R,W,H}) • rating determines hrly_wages : RW
since name dname ssn lot Employees Works_for Example 2 did budget Departments Additional Constraints: Employees are assigned parking lots based on their department. All employees in the same department is given the same lot. FD: did->lot Works_for(ssn,name,did,since) Department (did,dname,budget,lot);
F {SSN}->{DNAME,DMGRSSN} F {SSN}->{SSN} F {DNUMBER}->{DNAME} Dependency Reasoning A set of dependencies may imply some additional dependencies. EMP_DEPT(ENAME,SSN,BDATE,ADDRESS,DNUMBER,DNAME,DMGRSSN) • F={SSN->{ENAME,BDATE,ADDRESS,DNUMBER}, • DNUMBER->{DNAME,DMGRSSN} } F infers the following additional functional dependencies:
Dependency Reasoning A set of dependencies may imply some additional dependencies. Some important questions Given a set of attributes X, what attributes can be determined by X Given an FD set, what other dependencies are implied Given an FD set F, what is the minimum set of dependencies that is equivalent to F
Armstrong’s Axioms where X, Y, Z are sets of attributes: • Reflexivity:If X Y, then XY. • Augmentation:If XY, then XZ YZ for any Z. • Transitivity:If X Y and YZ, then XZ. Armstrong’s Axioms
PROOFS • Reflexive rule: If X Y, then XY. Let {t1,t2} r(R) such that t1[X]=t2[X] Since Y X, t1[X]=t2[X] t1[Y]=t2[Y] XY.
PROOFS (Cont’d) • Transitive rule: If XY and YZ, then XZ. Let XY and (1) YZ (2) such that t1[X]=t2[X], (3) we have: (1) t1[Y]=t2[Y] (4) (2)&(4) t1[Z]=t2[Z] (5) (3)&(5) XZ
PROOFS (Cont’d) • Augmentation rule: If XY, then XZYZ. Assume that the Augmentation rule is not true. t1[X] = t2[X] (1) t1[Y] = t2[Y] (2) t1[XZ] = t2[XZ] (3) t1[YZ] != t2[YZ] (4) (1)&(3) t1[Z]=t2[Z] (5) (2)&(5) t1[YZ]=t2[YZ] (6) (6) Contradicts (4)
Additional Inference Rules for Functional Dependencies • Union: • If X Y and X Z, then X YZ. • Decomposition: • If XYZ, then XY and XZ. • Pseudotransitive Rule: • If XY and WYZ then WXZ.
PROOFS (Cont’d) • Union rule: If XY and XZ, then XYZ. Given XY and (1) XZ. (2) Applying Augmentation rule on (1), we have XXXY XXY. (3) Applying Augmentation rule on (2), we have XYZY XYYZ . (4) Applying Transitive rule on (3) and (4), we have XYZ.
PROOFS (Cont’d) • Decomposition rule: If XYZ then XY and XZ. Given XYZ. (1) Since Y YZ, reflexive rule gives YZY. (2) Applying Transitive rule on (1) and (2), we have XY. XZ is derived in a similar way.
PROOFS (Cont’d) • Pseudotransitive rule: If XY and WYZ, then WXZ. Given XY (1) and WYZ. (2) Applying Augmentation rule on (1), we have WXWY. (3) Applying Transitive rule on (3)&(2), we have WXZ.
Exercise • Prove or disprove the following inference rules • {WY,XZ} |= {WXY} • {XY,XW,WYZ} |= {XZ} • {XY} |= {XYZ} • {XY, Z Y} |= {XZY} • Prove using inference rules • Disprove by showing a counter example