Schema Refinement, Functional Dependencies, Normalization



Similar documents
Relational Database Design

Chapter 10. Functional Dependencies and Normalization for Relational Databases

Theory of Relational Database Design and Normalization

Database Design and Normalization

Schema Design and Normal Forms Sid Name Level Rating Wage Hours

Schema Refinement and Normalization

Database Design and Normal Forms

Theory of Relational Database Design and Normalization

CS143 Notes: Normalization Theory

Relational Database Design: FD s & BCNF

Databases -Normalization III. (N Spadaccini 2010 and W Liu 2012) Databases - Normalization III 1 / 31

Chapter 10 Functional Dependencies and Normalization for Relational Databases

Functional Dependencies and Normalization

Theory behind Normalization & DB Design. Satisfiability: Does an FD hold? Lecture 12

Week 11: Normal Forms. Logical Database Design. Normal Forms and Normalization. Examples of Redundancy

Relational Database Design Theory

Design of Relational Database Schemas

Database Management System

Chapter 10. Functional Dependencies and Normalization for Relational Databases. Copyright 2007 Ramez Elmasri and Shamkant B.

Why Is This Important? Schema Refinement and Normal Forms. The Evils of Redundancy. Functional Dependencies (FDs) Example (Contd.)

Functional Dependency and Normalization for Relational Databases

COSC344 Database Theory and Applications. Lecture 9 Normalisation. COSC344 Lecture 9 1

Chapter 15 Basics of Functional Dependencies and Normalization for Relational Databases

normalisation Goals: Suppose we have a db scheme: is it good? define precise notions of the qualities of a relational database scheme

Database Management Systems. Redundancy and Other Problems. Redundancy

CS 377 Database Systems. Database Design Theory and Normalization. Li Xiong Department of Mathematics and Computer Science Emory University

Functional Dependencies and Finding a Minimal Cover

Chapter 7: Relational Database Design

Chapter 5: FUNCTIONAL DEPENDENCIES AND NORMALIZATION FOR RELATIONAL DATABASES

Relational Normalization: Contents. Relational Database Design: Rationale. Relational Database Design. Motivation

Limitations of E-R Designs. Relational Normalization Theory. Redundancy and Other Problems. Redundancy. Anomalies. Example

Normalization in Database Design

DATABASE NORMALIZATION

Chapter 8. Database Design II: Relational Normalization Theory

Normalisation. Why normalise? To improve (simplify) database design in order to. Avoid update problems Avoid redundancy Simplify update operations

Chapter 7: Relational Database Design

Advanced Relational Database Design

Lecture Notes on Database Normalization

Database Systems Concepts, Languages and Architectures

Functional Dependencies

Lecture 2 Normalization

Design Theory for Relational Databases: Functional Dependencies and Normalization

CSCI-GA Database Systems Lecture 7: Schema Refinement and Normalization

Introduction Decomposition Simple Synthesis Bernstein Synthesis and Beyond. 6. Normalization. Stéphane Bressan. January 28, 2015

Normalisation to 3NF. Database Systems Lecture 11 Natasha Alechina

Normalization. CIS 331: Introduction to Database Systems

Normalization for Relational DBs

RELATIONAL DATABASE DESIGN

Relational Normalization Theory (supplemental material)

Introduction to Database Systems. Normalization

6.830 Lecture PS1 Due Next Time (Tuesday!) Lab 1 Out today start early! Relational Model Continued, and Schema Design and Normalization

Database Design and Normalization

Normalization. Normalization. Normalization. Data Redundancy

Chapter 9: Normalization

Limitations of DB Design Processes

Quiz 3: Database Systems I Instructor: Hassan Khosravi Spring 2012 CMPT 354

Chapter 5: Logical Database Design and the Relational Model Part 2: Normalization. Introduction to Normalization. Normal Forms.

Normalization of database model. Pazmany Peter Catholic University 2005 Zoltan Fodroczi

SQL DDL. DBS Database Systems Designing Relational Databases. Inclusion Constraints. Key Constraints

Introduction to Databases, Fall 2005 IT University of Copenhagen. Lecture 5: Normalization II; Database design case studies. September 26, 2005

