METU Department of Computer Eng Ceng 302 Introduction to DBMS Relational Database Design Algorithms by Pinar Senkul resources: mostly froom Elmasri, Navathe.

Slides:



Advertisements
Similar presentations
Schema Refinement: Normal Forms
Advertisements

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 16 Relational Database Design Algorithms and Further Dependencies.
Lossless-join Jan. 2012Yangjun Chen ACS Outline: Lossless-join Chapter 15 – 3rd ed. (Chap. 15 – 4 th, 5 th ed.; Chap. 16, 6 th ed.) Basic definition.
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.
Logical Database Design (3 of 3) John Ortiz. Lecture 7Logical Database Design (2)2 Normalization  If a relation is not in BCNF or 3NF, we refine it by.
Schema Refinement and Normal Forms Given a design, how do we know it is good or not? What is the best design? Can a bad design be transformed into a good.
METU Department of Computer Eng Ceng 302 Introduction to DBMS Further Dependencies by Pinar Senkul resources: mostly froom Elmasri, Navathe and other books.
1 CS 430 Database Theory Winter 2005 Lecture 9: Fourth and Fifth Normal Forms.
1 Design Theory. 2 Minimal Sets of Dependancies A set of dependencies is minimal if: 1.Every right side is a single attribute 2.For no X  A in F and.
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.
 1 CS 728 Advanced Database Systems Chapter 15 Database Design Theory: Normalization Algorithms.
Murali Mani Normalization. Murali Mani What and Why Normalization? To remove potential redundancy in design Redundancy causes several anomalies: insert,
Copyright © 2004 Pearson Education, Inc.. Chapter 10 Functional Dependencies and Normalization for Relational Databases.
Copyright © 2004 Pearson Education, Inc.. Chapter 11 Relational Database Design Algorithms and Further Dependencies.
 10.1 CS 728 Advanced Database Systems Chapter 11 Relational Database Design Algorithms and Further Dependencies.
