Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 33

Normalization

A technique for identifying


table structures that have
potential maintenance
problems

Normalization
Normalization is a set of formal conditions
that assure that a database is
maintainable.
The results of a well executed
normalization process are the same as
those of a well planned E-R model

PROCESS OF DATA
NORMALIZATION
ELIMINATE REPEATING GROUPS
Make a separate table for each set of related attributes
and give each table a primary key.
ELIMINATE REDUNDANT DATA
If an attribute depends on only part of a multivalued
key, remove it to a separate table.
ELIMINATE COLUMNS NOT DEPENDENT ON KEY
If attributes do not contribute to a description of the
key, remove them to a separate table.
Database Programming and Design

PROCESS OF DATA
NORMALIZATION
ISOLATE INDEPENDENT MULTIPLE RELATIONSHIPS
No table may contain two or more 1:n or n:m
relationships that are not directly related.
ISOLATE SEMANTICALLY RELATED MULTIPLE
RELATIONSHIPS
There may be practical constraints on information that
justify separating logically related many-to-many
relationships.

Database Programming and Design

Anomalies
A table anomaly is a structure for which a
normal database operation cannot be
executed without information loss or full
search of the data table
Insertion Anomaly
Deletion Anomaly
Update or Modification Anomaly

Normal Forms
Relational theory defines a number of
structure conditions called Normal Forms
that assure that certain data anomalies do
not occur in a database.

Normal Forms
1NF
2NF
3NF
BCNF
4NF

Keys; No repeating groups


No partial dependencies
No transitive dependencies
Determinants are candidate keys
No multivalued dependencies

Form

(Company Order History)


Order # 12003

Date Oct 1, 1997

Oklahoma Retail Company


1111 Asp
Norman

1.
2.
3.

Description

Code Qty

Price Amount

Footballs
Sweat Shirts
Shorts

21
44
37

25.00 150
15.00 300
12.00 120

Total

6
20
10

570

0nf: Remove titles and


derived quantities
Order # 12003

Date Oct 1, 1997

Oklahoma Retail Company


1111 Asp
Norman

1.
2.
3.

Description

Code Qty

Price Amount

Footballs
Sweat Shirts
Shorts

21
44
37

25.00 150
15.00 300
12.00 120

Total

6
20
10

570

0 Normal Form

Remove titles and derived quantities


Schema notation

HISTORY(CustName, CustAddr, CustCity


{OrderNum, OrderDate {ProdDescr,
ProdCode, QtyOrdered, OrderPrice}}

1st Normal Form

Add keys
Remove repeating groups

1st Normal Form

Add Keys for embedded entities


Remove Repeating Groups

HISTORY(CustID, CustName, CustAddr,


CustCity {OrderNum, OrderDate {ProdDescr,
ProdCode, QtyOrdered, OrderPrice}}

1st Normal Form

Add Keys for embedded entities


Remove Repeating Groups
Create a table for each embedded entity,
from the outside for nested groups
Insert foreign keys and junction tables

CUSTOMER(CustID, CustName, CustAddr,


CustCity)
ORDER(OrderNum, CustID, OrderDate {ProdDescr,
ProdCode, QtyOrdered, OrderPrice})

1st Normal Form


CUSTOMER(CustID, CustName, CustAddr,
CustCity)
ORDER(OrderNum, CustID, OrderDate)
PRODUCT(ProdDescr, ProdCode,)
ORDER-PRODUCT(OrderNum, ProdCode,
QtyOrdered, OrderPrice)

1st Normal Form


CUSTOMER

ORDER

PRODUCT

1NF

(Keys, No Repeating Groups)


Table contains multi-valued attributes.

TABLE

{ ATTRIBUTES}

TABLE

??

ATTR-TABLE

2nd Normal Form

No partial dependencies
(an attribute has a partial
dependency if it depends
on part of a concatenated
key)

2nd Normal Form


ROSTER(StuID, ZAPNum, StudentName,
CourseTitle, CourseGrade)
Remove partial dependencies
STUDENT(StuID, StudentName)
SECTION(ZAPNum, CourseTitle)
STUDENT-SECTION(StuID, ZAPNum,
CourseGrade)

2nd Normal Form

ROSTER

STUDENT

SECTION

STUDENT-SECTION

2NF

No partial dependencies
Table has data from several connected tables.

TABLE

??

TABLE

??

3rd Normal Form

No transitive dependencies
(a transitive dependency is
an attribute that depends
on other non-key
attributes)

3rd Normal Form


Note: a transitive dependency arises when
attributes from a second entity appear in
a given table.
SECTION(ZAPNum, RoomNum, Day, Time,
CourseTitle, HoursCredit)

3rd Normal Form


SECTION(ZAPNum, RoomNum, Day,
Time, CourseID ,CourseTitle,
HoursCredit)
SECTION(ZAPNum, RoomNum, Day,
Time, CourseID)
COURSE(CourseID, CourseTitle,
HoursCredit)

3NF

No transitive dependencies
Table contains data from an embedded entity with
non-key attributes.
TABLE
TABLE

SUB-TABLE
??

SUB-TABLE

BCNF is the same, but the embedded table may


involve key attributes.

Boyce Codd Normal Form

Every determinant is a
candidate key

BCNF
BCNF dependenceies are like 3nf
dependencies but they involve some key
attributes

Note: BCNF often arises when a 1:m


relationship is modeled as a m:n
relationship

BCNF
SALESMAN-CUST(SalesID, CustID,
Commission)
SALESMAN(SalesID, Commission)
CUSTOMER(CustID, SalesID)

4th Normal Form

No multi-valued
dependencies

4th Normal Form


Note: 4th Normal Form violations occur
when a triple (or higher) concatenated
key represents a pair of double keys

4th Normal Form

4th Normal Form


Multuvalued dependencies
Instructor

Book

Class

Price

Inro Comp

MIS 2003

Parker

Intro Comp

MIS 2003

Kemp

Data in Action

MIS 4533

Kemp

ORACLE Tricks MIS 4533

Warner

Data in Action

Warner

ORACLE Tricks MIS 4533

MIS 4533

4th Normal Form


INSTR-BOOK-COURSE(InstrID, Book,
CourseID)

COURSE-BOOK(CourseID, Book)
COURSE-INSTR(CourseID, InstrID)

4NF

(No multivalued dependencies)


Independent repeating groups have been treated as a
complex relationship.
TABLE

TABLE

TABLE
TABLE

TABLE
TABLE

You might also like