Normalisation in the Presence of Lists

Lecture 6. SQL, Logical DB Design

Objectives of Database Design Functional Dependencies 1st Normal Form Decomposition Boyce-Codd Normal Form 3rd Normal Form Multivalue Dependencies

Normalization of Database

How To Find Out What A Key Is In A Database Engine

The Relational Model. Ramakrishnan&Gehrke, Chapter 3 CS4320 1

LOGICAL DATABASE DESIGN

BCA. Database Management System

Determination of the normalization level of database schemas through equivalence classes of attributes

An Algorithmic Approach to Database Normalization

Database Constraints and Design

Introduction to Database Systems. Chapter 4 Normal Forms in the Relational Model. Chapter 4 Normal Forms

Normal forms and normalization

A Web-Based Environment for Learning Normalization of Relational Database Schemata

Figure 14.1 Simplified version of the

Fundamentals of Database System

DATABASE DESIGN: NORMALIZATION NOTE & EXERCISES (Up to 3NF)

MCQs~Databases~Relational Model and Normalization

Normalization in OODB Design

Announcements. SQL is hot! Facebook. Goal. Database Design Process. IT420: Database Management and Organization. Normalization (Chapter 3)

CSC 742 Database Management Systems

Database Sample Examination

Database Design. Marta Jakubowska-Sobczak IT/ADC based on slides prepared by Paula Figueiredo, IT/DB

Boyce-Codd Normal Form

Normalisation 6 TABLE OF CONTENTS LEARNING OUTCOMES

C# Cname Ccity.. P1# Date1 Qnt1 P2# Date2 P9# Date9 1 Codd London Martin Paris Deen London

Jordan University of Science & Technology Computer Science Department CS 728: Advanced Database Systems Midterm Exam First 2009/2010

Normalisation and Data Storage Devices

TYPICAL QUESTIONS & ANSWERS

The Relational Model. Why Study the Relational Model? Relational Database: Definitions. Chapter 3

Conceptual Design Using the Entity-Relationship (ER) Model

14 Databases. Source: Foundations of Computer Science Cengage Learning. Objectives After studying this chapter, the student should be able to:

DATABASE SYSTEMS. Chapter 7 Normalisation

The Relational Model. Why Study the Relational Model?

DATABASE MANAGEMENT SYSTEMS. Question Bank:

α = u v. In other words, Orthogonal Projection

10CS54: DATABASE MANAGEMENT SYSTEM

Transcription:

Schema Refinement, Functional Dependencies, Normalization MSCI 346: Database Systems Güneş Aluç, University of Waterloo Spring 2015 MSCI 346: Database Systems Chapter 19 1 / 42

Outline 1 Introduction Design Principles Problems due to Poor Designs 2 Functional Dependencies Logical Implication of FDs Attribute Closure 3 Schema Decomposition Lossless-Join Decompositions Dependency Preservation 4 Normal Forms based on FDs Boyce-Codd Normal Form Third Normal Form MSCI 346: Database Systems Chapter 19 2 / 42

Design Process Where are we? Conceptual Design Conceptual Schema (ER Model) Step 1 ER-to-relational mapping Logical Design Step 2 Normalization: Improving the design Logical Schema (Relational Model) MSCI 346: Database Systems Chapter 19 3 / 42

Relational Design Principles Relations should have semantic unity Information repetition should be avoided Anomalies: insertion, deletion, modification Avoid null values as much as possible Certainly avoid excessive null values Avoid spurious joins MSCI 346: Database Systems Chapter 19 4 / 42

A Parts/Suppliers Database Example Description of a parts/suppliers database: Each type of part has a name and an identifying number, and may be supplied by zero or more suppliers. Each supplier may offer the part at a different price. Each supplier has an identifying number, a name, and a contact location for ordering parts. City Pno Sno Supplier Supplies Part Sname Price Pname MSCI 346: Database Systems Chapter 19 5 / 42

Parts/Suppliers Example (cont.) Suppliers Sno Sname City S1 Magna Ajax S2 Budd Hull Parts Pno Pname P1 P2 P3 Bolt Nut Screw Supplies Sno Pno Price S1 P1 0.50 S1 P2 0.25 S1 P3 0.30 S2 P3 0.40 An instance of the parts/suppliers database. MSCI 346: Database Systems Chapter 19 6 / 42

