Top Banner
NORMALIZATION
27

NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

Dec 15, 2015

Download

Documents

Alanna Tress
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

NORMALIZATION

Page 2: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

Normalization

Normalization:

The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations to:

1. Minimizing Redundancy

2. Minimizing the Insertion, Deletion, And Update

Anomalies

Normal form:

Condition using keys and FDs of a relation to certify whether a relation schema is in a particular normal form

Page 3: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

Steps of Normalisation

Select the data source and convert

into an unnormalised table (UNF)

Transform the unnormalised data into first normal form

1NF

2NF3NF

Occasionally, the data may still be subject to

anomalies in third normal form. In this case, we may

have to perform further transformations.

BCNF

4NF5NF

Page 4: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

Keys

A superkey of a relation schema R = {A1, A2, ...., An} is a set of attributes S subset-of R with the property that no two tuples t1 and t2 in any legal relation state r of R will have t1[S] = t2[S]

A key K is a superkey with the additional property that removal of any attribute from K will cause K not to be a superkey any more.

A key is a minimal superkey If a relation schema has more than one key, each is called a

candidate key. One of the candidate keys is arbitrarily designated to be the

primary key, and the others are called secondary keys.

Page 5: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

Prime and Non Prime Attributes

Prime attribute An attribute which is a member of some

candidate key Nonprime attribute Not a member of any candidate key.

Page 6: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

First Normal Form(1NF)

RULE: First normal form (INF) states that the domain of an attribute must include only atomic (simple, indivisible) values.

Disallows Composite attributes Multivalued attributes Nested relations; attributes whose values for an

individual tuple are non-atomic

Page 7: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

Example :Suppose that we extend DEPARTMENT by including the DLOCATIONS attribute as shown in the fig.

FIRST NORMAL FORM – 1NF

Is Department is 1 NF???

Page 8: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

Three techiquesTechnique 1:

a. Remove the attribute DLOCATIONS that violates 1NF

b. Place the removed attribute in a separate relation DEPT_LOCATIONS

along with the primary key (DNUMBER) of DEPARTMENT.

c. The primary key of this new relation is the combination {DNUMBER,

DLOCATION}

Techniques to acheive1NF

Page 9: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

Technique 2:

Expand the key so that there will be a separate tuple in the original DEPARTMENT relation for each location of a DEPARTMENT. In this case, the primary key becomes the combination {DNUMBER, DLOCATION}.

Techniques to acheive1NF

Disadvantage:Redundancy

Page 10: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

Technique 3:

If a maximum number of values is known for the attribute-for example, if

it is known that at most three locations can exist for a department-

replace the DLOCATIONS attribute by three atomic attributes:

DLOCATION1, DLOCATION2, and DLOCATION3.

Disadvantage

1. Introducing null values if most departments have fewer than three

locations.

2. Introducing spurious tuples

Techniques to acheive1NF

Page 11: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

Of the three solutions above, the first is generally considered best because it does not suffer from redundancy and it is completely general having no limit placed on a maximum number of values.

Page 12: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

Example: Consider following NESTED RELATION (each tuple can have

a relation within it)

EMP_PROJ (SSN, ENAME, {PROJS(PNUMBER, HOURS)})

1NF DISALLOW MULTIVALUED Nested Relations

Page 13: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

1. Remove the nested relation attributes into a new relation and

propagate the primary key into it.

2. The primary key of the new relation will contain the partial key

along with the primary key of the original relation.

To normalize this into INF :

Page 14: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

1. Definition: Full functional dependency

A functional dependency X Y is a full functional dependency if

removal of any attribute A from X means that the dependency does

not hold any more;

i.e. for any attribute A ϵ X, (X - {A}) v does not functionally

determine Y

2. Definition: Partial functional dependency

A functional dependency X Y is a partial dependency if some

attribute A can be removed from X and the dependency still holds;

i.e. for some A ϵ X, (X - {A}) Y.

SECOND NORMAL FORM – 2NF (BASED ON FDs)

Page 15: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

{SSN, PNUMBER} HOURS is a full dependency

{SSN, PNUMBER} ENAME is partial because SSN ENAME holds.

Definition. A relation schema R is in 2NF if every nonprime attribute A in R is fully functionally dependent on the primary key of R.

