Presentation is loading. Please wait.

Presentation is loading. Please wait.

Normalization Murali Mani.

Similar presentations


Presentation on theme: "Normalization Murali Mani."— Presentation transcript:

1 Normalization Murali Mani

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

17 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

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

19 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

20 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

21 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

22 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

23 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

24 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

25 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


Download ppt "Normalization Murali Mani."

Similar presentations


Ads by Google