Alternative Parts/Suppliers Database Sno Sname Pno Supplied_Items City Pname Price An alternative E-R model for the parts/suppliers database. MSCI 346: Database Systems Chapter 19 7 / 42

Alternative Example (cont.) Supplied Items Sno Sname City Pno Pname Price S1 Magna Ajax P1 Bolt 0.50 S1 Magna Ajax P2 Nut 0.25 S1 Magna Ajax P3 Screw 0.30 S2 Budd Hull P3 Screw 0.40 A database instance corresponding to the alternative E-R model. MSCI 346: Database Systems Chapter 19 8 / 42

Change Anomalies Consider Is one schema better than the other? What does it mean for a schema to be good? The single-table schema suffers from several kinds of problems: Update problems (e.g. changing name of supplier) Insert problems (e.g. add a new item) Delete problems (e.g. Budd no longer supplies screws) Likely increase in space requirements The multi-table schema does not have these problems. MSCI 346: Database Systems Chapter 19 9 / 42

Another Alternative Parts/Supplier Database Is more tables always better? Snos Sno S1 S2 Inums Inum I1 I2 I3 Snames Sname Magna Budd Inames Iname Bolt Nut Screw Cities City Ajax Hull Prices Price 0.50 0.25 0.30 0.40 Information about relationships is lost! MSCI 346: Database Systems Chapter 19 10 / 42

Designing Good Databases Goals A methodology for evaluating schemas (detecting anomalies). A methodology for transforming bad schemas into good schemas (repairing anomalies). How do we know an anomaly exists? Certain types of integrity constraints reveal regularities in database instances that lead to anomalies. What should we do if an anomaly exists? Certain schema decompositions can avoid anomalies while retaining all information in the instances MSCI 346: Database Systems Chapter 19 11 / 42

Functional Dependencies (FDs) Idea: Express the fact that in a relation schema (values of) a set of attributes uniquely determine (values of) another set of attributes. Definition (Functional Dependency) Let R be a relation schema, and X, Y R sets of attributes. The functional dependency X Y holds on R if whenever an instance of R contains two tuples t and u such that t[x ] = u[x ] then it is also true that t[y ] = u[y ]. We say that X functionally determines Y (in R). Notation: t[a 1,..., A k ] means projection of tuple t onto the attributes A 1,..., A k. In other words, (t.a 1,..., t.a k ). MSCI 346: Database Systems Chapter 19 12 / 42

Examples of Functional Dependencies Consider the following relation schema: EmpProj SIN PNum Hours EName PName PLoc Allowance SIN determines employee name SIN EName project number determines project name and location PNum PName, PLoc allowances are always the same for the same number of hours at the same location PLoc, Hours Allowance MSCI 346: Database Systems Chapter 19 13 / 42

Functional Dependencies and Keys Keys (as defined previously): A superkey is a set of attributes such that no two tuples (in an instance) agree on their values for those attributes. A candidate key is a minimal superkey. A primary key is a candidate key chosen by the DBA Relating keys and FDs: If K R is a superkey for relation schema R, then dependency K R holds on R. If dependency K R holds on R and we assume that R does not contain duplicate tuples (i.e. relational model) then K R is a superkey for relation schema R MSCI 346: Database Systems Chapter 19 14 / 42

Closure of FD Sets How do we know what additional FDs hold in a schema? The closure of the set of functional dependencies F (denoted F + ) is the set of all functional dependencies that are satisfied by every relational instance that satisfies F. Informally, F + includes all of the dependencies in F, plus any dependencies they imply. MSCI 346: Database Systems Chapter 19 15 / 42

Reasoning About FDs Logical implications can be derived by using inference rules called Armstrong s axioms (reflexivity) Y X X Y (augmentation) X Y XZ YZ (transitivity) X Y, Y Z X Z The axioms are sound (anything derived from F is in F + ) complete (anything in F + can be derived) Additional rules can be derived (union) X Y, X Z X YZ (decomposition) X YZ X Y MSCI 346: Database Systems Chapter 19 16 / 42

