0% found this document useful (0 votes)
54 views

Normalization

The document discusses normalization, which is the process of decomposing relations to eliminate anomalies like update, deletion and insertion anomalies. It involves converting relations to first, second, third normal forms and Boyce-Codd normal form based on analyzing functional dependencies. The goal is to minimize data redundancy and have relations in a normal form without anomalies. Examples show applying normalization steps like removing partial and transitive dependencies to decompose a relation.

Uploaded by

nav1991nav
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views

Normalization

The document discusses normalization, which is the process of decomposing relations to eliminate anomalies like update, deletion and insertion anomalies. It involves converting relations to first, second, third normal forms and Boyce-Codd normal form based on analyzing functional dependencies. The goal is to minimize data redundancy and have relations in a normal form without anomalies. Examples show applying normalization steps like removing partial and transitive dependencies to decompose a relation.

Uploaded by

nav1991nav
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Normalization

o Main objective in developing a logical data model for relational database systems is to create an accurate representation of the data, its relationships, and constraints. o To achieve this objective, we must identify a suitable set of relations => The Normalization Technique o Developed by E.F. Codd (1972).

Normalization

Normalization - 1

Normalization - 2

Normalization
o Often performed as a series of tests on a relation to determine whether it satisfies or violates the requirements of a given normal form. o 4 most commonly used normal forms are first (1NF), second (2NF), third (3NF) and Boyce-Codd (BCNF) normal forms. o Based on functional dependencies among the attributes of a relation. o A relation can be normalized to a specific form to prevent the possible occurrence of update anomalies.
Normalization - 3

Data Redundancy
o Major aim of relational database design is to group attributes into relations to minimize data redundancy and reduce file storage space required by base relations.

Normalization - 4

CS3462 Introduction to Database Systems Helena Wong, 2001

Data Redundancy

Update Anomalies
o Relations that contain redundant information may potentially suffer from update anomalies. o Types of update anomalies include Insertion Deletion (eg. in the Staff_Branch relation, for a particular branch, removal of the last member of staff => lost of branch information) Modification

o Staff_Branch relation has redundant data; the details of a branch are repeated for every member of staff.

Normalization - 5

Normalization - 6

Functional Dependency
Functional Dependency: o Main concept associated with normalization. o Functional Dependency Describes the relationship between attributes in a relation. For example, if A and B are attributes of relation R, B is functionally dependent on A (denoted A -> B), if each value of A in R is associated with exactly one value of B in R.

Functional Dependency
Diagrammatic representation:

Normalization - 7

Normalization - 8

CS3462 Introduction to Database Systems Helena Wong, 2001

Functional Dependency

3 Types of Functional Dependencies


Full Dependency o In a relation, the attribute(s) B is fully functional dependent on A if B is functionally dependent on A, but not on any proper subset of A. Partial Dependency o If there is some attribute that can be removed from A and the dependency still holds. Eg. Staff_No, Sname -> Branch_No

Normalization - 9

Normalization - 10

3 Types of Functional Dependencies


Transitive Dependency o In a relation, if attribute(s) A->B and B->C, then C is transitively dependent on A via B (provided that A is not functionally dependent on B or C) Eg. Staff_No->Branch_No and Branch_No->BAddress

The Process of Normalization


o Normalization: Formal technique for analyzing a relation based on its primary key and the functional dependencies between the attributes of that relation. o Often executed as a series of steps. Each step corresponds to a specific normal form, which has known properties. o As normalization proceeds, the relations become progressively more restricted (stronger) in format and also less vulnerable to update anomalies.

Normalization - 11

Normalization - 12

CS3462 Introduction to Database Systems Helena Wong, 2001

Relationship Between Normal Forms

Unnormalized Normal Form


o Unnormalized Normal Form (UNF) A table that contains one or more repeating groups. To create an unnormalized table Transform the data from the information source (e.g. form) into table format with columns and rows.

Normalization - 13

Normalization - 14

Example - A Report

Example - UNF

Normalization - 15

Normalization - 16

CS3462 Introduction to Database Systems Helena Wong, 2001

First Normal Form


1NF - A relation in which the intersection of each row and column contains one and only one value. Converting from UNF to 1NF: o Select attribute(s) to act as the key. o Identify the repeating group(s) in the unnormalized table which repeats for the key attribute(s). o Remove the repeating group by Entering data into empty columns of rows which contain the repeating data. Or by Placing the repeating data along with a copy of the original key attribute(s) into a separate relation.
Normalization - 17

Example - Normalization UNF to 1NF

Normalization - 18

Example - UNF to 1NF (Alternative)

Second Normal Form


Based on the concept of full functional dependency. A 2NF relation is in 1NF and every non-primary-key attribute is fully functionally dependent on the primary key. Converting from 1NF to 2NF: o Identify the primary key for the 1NF relation. o Identify the functional dependencies in the relation. o If partial dependencies exist on the primary key remove them by placing then in a new relation along with a copy of their determinant.

