170 likes | 413 Views
Chapter 16: Relational Database Design and Further Dependencies. TA: Zhe Jiang zhe@cs.umn.edu. Ref: Elmasri, Navathe, Fundamentals of Database Systems, 6th, Addison Wesley, ISBN-10: 0-13-608620-9. Outline. Big picture & motivation Simple case algorithm (part of 16.3.3) Formal algorithm
E N D
Chapter 16: Relational Database Design and Further Dependencies TA: Zhe Jiang zhe@cs.umn.edu Ref: Elmasri, Navathe, Fundamentals of Database Systems, 6th, Addison Wesley, ISBN-10: 0-13-608620-9.
Outline • Big picture & motivation • Simple case algorithm (part of 16.3.3) • Formal algorithm • Basic concepts (16.1): • General case algorithm (16.3.3)
Big Picture: Database Design Phases ER-Diagram Relational Tables Which choice is good? How to guarantee it? Formal Norm Theory
Motivation We have: • Universal relational schema U(A1,A2, … An). • A set of functional dependencies (FDs) from domain knowledge. Question: How do we decompose U into sub-relations, so as to satisfy 3NF?
Simple Case Decomposition Algorithm • Motivation: • Decompose universal relational schema into sub relations which satisfy 3NF • Properties: • Preserve dependencies (nonlossy design) • Non-additive join property (no spurious tuples) • Resulting relational schemas are in 3NF • Problem Definition: • Input: Universal Relation R and a set of functional dependencies F on the attributes of R • Output: Sub-relations, FDs. • Constraint: the three properties above
Simple Case Decomposition Algorithm • Suppose the FD set given is already “good”minimal cover (defined later) • Approach: • For each LHS X in F, create a relation schemain D {X U {A1} U {A2} … U {Ak} }.where XAi only dependency with X as LHS. • If none of the relation schemas in D contains a key of R, create one relation with key. (How? Introduce later) • Eliminate redundant relations.
Simple Case Decomposition Algorithm • Exercise: • Universal relation • FD: {PLC, LCAP, AC} • Q: Does it satisfy 1NF, 2NF, 3NF? • Q: How to decompose the relation to satisfy 3NF? • Solution: • R1(P,L,C); R2(L,C,A,P); R3(A,C) • Already contains key. • Remove redundant relations R1 and R3, final answer is R2(L,C,A,P).
General Case Decomposition Algorithm • New info: Transform the given FD set into minimal cover • New info: If no key exists, find key of U, then create a relation contain key • We will introduce some basic concepts, then formal algorithm
Basic Concept • Inference rules: One FD could infer another • trivial: IR1: IR1 (reflexive rule) • If X Y, then X Y. • non-trivial: IR2-IR4 • {XY} |= XZYZ • {XY, YZ} |= XZ • {XYZ} |=XY • Closure of set of dependencies • Closure of F: F+, set of all FDs could be inferred. • Use IR1 to IR3;
Basic Concepts • Closure of left-hand-side under dependency set Algorithm 16.1 • Start: X+={X} • Grow X+ with new attributes determined by elements in X+ • Repeat 2 until can’t grow any more. Exercise: Given: F={XYZ, XW, WU, YV}, U(X,Y,Z,W,U,V) Find: X+ ?
Basic Concepts • Equivalence of functional dependencies sets • Definition • Cover: F covers E if F+ contains E. • Equivalent FD sets: • Algorithm • Check if all left-hand-sides’ closures are same • Minimal Cover of dependency set F • definition: Can’t find subset that is equivalent to F
Basic Concept • Minimal Cover of dependency set F • break down right-hand-side, X{A1,A2,…An} to XA1, XA2, …XAn • Try reduce size of LHS X in F, e.g. changing X into {X-B} still equivalent to F? • Try reduce unnecessary FD in F, e.g. remove XA in F, if result still equivalent to F. • Example: • F={PLCA, LCAP, AC} • What is “minimal cover” of F?
Basic Concepts • Algorithm to find key of R&F • Start with K=R. • Find A in R such that (K-A)+ contain all attributes. • Repeat until size of K is as small as possible • Example: • U(Emp_ssn, Pno, Esal, Ephone, Dno, Pname, Plocation) • F={Emp_ssnEsal, Ephone, Dno; PnoPname, plocation}; • What is the key?
Decomposition Algorithm: Exercise FD3 FD1: Property_id Lot#, County, Area FD2: Lot#, County Area, Property_id FD3: AreaCounty Simpler Version: F={PLCA, LCAP, AC} • What is the minimal cover G? • Decompose G
Decomposition Algorithm Example • Simpler Version: • F={PLCA, LCAP, AC} • First Case: • Minimal cover GX: • F: {PL, PC, PA, LCA, LCP,AC} • Minimal cover GX: {PLC, LCAP, AC} • Design X: • 3. R1(P,L,C), R2(L,C,A,P), and R3(A,C) • 4. R2(L,C,A,P)
Decomposition Algorithm Example • Simpler Version: • F={PLCA, LCAP, AC} • Second Case: • Minimal cover GX: • F: {PL, PC, PA, LCA, LCP,AC} • Minimal cover GX: {PLA, LCP, AC} • Design Y: • 3. S1(P,A,L), S2(L,C,P), and S3(A,C) • 4. No redundant relations.
Exercise • Given: • Universal relation U(A,B,C,D,E,F,G,H,I,J) • Functional dependencies F={ {A,B}{C}, {B,D}{E,F}, {A,D}{G,H}, {A}{I}, {H}{J} }. • Decompose it into 3NF?