Reasoning About FDs (example) Example: F = { SIN, PNum Hours SIN EName PNum PName, PLoc PLoc, Hours Allowance } A derivation of SIN, PNum Allowance: SIN, PNum Hours ( F ) PNum PName, PLoc ( F ) PLoc, Hours Allowance ( F ) SIN, PNum PNum (reflexivity) SIN, PNum PName, PLoc (transitivity, 4 and 2) SIN, PNum PLoc (decomposition, 5) SIN, PNum PLoc, Hours (union, 6, 1) SIN, PNum Allowance (transitivity, 7 and 3) MSCI 346: Database Systems Chapter 19 17 / 42

Computing Attribute Closures There is a more efficient way of using Armstrong s axioms, if we only want to derive the maximal set of attributes functionally determined by some X (called the attribute closure of X ). function ComputeX + (X, F ) begin X + := X ; while true do if there exists (Y Z) F such that (1) Y X +, and (2) Z X + then X + := X + Z else exit; return X + ; end MSCI 346: Database Systems Chapter 19 18 / 42

Computing Attribute Closures (cont d) Let R be a relational schema and F a set of functional dependencies on R. Then Theorem: X is a superkey of R if and only if ComputeX + (X, F ) = R Theorem: X Y F + if and only if Y ComputeX + (X, F ) MSCI 346: Database Systems Chapter 19 19 / 42

Attribute Closure Example Example: F = { SIN EName PNum PName, PLoc PLoc, Hours Allowance } ComputeX + ({Pnum,Hours},F ): FD X + initial Pnum,Hours Pnum Pname,Ploc Pnum,Hours,Pname,Ploc PLoc,Hours Allowance Pnum,Hours,Pname,Ploc,Allowance MSCI 346: Database Systems Chapter 19 20 / 42

Schema Decomposition Definition (Schema Decomposition) Let R be a relation schema (= set of attributes). The collection {R 1,..., R n } of relation schemas is a decomposition of R if R = R 1 R 2 R n A good decomposition does not lose information complicate checking of constraints contain anomalies (or at least contains fewer anomalies) MSCI 346: Database Systems Chapter 19 21 / 42

Lossless-Join Decompositions We should be able to construct the instance of the original table from the instances of the tables in the decomposition Example: Consider replacing Marks Student Assignment Group Mark Ann A1 G1 80 Ann A2 G3 60 Bob A1 G2 60 by decomposing (i.e. projecting) into two tables SGM Student Group Mark Ann G1 80 Ann G3 60 Bob G2 60 AM Assignment Mark A1 80 A2 60 A1 60 MSCI 346: Database Systems Chapter 19 22 / 42

Lossless-Join Decompositions (cont.) But computing the natural join of SGM and AM produces Student Assignment Group Mark Ann A1 G1 80 Ann A2 G3 60 Ann A1 G3 60 Bob A2 G2 60 Bob A1 G2 60... and we get extra data (spurious tuples). We would therefore lose information if we were to replace Marks by SGM and AM. If re-joining SGM and AM would always produce exactly the tuples in Marks, then we call SGM and AM a lossless-join decomposition. MSCI 346: Database Systems Chapter 19 23 / 42

Lossless-Join Decompositions (cont.) A decomposition {R 1, R 2 } of R is lossless if and only if the common attributes of R 1 and R 2 form a superkey for either schema, that is R 1 R 2 R 1 or R 1 R 2 R 2 Example: In the previous example we had R = {Student, Assignment, Group, Mark}, F = {(Student, Assignment Group, Mark)}, R 1 = {Student, Group, Mark}, R 2 = {Assignment, Mark} Decomposition {R 1, R 2 } is lossy because R 1 R 2 (= {Mark}) is not a superkey of either {Student, Group, Mark} or {Assignment, Mark} MSCI 346: Database Systems Chapter 19 24 / 42

Dependency Preservation How do we test/enforce constraints on the decomposed schema? Example: A table for a company database could be R Proj Dept Div FD1: Proj Dept, FD2: Dept Div, and FD3: Proj Div and two decompositions D 1 = {R1[Proj, Dept], R2[Dept, Div]} D 2 = {R1[Proj, Dept], R3[Proj, Div]} Both are lossless. (Why?) MSCI 346: Database Systems Chapter 19 25 / 42