Normalization - 19

Normalization - 20

CS3462 Introduction to Database Systems Helena Wong, 2001

FDs for Customer_Rental Relation

Customer_Rental to 2NF Relations

Primary key: Customer_No + Property_No Full Functional Dependency: (Customer_No+Property_No)->(RentStart, RentFinish) Partial Dependency: (Customer_No+Property_No)->Cname (Customer_No+Property_No)->(Paddress, Rent, Owner_No, Oname)

Normalization - 21

Normalization - 22

Third Normal Form (3NF)


Based on the concept of transitive dependency. A relation that is in 1NF and 2NF and in which no non-primary-key attribute is transitively dependent on the primary key. Converting from 2NF to 3NF: o Identify the primary key in the 2NF relation. o Identify functional dependencies in the relation. o If transitive dependencies exist on the primary key remove them by placing them in a new relation along with a copy of their dominant.
Normalization - 23

Property_Owner to 3NF Relations

Transitive Dependency: (Customer_No+Property_No)->Owner_No Owner_No ->OName

Normalization - 24

CS3462 Introduction to Database Systems Helena Wong, 2001

Process of Decomposition

Summary of 3NF Relations

Normalization - 25

Normalization - 26

Boyce-Codd Normal Form (BCNF)


o Based on functional dependencies that takes into account all candidate keys in a relation. o For a relation with only one candidate key, 3NF and BCNF are equivalent. o A relation is in BCNF, if and only if every determinant is a candidate key. o Violation of BCNF may occur in a relation that contains 2 (or more) composite keys which overlap and share at least 1 attribute
Normalization - 27

3NF to BCNF
o Identify all candidate keys in the relation. o Identify all functional dependencies in the relation. o If functional dependencies exists in the relation where their determinants are not candidate keys for the relation, remove the functional dependencies by placing them in a new relation along with a copy of their determinant.

Normalization - 28

CS3462 Introduction to Database Systems Helena Wong, 2001

Example - 3NF to BCNF Relations

Example - 3NF to BCNF Relations

Everyday a staff is allocated a room only. Staff may share rooms. Clients maybe interviewed again.

(Client_No, Interview_Date) -> (Interview_Time, Staff_No, Room_No) (Staff_No, Interview_Date, Interview_Time) -> Client_No (Room_No, Interview_date, Interview_Time) -> Staff_No, Client_No (Staff_No, Interview_Date) -> Room_No
Normalization - 29 Normalization - 30

The Process of Normalization up to BCNF

Example

UNF

Remove repeating groups

1NF

Remove partial dependencies

2NF

Remove transitive dependencies

3NF

Remove remaining anomalies from functional dependencies

BCNF

Normalization - 31

Normalization - 32

CS3462 Introduction to Database Systems Helena Wong, 2001

Example - UNF to 1NF Relation

Example - 1NF to 2NF


1NF: Property_Inspection (Property_No, IDate, ITime, Paddress, Comments, Staff_No, Sname, Car_Reg) Full Functional Dependency: (Property_No+IDate)->(ITime, Comments, Staff_No, Sname, Car_Reg) Partial Dependency: (Property_No+IDate)->(PAddress) => 2NF: Prop (Property_No, Paddress) Prop_Inspection (Property_No, IDate, ITime, Comments, Staff_No, Sname, Car_Reg)
Normalization - 33 Normalization - 34

Example - 2NF to 3NF


Transitive Dependency in Prop_Inspect: (Property_No+IDate) -> Staff_No Staff_No -> Sname => 3NF: Staff (Staff_No, Sname) Prop_Inspection (Property_No, IDate, ITime, Comments, Staff_No, Car_Reg)

Example - 3NF to BCNF


Prop (Property_No,Paddress) Staff (Staff_No, Sname) Prop_Inspection (Property_No, IDate, ITime, Comments, Staff_No, Car_Reg) Prop and Staff are already in BCNF. FDs of Prop_Inspect: o (Property_No, IDate)->(ITime, Comments, Staff_No, Car_Reg) o (Staff_No, Idate) -> Car_Reg o (Car_Reg, Idate, ITime) -> (Property_No, Comments, Staff_No) o (Staff_No, Idate, ITime) -> (Property_No, Comments)
Normalization - 35 Normalization - 36

CS3462 Introduction to Database Systems Helena Wong, 2001

Example BCNF
Prop (Property_No,Paddress) Staff (Staff_No, Sname) Inspection (Property_No, IDate, ITime, Comments, Staff_No) Staff_Car (Staff_No, IDate, Car_Reg)

Process of Decomposition

Normalization - 37

Normalization - 38

CS3462 Introduction to Database Systems Helena Wong, 2001

You might also like