•The test for 2NF involves testing for functional dependencies whose left-hand side•attributes are part of the primary key. •If the primary key contains a single attribute, the test need not be applied at all.

SECOND NORMAL FORM :

Page 16: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

The EMP_PROJ relation is in 1NF but not in 2NF.

Because of FD2 & FD3.

Few non-prime attributes are partially dependent on primary key.

i.e.

a part of primary key can fully determine that non-prime attribute.

SECOND NORMAL FORM – 2NF (Definition)

WHY

?

Page 17: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

Technique:

Division of given schema into smaller schemas, which would contain

nonprime attributes and the associated part of the primary key on which

they were functionally dependent.

FD1, FD2, and FD3 lead to the decomposition of EMP_PRO] into the three relation schemas EP1 EP2, and EP3

HOW TO ACHIEVE 2NF ?

Page 18: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

TRANSITIVE DEPENDENCY

A functional dependency X Y in a relation schema R is a transitive

dependency if there is a set of attributes Z that is neither a candidate key

nor a subset of any key of R, and both

X Z and Z Y hold.

THIRD NORMAL FORM – 3NF (BASED ON TRANSITIVE DEPENDENCY)

SSN DMGRSSN is transitive through DNUMBER in EMP_DEPT.

Because both the dependencies SSN DNUMBER and DNUMBER

DMGRSSN hold and DNUMBER is neither a key itself nor a subset of any

key of EMP_DEPT

Example

Page 19: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

A relation schema R is in 3NF if it satisfies 2NF and no nonprime attribute

of R is transitively dependent on the primary key.

The relation schema EMP_DEPT is in 2NF, since no partial dependencies

on a key exist. However, EMP_DEPT is not in 3NF because

1. SSNDNUMBER , DNUMBERDMGRSSN, hence SSN

DMGRSSN

2. SSNDNUMBER , DNUMBERDNAME , hence SSN DNAME

THIRD NORMAL FORM – 3NF (DEFINITION)

Previous Example

Page 20: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

We can normalize EMP_DEPT by decomposing it into the two 3NF relation

schemas ED1 and ED2 shown in the Figure

A NATURAL JOIN operation on ED1 and ED2 will recover the original

relation EMP_DEPT without generating spurious tuples.

HOW TO ACHIEVE 3NF ?

Page 21: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

SUMMARY

Page 22: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

GENERAL DEFINITIONS OF

SECOND AND

THIRD NORMAL FORMS

Page 23: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

The previous definitions of 2NF and 3NF did not considered other

candidate keys of the relation, if any.

NOTE 1:

Notice that this does not affect the definition of 1NF, since it is

independent of keys and functional dependencies

NOTE 2:

As a general definition of prime attribute, an attribute that is part of

any candidate key will be considered as prime

NEED FOR GENERALIZED DEFINITION

Page 24: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

A relation schema R is in 2NF if every nonprime attribute A in R is not partially dependent on any key of R.

OR

A relation schema R is in 2NF if every nonprime attribute A in R is fully functionally dependent on every key of R.

GENERAL DEFINITION OF SECOND NORMAL FORM

EXAMPLE:Consider the relation schema LOTS which describes parcels of land for sale in various counties of a state. Suppose that there are two candidate keys: PROPERTY_ID# and {COUNTY_NAME, LOT#};

THIS IS NOT IN 2NF BECAUSE OF FD3

Page 25: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

To normalize LOTS into 2NF, we decompose it into the two relations LOTS1 and LOTS2, shown in the following Figure

HOW TO ACHIEVE 2NF ?

Page 26: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

A relation schema R is in 3NF if, whenever a nontrivial functional

dependency X A holds in R; then either of below condition holds:

(a) X is a superkey of R

(b) A is a prime attribute of R.

GENERAL DEFINITION OF THIRD NORMAL FORM

Because of FD4 (AREA PRICE) in LOTS1 violates

3NF . Reason: AREA is not a superkey and PRICE is not a prime attribute in

LOTS1.

Page 27: NORMALIZATION. Normalization Normalization: The process of decomposing unsatisfactory "bad" relations by breaking up their attributes into smaller relations.

To normalize LOTS1 into 3NF, we decompose it into the relation schemas

LOTS1A and LOTS1B shown in Figure

HOW TO ACHIEVE 3NF ?