Normalization Step by Step (Lecturer Version)
Normalization Step by Step (Lecturer Version)
Un-Normalize Form
Normalization Process
Step 1:
Present data in tabular format, where each cell has single value
eliminate nulls by making sure that each attribute contains an appropriate data value
Identify the Primary Keys
Present the data in table form, fill up all rows and columns. Ensure each row and intersection has only one value
Primary keys: ProNum&EmpNum (in most cases, there will be more than 1 attributes known as composite PK)
Identify all dependencies. Remove partial dependency (exists when table has composite PK)
Make sure that each non-key attributes / non-determinant / non-PK is fully dependent on its determinant (PK)
ProNum&EmpNu EmpName Is EmpName fully dependent on both (ProNum&EmpNum)? Partial dependency exists. Remove EmpName together
m Answer: No, EmpName depend on EmpNum, not ProNum with its determinant (EmpNum) to form a new table.
Form
ProNum&EmpNu JobClass Is JobClass fully dependent on both (ProNum&EmpNum)? Partial dependency exists. Remove JobClass together
new
m Answer: No, JobClass depend on EmpNum, not ProNum with its determinant (EmpNum) to form a new table.
table
ProNum&EmpNu ChgHour Is ChgHour fully dependent on both (ProNum&EmpNum)? Partial dependency exists. Remove ChgHour together
m Answer: No, ChgHour depend on EmpNum, not ProNum with its determinant (EmpNum) to form a new table.
ProNum&EmpNu HourBill Is HourBill fully dependent on both (ProNum&EmpNum)? Full dependency exists, therefore no action needed.
m Answer: Yes, HourBill depend on both (ProNum&EmpNum) HourBill remains in the original table with its Remain
determinant (ProNum&EmpNum) at
original
ProNum&EmpNu TotChar Is TotChar fully dependent on both (ProNum&EmpNum)? Full dependency exists, therefore no action needed.
m Answer: Yes, TotChar depend on both (ProNum&EmpNum) TotChar remains in the original table with its table
determinant (ProNum&EmpNum)
Tables in second normal form (2NF)
Identify transitive dependency (if any) then remove it , else the tables are already in third normal form (3NF)
Transitive dependency occurs when a non-key attribute is dependent on another non-key attribute
In this example, transitive dependency exists: EmpNum > JobClass > ChgHour (ChgHour is transitively dependent on EmpNum)
ChgHour (which is a non-key attribute) is dependent on JobClass (which is also a non-key attribute), because JobClass determines ChgHour
Therefore, remove JobClass & ChgHour to form a new table. However, JobClass need to remain in Employee table as a reference
The tables are now in third normal form (3NF), normalization process ends.
Now you can implement the database in the DBMS, you can make further changes to the tables in 3NF such as below
Identify PK & FK
Project Employee
ProjectWork Rate
ID (PK) ProNum (FK) EmpNum (FK) HourBill TotChar JobClassID (PK) JobClass ChgHour
01 1 101 13 845 J01 Elect.Eng 65
02 1 102 16 960 J02 Comm.Tech 60
03 1 104 19 1140 J03 Biol.Eng 55
04 2 101 15 975
05 2 103 17 935
06 3 104 18 1080
07 3 102 14 840