Professional Documents
Culture Documents
Normal
Normal
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.
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
Form
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
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
Add keys
Remove repeating groups
ORDER
PRODUCT
1NF
TABLE
{ ATTRIBUTES}
TABLE
??
ATTR-TABLE
No partial dependencies
(an attribute has a partial
dependency if it depends
on part of a concatenated
key)
ROSTER
STUDENT
SECTION
STUDENT-SECTION
2NF
No partial dependencies
Table has data from several connected tables.
TABLE
??
TABLE
??
No transitive dependencies
(a transitive dependency is
an attribute that depends
on other non-key
attributes)
3NF
No transitive dependencies
Table contains data from an embedded entity with
non-key attributes.
TABLE
TABLE
SUB-TABLE
??
SUB-TABLE
Every determinant is a
candidate key
BCNF
BCNF dependenceies are like 3nf
dependencies but they involve some key
attributes
BCNF
SALESMAN-CUST(SalesID, CustID,
Commission)
SALESMAN(SalesID, Commission)
CUSTOMER(CustID, SalesID)
No multi-valued
dependencies
Book
Class
Price
Inro Comp
MIS 2003
Parker
Intro Comp
MIS 2003
Kemp
Data in Action
MIS 4533
Kemp
Warner
Data in Action
Warner
MIS 4533
COURSE-BOOK(CourseID, Book)
COURSE-INSTR(CourseID, InstrID)
4NF
TABLE
TABLE
TABLE
TABLE
TABLE