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
1st Normal Form
Step 2:
Identify All Dependencies
Remove partial dependency
2nd Normal Form
Step 3:
Remove Transitive Dependencies
3rd Normal Form
Given the un-normalized form (UNF), normalized it into third normal form (3NF)
Present the data in table form, fill up all rows and columns. Ensure each row and intersection has only one value
ProNu ProName EmpNum EmpName JobClass ChgHour HourBill TotChar SubTot
m
1 Hurricane 101 John Elect.Eng 65 13 845 2945
1 Hurricane 102 David Comm.Tech 60 16 960 2945
1 Hurricane 104 Anne Comm.Tech 60 19 1140 2945
2 Coast 101 John Elect.Eng 65 15 975 1910
2 Coast 103 June Biol.Eng 55 17 935 1910
3 Satelite 104 Anne Comm.Tech 60 18 1080 1920
3 Satelite 102 David Comm.Tech 60 14 840 1920
Identify Primary keys: ProNum&EmpNum
The table is now in first normal form (1NF)
Change to second normal form (2NF)
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)
Composite PK Non-key Check List Action
attributes
ProNum&EmpNu ProName Is ProName fully dependent on both (ProNum&EmpNum)? Partial dependency exists. Remove ProName together
m Answer: No, ProName depend on ProNum, not EmpNum with its determinant (ProNum) to form a new table. Form
new
ProNum&EmpNu SubTot Is SubTot fully dependent on both (ProNum&EmpNum)? Partial dependency exists. Remove SubTot together with table
m Answer: No, SubTot depend on ProNum, not EmpNum its determinant (ProNum) to form a new table.
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)
ProNum ProName SubTot EmpNum EmpName JobClass ChgHour
1 Hurricane 2945 101 John Elect.Eng 65
2 Coast 1910 102 David Comm.Tech 60
3 Satelite 1920 103 June Biol.Eng 55
104 Anne Comm.Tech 60
ProNum EmpNum HourBill TotChar
1 101 13 845
1 102 16 960
1 104 19 1140
2 101 15 975
2 103 17 935
3 104 18 1080
3 102 14 840
The tables are now in second normal form (2NF)
Convert to third normal form (3NF)
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
Tables in third normal form (3NF)
ProNum ProName SubTot EmpNum EmpName JobClass
1 Hurricane 2945 101 John Elect.Eng
2 Coast 1910 102 David Comm.Tech
3 Satelite 1920 103 June Biol.Eng
104 Anne Comm.Tech
ProNum EmpNum HourBill TotChar
1 101 13 845
1 102 16 960
JobClass ChgHour
1 104 19 1140
Elect.Eng 65
2 101 15 975
Comm.Tech 60
2 103 17 935
Biol.Eng 55
3 104 18 1080
3 102 14 840
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
Implement the tables in database server
Identify PK & FK
Project Employee
ProNum (PK) ProName SubTot EmpNum (PK) EmpName JobClassID (FK)
1 Hurricane 2945 101 John J01
2 Coast 1910 102 David J02
3 Satelite 1920 103 June J02
104 Anne J03
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