Normalization Murali Mani.

Slides:



Advertisements
Similar presentations
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 16 Relational Database Design Algorithms and Further Dependencies.
Advertisements

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.
Murali Mani Normalization. Murali Mani What and Why Normalization? To remove potential redundancy in design Redundancy causes several anomalies: insert,
CS Schema Refinement and Normal Forms Chapter 19.
Nov 11, 2003Murali Mani Normalization B term 2004: lecture 7, 8, 9.
Cs3431 Normalization. cs3431 Why Normalization? To remove potential redundancy in design Redundancy causes several anomalies: insert, delete and update.
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 10 Functional Dependencies and Normalization for Relational Databases.
DatabaseIM ISU1 Chapter 10 Functional Dependencies and Normalization for RDBs Fundamentals of Database Systems.
Functional Dependencies and Normalization 1 Instructor: Mohamed Eltabakh
Revisit FDs & BCNF Normalization 1 Instructor: Mohamed Eltabakh
1 CSE 480: Database Systems Lecture 18: Normal Forms and Normalization.
CS542 1 Schema Refinement Chapter 19 (part 1) Functional Dependencies.
Chapter 14 Functional Dependencies and Normalization Informal Design Guidelines for Relational Databases –Semantics of the Relation Attributes –Redundant.
CSC 411/511: DBMS Design Dr. Nan Wang 1 Schema Refinement and Normal Forms Chapter 19.
1 CS122A: Introduction to Data Management Lecture #13: Relational DB Design Theory (II) Instructor: Chen Li.
Functional Dependencies and Normalization 1 Instructor: Mohamed Eltabakh Part 2.
10/3/2017.
10/3/2017.
Lecture 11: Functional Dependencies
COP 6726: New Directions in Database Systems
Normalization Database Management Systems, 3rd ed., Ramakrishnan and Gehrke, Chapter 19.
Functional Dependency and Normalization
Advanced Normalization
CHAPTER 14 Basics of Functional Dependencies and Normalization for Relational Databases.
Schedule Today: Next After that Normal Forms. Section 3.6.
Functional Dependencies and Normalization for Relational Databases
Schema Refinement and Normal Forms
Chapter 15 Basics of Functional Dependencies and Normalization for Relational Databases.
Normalization First Normal Form (1NF) Boyce-Codd Normal Form (BCNF)
CS422 Principles of Database Systems Normalization
Functional Dependencies and Normalization for RDBs
Relational Database Design by Dr. S. Sridhar, Ph. D
CS 480: Database Systems Lecture 22 March 6, 2013.
Chapter 8: Relational Database Design
3.1 Functional Dependencies
Advanced Normalization
Functional Dependencies and Normalization for Relational Databases
Functional Dependencies and Normalization
Database Management systems Subject Code: 10CS54 Prepared By:
Module 5: Overview of Normalization
Normalization Boyce-Codd Normal Form Presented by: Dr. Samir Tartir
Functional Dependencies and Normalization
Functional Dependencies and Normalization
Sridhar Narayan Normalization Sridhar Narayan
Functional Dependencies and Relational Schema Design
Outline: Normalization
Normalization.
Normalization Part II cs3431.
Chapter 15 Basics of Functional Dependencies and Normalization for Relational Databases.
Functional Dependencies and Normalization
Lecture 8: Database Design
Normalization cs3431.
CS 405G: Introduction to Database Systems
Instructor: Mohamed Eltabakh
Normalization February 28, 2019 DB:Normalization.
Schema Refinement and Normal Forms
Chapter 19 (part 1) Functional Dependencies
Lecture 5: Functional dependencies and normalization
Relational Database Design
Instructor: Mohamed Eltabakh
Chapter Outline 1 Informal Design Guidelines for Relational Databases
Lecture 6: Functional Dependencies
Chapter 7a: Overview of Database Design -- Normalization
Functional Dependencies and Normalization
Functional Dependencies and Normalization
Lecture 09: Functional Dependencies
CS4222 Principles of Database System
Presentation transcript:

Normalization Murali Mani

What and Why Normalization? To remove potential redundancy in design Redundancy causes several anomalies: insert, delete and update Normalization uses concept of dependencies Functional Dependencies Idea used: Decomposition Break R (A, B, C, D) into R1 (A, B) and R2 (B, C, D) Use decomposition judiciously. Murali Mani

Insert Anomaly Student sNumber sName pNumber pName s1 Dave p1 MM s2 Greg p2 ER Note: We cannot insert a professor who has no students. Insert Anomaly: We are not able to insert “valid” value/(s) Murali Mani

Delete Anomaly Student sNumber sName pNumber pName s1 Dave p1 MM s2 Greg p2 ER Note: We cannot delete a student that is the only student of a professor. Delete Anomaly: We are not able to perform a delete without losing some “valid” information. Note: In both cases, minimum cardinality of Professor in the corresponding ER schema is 0 Murali Mani

Update Anomaly Student sNumber sName pNumber pName s1 Dave p1 MM s2 Greg Note: To update the name of a professor, we have to update in multiple tuples. Update anomalies are due to redundancy. Update Anomaly: To update a value, we have to update multiple rows. Note the maximum cardinality of Professor in the corresponding ER schema is * Murali Mani

Keys : Revisited A key for a relation R (a1, a2, …, an) is a set of attributes, K that uniquely determine the values for all attributes of R. A key K is minimal: no subset of K is a key. A superkey need not be minimal Prime Attribute: An attribute of a key Murali Mani