Normal Form Design addendum by C. Zaniolo. ©Silberschatz, Korth and Sudarshan7.2Database System Concepts Normal Form Design Compute the canonical cover.
1 Normalization Chapter What it’s all about Given a relation, R, and a set of functional dependencies, F, on R. Assume that R is not in a desirable.
METU Department of Computer Eng Ceng 302 Introduction to DBMS Functional Dependencies and Normalization for Relational Databases by Pinar Senkul resources:
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide
1 Functional Dependency and Normalization Informal design guidelines for relation schemas. Functional dependencies. Normal forms. Normalization.
Cs3431 Normalization Part II. cs3431 Attribute Closure : Example Consider R (A, B, C, D, E) with FDs A  B, B  C, CD  E Does A  E hold ? (Is A  E.
Chapter 11 Relational Database Design Algorithms and Further Dependencies Copyright © 2004 Ramez Elmasri and Shamkant Navathe.
Normalisation Example CS2312. Normalisation Example BEER_DATABASE Additional Notes: Warehouses are shared by breweries. Each beer is unique to the brewer.
©Silberschatz, Korth and Sudarshan7.1Database System Concepts Chapter 7: Relational Database Design First Normal Form Pitfalls in Relational Database Design.
Chapter 10 Functional Dependencies and Normalization for Relational Databases.
Chapter 10 Functional Dependencies and Normalization for Relational Databases Copyright © 2004 Pearson Education, Inc.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 10 Functional Dependencies and Normalization for Relational Databases.
Database Systems Normal Forms. Decomposition Suppose we have a relation R[U] with a schema U={A 1,…,A n } – A decomposition of U is a set of schemas.
Chapter 8: Relational Database Design First Normal Form First Normal Form Functional Dependencies Functional Dependencies Decomposition Decomposition Boyce-Codd.
Announcements Read 5.8 – 5.13 for Monday Project Step 3, due Monday 10/18 Homework 4, due Friday 10/15 – by (or turn in Monday in class)
King Saud University College of Computer & Information Sciences Computer Science Department CS 380 Introduction to Database Systems Functional Dependencies.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Normalization for Relational Databases.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide
Topic 10 Functional Dependencies and Normalization for Relational Databases Faculty of Information Science and Technology Mahanakorn University of Technology.
Instructor: Churee Techawut Functional Dependencies and Normalization for Relational Databases Chapter 4 CS (204)321 Database System I.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide DESIGNING A SET OF RELATIONS (2) Goals: Lossless join property (a must). Dependency.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Chapter 4 Normalization.
METU Department of Computer Eng Ceng 302 Introduction to DBMS The Relational Algebra by Pinar Senkul resources: mostly froom Elmasri, Navathe and other.
Chapter 10 Functional Dependencies and Normalization for Relational Databases Copyright © 2004 Pearson Education, Inc.
Chapter 10 Functional Dependencies and Normalization for Relational Databases Copyright © 2004 Pearson Education, Inc.
Chapter 10 Functional Dependencies and Normalization for Relational Databases Copyright © 2004 Pearson Education, Inc.
Functional Dependencies and Normalization for Relational Databases
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Chapter 11 Relational Database Design Algorithms and Further Dependencies.
Relational Database Design Algorithms and Further Dependencies.
Chapter Functional Dependencies and Normalization for Relational Databases.
Chapter 11: Relational Database Design Algorithms and Further Dependencies Chapter 11: Relational Database Design Algorithms and Further Dependencies 1.
Chapter 6 The Relational Algebra Copyright © 2004 Ramez Elmasri and Shamkant Navathe.
Chapter 7 Functional Dependencies Copyright © 2004 Pearson Education, Inc.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide
Relational Database Design Algorithms and Further Dependencies.
Chapter 8 Relational Database Design. 2 Relational Database Design: Goals n Reduce data redundancy (undesirable replication of data values) n Minimize.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide
Chapter 10 Functional Dependencies and Normalization for Relational Databases Copyright © 2004 Pearson Education, Inc.
Copyright © 2016 Ramez Elmasri and Shamkant B. Navathe.
Chapter 14 Functional Dependencies and Normalization Informal Design Guidelines for Relational Databases –Semantics of the Relation Attributes –Redundant.
10/3/2017.
Relational Database Design Algorithms and Further Dependencies
Functional Dependency and Normalization
Chapter 15 Relational Design Algorithms and Further Dependencies
Functional Dependencies and Normalization for Relational Databases
CS 480: Database Systems Lecture 22 March 6, 2013.
11/12/2018.
Normalization Murali Mani.
Outline: Normalization
Relational Database Design Algorithms and Further Dependencies
Relational Database Design
Chapter 7a: Overview of Database Design -- Normalization
Presentation transcript:

METU Department of Computer Eng Ceng 302 Introduction to DBMS Relational Database Design Algorithms by Pinar Senkul resources: mostly froom Elmasri, Navathe and other books

Outline Designing a Set of Relations Properties of Relational Decompositions Algorithms for Relational Database Schema

DESIGNING A SET OF RELATIONS Goals: Lossless join property (a must). Dependency preservation property.

Properties of Relational Decompositions Universal Relation Schema: a relation schema R={A 1, A 2, …, A n } that includes all the attributes of the database. Universal relation assumption: every attribute name is unique. Decomposition: The process of decomposing the universal relation schema R into a set of relation schemas D = {R 1,R 2, …, R m } that will become the relational database schema by using the functional dependencies.

Properties of Relational Decompositions Attribute preservation condition: Each attribute in R will appear in at least one relation schema R i in the decomposition so that no attributes are “lost”. Another goal of decomposition is to have each individual relation R i in the decomposition D be in BCNF or 3NF. Additional properties of decomposition are needed to prevent from generating spurious tuples

Properties of Relational Decompositions Dependency Preservation Property of a Decomposition : Definition: Given a set of dependencies F on R, the projection of F on R i, denoted by  Ri (F) where R i is a subset of R, is the set of dependencies X  Y in F + such that the attributes in X  Y are all contained in R i. Hence, the projection of F on each relation schema R i in the decomposition D is the set of functional dependencies in F +, the closure of F, such that all their left- and right-hand-side attributes are in R i.

Properties of Relational Decompositions Dependency Preservation Property of a Decomposition (cont.): Dependency Preservation Property: a decomposition D = {R 1, R 2,..., R m } of R is dependency- preserving with respect to F if the union of the projections of F on each R i in D is equivalent to F; that is, ((  R1 (F))  (  Rm (F))) + = F + Claim 1: It is always possible to find a dependency- preserving decomposition D with respect to F such that each relation R i in D is in 3NF.

Properties of Relational Decompositions Lossless (Non-additive) Join Property of a Decomposition: Definition: Lossless join property: a decomposition D = {R 1, R 2,..., R m } of R has the lossless (nonadditive) join property with respect to the set of dependencies F on R if, for every relation state r of R that satisfies F, the following holds, where * is the natural join of all the relations in D: * (  R1 (r),...,  Rm (r)) = r Note: The word loss in lossless refers to loss of information, not to loss of tuples. In fact, for “loss of information” a better term is “addition of spurious information”

Properties of Relational Decompositions Testing Binary Decompositions for Lossless Join Property: Binary Decomposition: decomposition of a relation R into two relations. PROPERTY (lossless join test for binary decompositions): A decomposition D = {R 1, R 2 } of R has the lossless join property with respect to a set of functional dependencies F on R if and only if either The f.d. ((R 1 ∩ R 2 )  (R 1 - R 2 )) is in F +, or The f.d. ((R 1 ∩ R 2 )  (R 2 - R 1 )) is in F +.

Properties of Relational Decompositions Lossless (Non-additive) Join Property of a Decomposition (cont.): Algorithm: Testing for Lossless Join Property Input: A universal relation R, a decomposition D = {R 1, R 2,..., R m } of R, and a set F of functional dependencies. 1. Create an initial matrix S with one row i for each relation R i in D, and one column j for each attribute A j in R. 2. Set S(i,j):=b ij for all matrix entries. (* each b ij is a distinct symbol associated with indices (i,j) *). 3. For each row i representing relation schema R i {for each column j representing attribute A j {if (relation R i includes attribute A j ) then set S(i,j):= a j ;};}; (* each a j is a distinct symbol associated with index (j) *)

Properties of Relational Decompositions Lossless (Non-additive) Join Property of a Decomposition (cont.): Algorithm : Testing for Lossless Join Property (cont.) 4. Repeat the following loop until a complete loop execution results in no changes to S {for each functional dependency X  Y in F {for all rows in S which have the same symbols in the columns corresponding to attributes in X {make the symbols in each column that correspond to an attribute in Y be the same in all these rows as follows: if any of the rows has an “a” symbol for the column, set the other rows to that same “a” symbol in the column. If no “a” symbol exists for the attribute in any of the rows, choose one of the “b” symbols that appear in one of the rows for the attribute and set the other rows to that same “b” symbol in the column ;};};}; 5. If a row is made up entirely of “a” symbols, then the decomposition has the lossless join property; otherwise it does not.

Properties of Relational Decompositions Lossless (nonadditive) join test for n-ary decompositions. (a) Case 1: Decomposition of EMP_PROJ into EMP_PROJ1 and EMP_LOCS fails test. (b) A decomposition of EMP_PROJ that has the lossless join property.

Properties of Relational Decompositions Lossless (nonadditive) join test for n-ary decompositions. (c) Case 2: Decomposition of EMP_PROJ into EMP, PROJECT, and WORKS_ON satisfies test.

Properties of Relational Decompositions Successive Lossless Join Decomposition: Claim 2 (Preservation of non-additivity in successive decompositions): If a decomposition D = {R 1, R 2,..., R m } of R has the lossless (non-additive) join property with respect to a set of functional dependencies F on R, and if a decomposition D i = {Q 1, Q 2,..., Q k } of R i has the lossless (non-additive) join property with respect to the projection of F on R i, then the decomposition D 2 = {R 1, R 2,..., R i-1, Q 1, Q 2,..., Q k, R i+1,..., R m } of R has the non-additive join property with respect to F.

Algorithms for Relational Database Schema Design Algorithm : Relational Synthesis into 3NF with Dependency Preservation (Relational Synthesis Algorithm) Input: A universal relation R and a set of functional dependencies F on the attributes of R. 1. Find a minimal cover G for F; 2. For each left-hand-side X of a functional dependency that appears in G, create a relation schema in D with attributes {X  {A 1 }  {A 2 }...  {A k }}, where X  A 1, X  A 2,..., X  A k are the only dependencies in G with X as left-hand-side (X is the key of this relation) ; 3. Place any remaining attributes (that have not been placed in any relation) in a single relation schema to ensure the attribute preservation property. Claim 3: Every relation schema created by this algorithm is in 3NF.

Algorithms for Relational Database Schema Design Algorithm : Relational Synthesis into 3NF with Dependency Preservation and Lossless (Non-Additive) Join Property Input: A universal relation R and a set of functional dependencies F on the attributes of R. 1. Find a minimal cover G for F. 2.For each left-hand-side X of a functional dependency that appears in G, create a relation schema in D with attributes {X  {A 1 }  {A 2 }...  {A k }}, where X  A 1, X  A 2,..., X  A k are the only dependencies in G with X as left-hand-side (X is the key of this relation). 3. If none of the relation schemas in D contains a key of R, then create one more relation schema in D that contains attributes that form a key of R.

Algorithms for Relational Database Schema Design Example: R={ssn,ename,bdate,address,dno,dname,dmgrssn} {ssn}  {ename,bdate,address,dno} {dno}  {dname,dmgrssn} R1 = {ssn,ename,bdate,address,dno} R2 = {dno,dname,dmgrssn}

Algorithms for Relational Database Schema Design Algorithm: Relational Decomposition into BCNF with Lossless (non- additive) join property Input: A universal relation R and a set of functional dependencies F on the attributes of R. 1. Set D := {R}; 2. While there is a relation schema Q in D that is not in BCNF do { choose a relation schema Q in D that is not in BCNF; find a functional dependency X  Y in Q that violates BCNF; replace Q in D by two relation schemas (Q - Y) and (X  Y); }; Assumption: No null values are allowed for the join attributes.

Algorithms for Relational Database Schema Design Example: R={student, course, instructor} {student, course}  {instructor} {instructor}  {course} R1 = {student, instructor} R2 = {instructor, course}

Algorithms for Relational Database Schema Design Issues with null-value joins. (a) Some EMPLOYEE tuples have null for the join attribute DNUM.

Algorithms for Relational Database Schema Design Issues with null-value joins. (b) Result of applying NATURAL JOIN to the EMPLOYEE and DEPARTMENT relations. (c) Result of applying LEFT OUTER JOIN to EMPLOYEE and DEPARTMENT.

Algorithms for Relational Database Schema Design The “dangling tuple” problem.

Algorithms for Relational Database Schema Design The “dangling tuple” problem. (b) The relation EMPLOYEE_2 (includes DNUM attribute with null values). (c) The relation EMPLOYEE_3 (includes DNUM attribute but does not include tuples for which DNUM has null values).

Algorithms for Relational Database Schema Design Discussion of Normalization Algorithms: Problems: The database designer must first specify all the relevant functional dependencies among the database attributes. It is not always possible to find a decomposition into relation schemas that preserves dependencies and allows each relation schema in the decomposition to be in BCNF (instead of 3NF as in Algorithm 11.4).