beginnersbook First Example: UNF: employee: emp_id emp_name emp_address emp_dept 101 Rick Delhi D001,D002 123 Maggie Agra D890 166 Glenn Chennai D900,D004 1NF: employee: emp_id emp_name emp_address emp_dept 101 Rick Delhi D001 101 Rick Delhi D002 123 Maggie Agra D890 166 Glenn Chennai D900 166 Glenn Chennai D004 2NF: employee: (emp_id*, emp_name, emp_address) emp_id* emp_name emp_address emp_dept 101 Rick Delhi 123 Maggie Agra 166 Glenn Chennai employee_dept: (emp_id*@, emp_dept*) emp_id*@ emp_dept* 101 D001 101 D002 123 D890 166 D900 166 D004 3NF: employee: (emp_id*, emp_name, emp_address) emp_id* emp_name emp_address emp_dept 101 Rick Delhi 123 Maggie Agra 166 Glenn Chennai employee_department: (emp_id*@, emp_dept*@) emp_id*@ emp_dept*@ 101 D001 101 D002 123 D890 166 D900 166 D004 department: (emp_dept*) emp_dept* D001 D002 D890 D900 D004 Second Example: UNF: employee emp_id emp_name emp_address emp_mobile 101 Herschel New Delhi 8912312390 102 Jon Kanpur 8812121212, 9900012222 103 Ron Chennai 7778881212 104 Lester Bangalore 9990000123, 8123450987 1NF: employee emp_id emp_name emp_address emp_mobile 101 Herschel New Delhi 8912312390 102 Jon Kanpur 8812121212 102 Jon Kanpur 9900012222 103 Ron Chennai 7778881212 104 Lester Bangalore 9990000123 104 Lester Bangalore 8123450987 2NF & 3NF: employee (emp_id*, emp_name, emp_address) emp_id* emp_name emp_address 101 Herschel New Delhi 102 Jon Kanpur 103 Ron Chennai 104 Lester Bangalore employee_emp_mobile (emp_id*@, emp_mobile*) emp_id*@ emp_mobile* 101 8912312390 102 8812121212 102 9900012222 103 7778881212 104 9990000123 104 8123450987 Third Example: 1NF: teacher: teacher_id subject teacher_age 111 Maths 38 111 Physics 38 222 Biology 38 333 Physics 40 333 Chemistry 40 2NF: teacher_details: (teacher_id*, teacher_age) teacher_id teacher_age 111 38 222 38 333 40 teacher_subject: (teacher_id*@, subject*) teacher_id subject 111 Maths 111 Physics 222 Biology 333 Physics 333 Chemistry 3NF: teacher_details: (teacher_id*, teacher_age) teacher_id* teacher_age 111 38 222 38 333 40 teacher_subject: (teacher_id*@, subject*@) teacher_id*@ subject*@ 111 Maths 111 Physics 222 Biology 333 Physics 333 Chemistry subject: (subject*) subject* Maths Physics Biology Chemistry Fourth example: employee_details: 2NF: emp_id emp_name emp_zip emp_state emp_city emp_district 1001 John 282005 UP Agra Dayal Bagh 1002 Ajeet 222008 TN Chennai M-City 1006 Lora 282007 TN Chennai Urrapakkam 1101 Lilly 292008 UK Pauri Bhagwan 1201 Steve 222999 MP Gwalior Ratan 3NF: employee: emp_id emp_name emp_zip 1001 John 282005 1002 Ajeet 222008 1006 Lora 282007 1101 Lilly 292008 1201 Steve 222999 employee_zip: emp_zip emp_state emp_city emp_district 282005 UP Agra Dayal Bagh 222008 TN Chennai M-City 282007 TN Chennai Urrapakkam 292008 UK Pauri Bhagwan 222999 MP Gwalior Ratan Fix the zip/two+ city problem: 3NF: employee: emp_id*@ emp_name zipcityId@ 1001 John 1 1002 Ajeet 2 1006 Lora 3 1101 Lilly 4 1201 Steve 5 employee_zip: (zipcityId* emp_zip emp_state emp_city emp_district) zipcityId emp_zip emp_state emp_city emp_district 1 282005 UP Agra Dayal Bagh 2 222008 TN Chennai M-City 3 282007 TN Chennai Urrapakkam 4 292008 UK Pauri Bhagwan 5 222999 MP Gwalior Ratan 6 55350 MN Hutchinson Mid West 7 55350 MN Cedar Mills Mid West