Keys: Example Student sNumber sName address 1 Dave 144FL 2 Greg 320FL Primary Key: <sNumber> Candidate key: <sName> Some superkeys: {<sNumber, address>, <sName>, <sNumber>, <sNumber, sName>, <sNumber, sName, address>} Prime Attribute: {sNumber, sName} Murali Mani

Functional Dependencies (FDs) Student sNumber sName address 1 Dave 144FL 2 Greg 320FL Suppose we have the FD sName  address for any two rows in the Student relation with the same value for sName, the value for address must be the same i.e., there is a function from sName to address Note: We will assume no null values. Any key (primary or candidate) or superkey of a relation R functionally determines all attributes of R Murali Mani

Properties of FDs Consider A, B, C, Z are sets of attributes Reflexive (also called trivial FD): if A  B, then A  B Transitive: if A  B, and B  C, then A  C Augmentation: if A  B, then AZ  BZ Union: if A  B, A  C, then A  BC Decomposition: if A  BC, then A  B, A  C Murali Mani

Inferring FDs Why? Suppose we have a relation R (A, B, C) and we have functional dependencies A  B, B  C, C  A what is a key for R? Should we split R into multiple relations? We can infer A  ABC, B  ABC, C  ABC. Hence A, B, C are all keys. Murali Mani

Algorithm for inference of FDs Computing the closure of set of attributes {A1, A2, …, An}, denoted {A1, A2, …, An}+ Let X = {A1, A2, …, An} If there exists a FD B1, B2, …, Bm  C, such that every Bi  X, then X = X  C Repeat step 2 till no more attributes can be added. {A1, A2, …, An}+ = X Murali Mani

Inferring FDs: Example 1 Given R (A, B, C), and FDs A  B, B  C, C  A, what are possible keys for R Compute the closure of attributes: {A}+ = {A, B, C} {B}+ = {A, B, C} {C}+ = {A, B, C} So keys for R are <A>, <B>, <C> Murali Mani

Inferring FDs: Example 2 Consider R (A, B, C, D, E) with FDs A  B, B  C, CD  E, does A  E? Let us compute {A}+ {A}+ = {A, B, C} Therefore A  E is false Murali Mani

Decomposing Relations StudentProf sNumber sName pNumber pName s1 Dave p1 MM s2 Greg p2 FDs: pNumber  pName Student Professor sNumber sName pNumber s1 Dave p1 s2 Greg p2 pNumber pName p1 MM p2 Murali Mani

Decomposition: Lossless Join Property Generating spurious tuples Student Professor sNumber sName pName S1 Dave MM S2 Greg pNumber pName p1 MM p2 StudentProf sNumber sName pNumber pName s1 Dave p1 MM p2 s2 Greg Murali Mani

Normalization Step Consider relation R with set of attributes AR. Consider a FD A  B (such that no other attribute in (AR – A – B) is functionally determined by A). If A is not a superkey for R, we may decompose R as: Create R’ (AR – B) Create R’’ with attributes A  B Key for R’’ = A Murali Mani

Normal Forms: BCNF Boyce Codd Normal Form (BCNF): For every non-trivial FD X  a in R, X is a superkey of R. Murali Mani

BCNF example SCI (student, course, instructor) FDs: instructor  course Decomposition: SI (student, instructor) Instructor (instructor, course) Murali Mani

Dependency Preservation We might want to ensure that all specified FDs are captured. BCNF does not necessarily preserve FDs. 2NF, 3NF preserve FDs. Instructor SI student instructor Dave MM ER instructor course MM DB 1 ER SCI (from SI and Instructor) student instructor course Dave MM DB 1 ER SCI violates the FD student, course  instructor Murali Mani

Normal Forms: 3NF Third Normal Form (3NF): For every non-trivial FD X  a in R, either a is a prime attribute or X is a superkey of R. Murali Mani

3NF - example Lot (propNo, county, lotNum, area, price, taxRate) Candidate key: <county, lotNum> FDs: county  taxRate area  price Decomposition: Lot (propNo, county, lotNum, area, price) County (county, taxRate) Murali Mani

3NF - example Lot (propNo, county, lotNum, area, price) County (county, taxRate) Candidate key for Lot: <county, lotNum> FDs: county  taxRate area  price Decomposition: Lot (propNo, county, lotNum, area) County (county, taxRate) Area (area, price) Murali Mani

Extreme Example Consider relation R (A, B, C, D) with primary key (A, B, C), and FDs B  D, and C  D. R violates 3NF. Decomposing it, we get 3 relations as: R1 (A, B, C), R2 (B, D), R3 (C, D) Let us consider an instance where we need these 3 relations and how we do a natural join ⋈ R1 ⋈ R2: violates C  D R2 R1 A B C D a1 b1 c1 d1 a2 b2 d2 a3 c2 B D b1 d1 b2 d2 A B C a1 b1 c1 a2 b2 a3 c2 R3 R1 ⋈ R2 ⋈ R3: no FD is violated C D c1 d1 c2 d2 A B C D a1 b1 c1 d1 Murali Mani

Define Foreign Keys? Consider the normalization step: A relation R with set of attributes AR, and a FD A  B, and A is not a key for R, we decompose R as: Create R’ (AR – B) Create R’’ with attributes A  B Key for R’’ = A We can also define foreign key R’ (A) references R’’ (A) Question: What is key for R’? Murali Mani

How does Normalization Help? Employee (ssn, name, lot, dept) Dept (did, dName) FK: Employee (dept) REFERENCES Dept (did) Suppose: employees of a dept are in the same lot FD: dept  lot Decomposing: Employee (ssn, name, dept) DeptLot (dept, lot) (or) Dept (did, dName, lot) Murali Mani