Dependency Preservation (cont.) Which decomposition is better? Decomposition D 1 lets us test FD1 on table R1 and FD2 on table R2; if they are both satisfied, FD3 is automatically satisfied. In decomposition D 2 we can test FD1 on table R1 and FD3 on table R3. Dependency FD2 is an interrelational constraint: testing it requires joining tables R1 and R3. D 1 is better! Given a schema R and a set of functional dependencies F, decomposition D = {R 1,..., R n } of R is dependency preserving if there is an equivalent set of functional dependencies F, none of which is interrelational in D. MSCI 346: Database Systems Chapter 19 26 / 42

Normal Forms What is a good relational database schema? Rule of thumb: Independent facts in separate tables: Each relation schema should consist of a primary key and a set of mutually independent attributes This is achieved by transforming a schema into a normal form. Goals: Intuitive and straightforward transformation Anomaly-free/Nonredundant representation of data Normal Forms based on Functional Dependencies: Boyce-Codd Normal Form (BCNF) Third Normal Form (3NF) MSCI 346: Database Systems Chapter 19 27 / 42

Normal Forms Based on FDs 1NF eliminates relations within relations or relations as attributes of tuples Lossless First Normal Form (1NF) eliminate the par-al func-onal dependencies of non- prime a5ributes to key a5ributes Lossless & Second Normal Form (2NF) Dependency preserving eliminate the transi-ve func-onal dependencies of non- prime a5ributes to key a5ributes Third Normal Form (3NF) eliminate the par-al and transi-ve func-onal dependencies of prime (ke a5ributes to key. Boyce- Codd Normal Form (BCNF) MSCI 346: Database Systems Chapter 19 28 / 42

Boyce-Codd Normal Form (BCNF) - Informal BCNF formalizes the goal that in a good database schema, independent relationships are stored in separate tables. Given a database schema and a set of functional dependencies for the attributes in the schema, we can determine whether the schema is in BCNF. A database schema is in BCNF if each of its relation schemas is in BCNF. Informally, a relation schema is in BCNF if and only if any group of its attributes that functionally determines any others of its attributes functionally determines all others, i.e., that group of attributes is a superkey of the relation. MSCI 346: Database Systems Chapter 19 29 / 42

Formal Definition of BCNF Let R be a relation schema and F a set of functional dependencies. Schema R is in BCNF (w.r.t. F ) if and only if whenever (X Y ) F + and XY R, then either (X Y ) is trivial (i.e., Y X ), or X is a superkey of R A database schema {R 1,..., R n } is in BCNF if each relation schema R i is in BCNF. MSCI 346: Database Systems Chapter 19 30 / 42

BCNF and Redundancy Why does BCNF avoid redundancy? Consider: Supplied Items Sno Sname City Pno Pname Price The following functional dependency holds: Sno Sname, City Therefore, supplier name Magna and city Ajax must be repeated for each item supplied by supplier S1. Assume the above FD holds over a schema R that is in BCNF. This implies that: Sno is a superkey for R each Sno value appears on one row only no need to repeat Sname and City values MSCI 346: Database Systems Chapter 19 31 / 42

Lossless-Join BCNF Decomposition function DecomposeBCNF (R, F ) begin Result := {R}; while some R i Result and (X Y ) F + violate the BCNF condition do begin Replace R i by R i (Y X ); Add {X, Y } to Result; end; return Result; end MSCI 346: Database Systems Chapter 19 32 / 42

Lossless-Join BCNF Decomposition No efficient procedure to do this exists. Results depend on sequence of FDs used to decompose the relations. It is possible that no lossless join dependency preserving BCNF decomposition exists Consider R = {A, B, C} and F = {AB C, C B}. MSCI 346: Database Systems Chapter 19 33 / 42

BCNF Decomposition - An Example R = {Sno,Sname,City,Pno,Pname,Price} functional dependencies: Sno Sname,City Pno Pname Sno,Pno Price This schema is not in BCNF because, for example, Sno determines Sname and City, but is not a superkey of R. MSCI 346: Database Systems Chapter 19 34 / 42

BCNF Decomposition - An Example (cont.) Decomposition Diagram: {Sno,Sname,City,Pno,Pname,Price} {Sno,Pno,Price} {Sno,Pno,Pname,Price} Pno > Pname {Pno,Pname} Sno > Sname,City {Sno,Sname,City} The complete schema is now R 1 = {Sno,Sname,City} R 2 = {Sno,Pno,Price} R 3 = {Pno,Pname} This schema is a lossless-join, BCNF decomposition of the original schema R. MSCI 346: Database Systems Chapter 19 35 / 42

Third Normal Form (3NF) Schema R is in 3NF (w.r.t. F ) if and only if whenever (X Y ) F + and XY R, then either (X Y ) is trivial, or X is a superkey of R, or each attribute in Y X is contained in a candidate key of R A database schema {R 1,..., R n } is in 3NF if each relation schema R i is in 3NF. 3NF is looser than BCNF allows more redundancy e.g. R = {A, B, C} and F = {AB C, C B}. lossless-join, dependency-preserving decomposition into 3NF relation schemas always exists. MSCI 346: Database Systems Chapter 19 36 / 42

Minimal Cover Definition: Two sets of dependencies F and G are equivalent iff F + = G +. There are different sets of functional dependencies that have the same logical implications. Simple sets are desirable. Definition: A set of dependencies G is minimal if every right-hand side of an dependency in F is a single attribute. for no X A is the set F {X A} equivalent to F. for no X A and Z a proper subset of X is the set F {X A} {Z A} equivalent to F. Theorem: For every set of dependencies F there is an equivalent minimal set of dependencies (minimal cover). MSCI 346: Database Systems Chapter 19 37 / 42

Finding Minimal Covers A minimal cover for F can be computed in three steps. Note that each step must be repeated until it no longer succeeds in updating F. Step 1. Replace X YZ with the pair X Y and X Z. Step 2. Remove A from the left-hand-side of X B in F if B is in ComputeX + (X {A}, F ). Step 3. Remove X A from F if A ComputeX + (X, F {X A}). MSCI 346: Database Systems Chapter 19 38 / 42

Dependency-Preserving 3NF Decomposition Idea: Decompose into 3NF relations and then repair function Decompose3NF (R, F ) begin Result := {R}; while some R i Result and (X Y ) F + violate the 3NF condition do begin Replace R i by R i (Y X ); Add {X, Y } to Result; end; N := (a minimal cover for F ) ( i F i) + for each (X Y ) N do Add {X, Y } to Result; end; return Result; end MSCI 346: Database Systems Chapter 19 39 / 42

Dep-Preserving 3NF Decomposition - An Example R = {Sno,Sname,City,Pno,Pname,Price} Functional dependencies: Sno Sname,City Sno,Pno Price Pno Pname Sno, Pname Price Following same decomposition tree as BCNF example: Minimal cover: Sno Sname Sno City R 1 = {Sno,Sname,City} R 2 = {Sno,Pno,Price} R 3 = {Pno,Pname} Pno Pname Sno, Pname Price Add relation to preserve missing dependency R 4 = {Sno, Pname, Price} MSCI 346: Database Systems Chapter 19 40 / 42

3NF Synthesis - An Example R = {Sno,Sname,City,Pno,Pname,Price} Functional dependencies: Sno Sname,City Pno Pname Sno,Pno Price Sno, Pname Price Minimal cover: Sno Sname R 1 = {Sno, Sname} Sno City R 2 = {Sno, City} Pno Pname R 3 = {Pno, Pname} Sno, Pname Price R 4 = {Sno, Pname, Price} Add relation for candidate key R 5 = {Sno, Pno} Optimization: combine relations R 1 and R 2 (same key) MSCI 346: Database Systems Chapter 19 41 / 42

Summary Functional dependencies provide clues towards elimination of (some) redundancies in a relational schema. Goals: to decompose relational schemas in such a way that the decomposition is (1) lossless-join (2) dependency preserving (3) BCNF (and if we fail here, at least 3NF) MSCI 346: Database Systems Chapter 19 42 / 42