SlideShare a Scribd company logo
1 of 31
LOGO
1
นอร์มัลไลซ์นอร์มัลไลซ์
NormalizationNormalization
Normalization
Normalization เป็นวิธีที่ใช้ในการปรับ
โครงสร้างของตารางเพื่อให้ได้ตารางที่
สามารถเก็บข้อมูลได้โดยไม่มีปัญหาใดๆ
ตามมาภายหลัง โดยให้อยู่ในรูปแบบที่
เรียกว่า Normal Form
มีเป้าหมายหลักคือ การลดความซำ้าซ้อน
ของข้อมูล และรักษาความถูกต้องให้แก่
ข้อมูล
© Pearson Education Limited 1995, 2005
วัตถุประสงค์ของ
Normalization
ลดเนื้อที่ในการจัดเก็บข้อมูล
 เนื่องจากกระบวนการ Normalization
เป็นการออกแบบ เพื่อลด
ความซำ้าซ้อนในข้อมูล จึงทำาให้เนื้อที่ใน
การจัดเก็บข้อมูลลดลงด้วย
ลดปัญหาข้อมูลที่ไม่ถูกต้อง
 เมื่อข้อมูลไม่มีความซำ้าซ้อน จึงทำาให้
สามารถปรับปรุงข้อมูลได้จากแหล่ง
Data Redundancy and
Update Anomalies
ตัวอย่างปัญหาของความซำ้าซ้อนใน
ข้อมูลใน Staff relation และ Branch
relation เมื่อเปรียบเทียบกับรีเลชันที่
รวมข้อมูลพนักงานและสาขาไว้ด้วยกัน
ใน StaffBranch relation
© Pearson Education Limited 1995, 2005
Data Redundancy and
Update Anomalies
© Pearson Education Limited 1995, 2005
Data Redundancy and
Update Anomalies
ตาราง StaffBranch จะมีความซำ้าซ้อน
ของข้อมูล โดยรายละเอียดของสาขา
(branch) จะมีข้อมูลที่ซำ้า ๆ กันในทุก
สมาชิกของ staff
ปัญหาความซำ้าซ้อนในข้อมูลที่เกิดขึ้น
จะเรียกว่า ข้อผิดพลาดจากการปรับปรุง
ข้อมูล ซึ่งประกอบด้วย
 ข้อผิดพลาดจากการเพิ่มข้อมูล
(Insertion)
© Pearson Education Limited 1995, 2005
Normalization
งานอย่างเป็นลำาดับ ที่กำาหนดไว้ด้วยกันเป็นขั้น
ตอน ตามปัญหาที่เกิดขึ้นในข้นตอนนั้นๆ ซึ่ง
แต่ละขั้นตอนจะมีชื่อตามโครงสร้างข้อมูลที่
กำาหนดไว้ดังนี้
1. ขั้นตอนการทำา First Normal
Form(1NF)
2. ขั้นตอนการทำา Second Normal
Form(2NF)
3. ขั้นตอนการทำา Third Normal
Form(3NF)
4. ขั้นตอนการทำา Boyce-Codd Normal
Form(BCNF)
ขอบเขต
 ในทางปฏิบัติการทำา Normalization
จนถึงระดับที่ 3 (3NF) ก็สามารถขจัดปัญหา
ความซำ้าซ้อนของข้อมูลลงได้จนเกือบหมด
แล้ว แต่อาจจะมีความซำ้าซ้อนเกิดขึ้นได้อีก
แม้จะพบได้ค่อนข้างน้อย
 ดังนั้นเนื้อหาจึงขอกล่าวถึงการทำา
Normalization จนถึง 3NF และกล่าวถึง
BCNF กรณีที่ต้องการลดความซำ้าซ้อนให้
น้อยลงไปอีก
First Normal Form : 1NF
1.First Normal Form : 1NF
Relation หนึ่งๆ จะอยู่ในรูปแบบ
1NF ก็ต่อเมื่อ
“ค่าของ Attribute ต่างๆ ใน
แต่ละ Tuple จะมีค่าของข้อมูล
เพียงค่าเดียว นั่นคือไม่มี
ตัวอย่างตารางข้อมูล
Employee
Emp
_ID
Emp_N
ame
Dept Sala
ry
Cour
se_
NO
Cours
e_
Name
D-
Compl
ete
110 วิลาวัลย์
ขำาคม
Acco
unt
15,0
00
01 Acc PAC 12/060
2002
03 SPSS 30/4/20
02
112 อุษาวดี
เจริญกุล
Acco
unt
15,1
00
01 Acc PAC 12/060
2002
091 นพพร
บุญชู
IT 12,0
00
02 3D
Studio
31/03/2
002
วิธีการทำาให้อยู่ในรูปแบบ
1NF
1. กำาจัด repeating
group (กลุ่มซำ้า)
2. เพิ่มคีย์หลัก
ผลลัพธ์ที่ได้จากการทำา
1NF ตาราง Employee
Emp
_ID
Cour
se_
NO
Emp_Na
me
Dept Sal
ary
Course
_
Name
D-
Compl
ete
110 01 วิลาวัลย์ ขำา
คม
Accou
nt
15,
000
Acc PAC 12/060
2002
110 03 วิลาวัลย์ ขำา
คม
Accou
nt
15,
000
SPSS 30/4/2
002
112 01 อุษาวดี
เจริญกุล
Accou
nt
15,
100
Acc PAC 12/060
2002
091 02 นพพร บุญ
ชู
IT 12,
000
3D
Studio
max
31/03/
2002
Employee
Emp_ID Emp_Name
Dept
SalaryCourse_No
Course_Name
D_Complete
Employee
Emp_ID
Emp_Name
Dept
Salary
Course_No
Course_Name
D_Complete
ผลลัพธ์ที่ได้จากการทำา 1NF
First Normal Form : 1NF
Second Normal Form
(2NF)
2. Second Normal Form : 2NF
Relation หนึ่งๆ จะอยู่ในรูปแบบ 2NF
ก็ต่อเมื่อ
“1. Relation นั้นๆ ต้องอยู่ในรูปแบบ
1NF
2. Attribute ทุกตัวที่ไม่ได้เป็นคีย์หลัก
จะต้องมีความสัมพันธ์กับ Attribute ที่
เป็นคีย์หลักทั้งหมด(Fully Functional
Second Normal Form
(2NF)
Emp_ID Course_No D_CompleteCourse_Name
Partial Dependency
เพราะฉะนั้นตาราง Employee ไม่ได้อยู่ในรูป
2NF เนื่องจากมี Partial Dependency ต้อง
ทำาการแตก Relation เพื่อลดความซำ้าซ้อนของ
ข้อมูล ดังนี้
Employee(Emp_id , Course_No ,
full functional dependency
Second Normal Form
(2NF)
Emp
_ID
Emp_Na
me
Dept Salar
y
001 วนิดา แซ่
ลี้
Market
ing
12,5
00
010 กสมา
ร่มเย็น
IT 11,0
00
091 นพพร
บุญชู
IT 12,0
00
110 วิลาวัลย์ ขำา Account 15,00
Employee
Cours
e_No
Course_
Name
01 Acc PAC
02 3D Studio
max
03 SPSS
Course
Third Normal Form :
3NF
3. Third Normal Form : 3NF
Relation หนึ่งๆ จะอยู่ในรูปแบบ 3NF
ก็ต่อเมื่อ
“1. Relation นั้นๆ ต้องอยู่ในรูปแบบ
2NF
2. Attribute ทุกตัวที่ไม่ได้เป็นคีย์หลัก
ไม่มีคุณสมบัติในการกำาหนดค่าของ
Attribute อื่นที่ไม่ใช่คีย์หลัก หรือ
Third Normal Form :
3NF
Emp_ID Name Job_Class Chg_Hour
Transitive Dependency
ตาราง Employee ไม่ได้อยู่ในรูป 3NF เนื่องจากมี
Transitive Dependency ต้องทำาการแตก
Relation เพื่อลดความซำ้าซ้อนของข้อมูล ดังนี้
Employee(Emp_id ,Name, Job_Class)
Job(Job_Class, Chg_Hour)
Third Normal Form :
3NF
Employee
Course
Emp_Name
Salary
Job
Emp_ID
D_Complete
Course_No Course_Name
TRAINED
Job
Chg_Hour
WORK_ON
Job_Class
ดีเพนเดนซีไดอะแกรม
(Dependency diagram)
แสดงขั้นตอนของการทำา
Normalization
Entity
ที่มีข้อมูลซำ้าซ้อน
1NF
2NF
3NF
กำาจัดกลุ่มข้อมูลซำ้าซ้อน
กำาจัด
Partial
Dependen
cy
กำาจัด
Transitive
Dependen
cy
Boyce/Codd Normal
Form : BCNF
4. Boyce/Codd Normal Form :
BCNF
Relation หนึ่งๆ จะอยู่ในรูปแบบ
BCNF ก็ต่อเมื่อ
“1. Relation นั้นๆ ต้องอยู่ในรูปแบบ
3NF
2. ไม่มี Attribute อื่นใน Relation ที่
สามารถระบุค่าของ Attribute ที่เป็น
Boyce-Codd normal
form (BCNF)
ลักษณะ 3NF ที่ไม่ใช่ BCNF
 สังเกตว่ายังมี Attribute หนึ่งยัง
สามารถระบุค่า Attribute ที่เป็น
ส่วนหนึ่งของ Primary key (C 
B)
Boyce/Codd Normal
Form : BCNF
เช่น หากเลือก S# และ P# เป็นคีย์
หลักแล้วจะเกิดปัญหาใน Relation นี้
คือ SNAME จะมีคุณสมบัติในการระบุ
ค่าของ Attribute S# ได้
S# SNAME P# QTY
Boyce/Codd Normal
Form : BCNF
ดังนั้น Relation SUPPLIER3 ต้องทำำกำร
แตกรีเลชันออก โดยแยก attribute ที่
สำมำรถระบุค่ำของ PK แยกเป็นอีกรีเลชัน
หนึ่ง คือ
S# SNAME P# QTY
Boyce-Codd normal
form (BCNF)
ประเด็นที่ควรคำำนึงถึง
ในกำรทำำให้เป็นรูปแบบ
บรรทัดฐำน (Normal Form)
กำรแตก relation มำกเกินไป
(Overnormalization)
กำรดีนอร์มอลไลเซชัน
(Denormalization)
กำรแตก relation มำกเกิน
ไป (Overnormalization)
วัตถุประสงค์ของกำรทำำให้เป็นรูปแบบ
บรรทัดฐำน คือ
 เพื่อลดปัญหำในด้ำนควำมซำ้ำซ้อน
ของข้อมูล
 เพื่อลดปัญหำในเรื่องกำรเพิ่ม กำรลบ
หรือกำรปรับปรุงข้อมูล
โดยทั่วไปกำรออกแบบในระดับแนวคิด
ผู้ออกแบบจะพยำยำมวิเครำะห์
ด้วยเหตุผลดังกล่ำว ผู้ออกแบบไม่ควรพยำยำม
ที่จะแตก relation มำกเกินควำมจำำเป็น
(Overnormalization) เพรำะ
 กำรแตก relation ออกเป็น relation ย่อย
มำกเกินไปมีผลต่อประสิทธิภำพในกำร
ทำำงำนของฐำนข้อมูล เช่น ในกำรค้นคืน
ข้อมูลจะต้องใช้เวลำมำกกว่ำเดิม เป็นต้น
กำรดีนอร์มอลไลเซชัน
(Denormalization)
เป็นกระบวนกำรที่ตรงกันข้ำมกับกำร
Normalization โดยยอมเก็บข้อมูลที่มี
ควำมซำ้ำซ้อนกันบ้ำง เพื่อแลกกับควำมเร็ว
ในกำรเรียกดูข้อมูลที่มำกขึ้น เช่น
relation นั้นควรจะปรับให้อยู่ในรูปแบบ
3NF แต่หยุดอยู่เพียงรูปแบบ 2NF
เป็นต้น
อำจเป็นเพรำะเหตุผลในเรื่องของ
กำรดีนอร์มอลไลเซชันอำจก่อให้เกิดปัญหำควำม
ซำ้ำซ้อนของข้อมูล เกิดขึ้นได้
 ควรมีกำรระบุสำเหตุ และวิธีกำรในกำร
ปรับปรุงข้อมูลในโปรแกรมประยุกต์ใช้
งำน เพื่อป้องกันไม่ให้เกิดปัญหำข้อมูลไม่
ถูกต้อง
 ถ้ำข้อมูลใน relation นั้นๆ ส่วนใหญ่จะ
เป็นกำรเรียกดูข้อมูล (Select) มำกกว่ำ
กำรเพิ่ม ลบ หรือปรับปรุงข้อมูล เพื่อเพิ่ม
กำรดีนอร์มอลไลเซชัน
(Denormalization)

More Related Content

What's hot

ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
Watuka Wannarun
 
สรุปกลุ่มที่ 1,2,3,5,6
สรุปกลุ่มที่ 1,2,3,5,6สรุปกลุ่มที่ 1,2,3,5,6
สรุปกลุ่มที่ 1,2,3,5,6
Khanut Anusatsanakul
 
การใช้งานโปรแกรม Excel เบื้องต้น
การใช้งานโปรแกรม Excel เบื้องต้นการใช้งานโปรแกรม Excel เบื้องต้น
การใช้งานโปรแกรม Excel เบื้องต้น
Meaw Sukee
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
kruthanyaporn
 
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูลความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
kruthanyaporn
 
ข้อสอบปฏิบัติ Microsoft Word
ข้อสอบปฏิบัติ Microsoft Wordข้อสอบปฏิบัติ Microsoft Word
ข้อสอบปฏิบัติ Microsoft Word
Supreeyar philarit
 
กรอบเนื้อหาแผนที่2
กรอบเนื้อหาแผนที่2กรอบเนื้อหาแผนที่2
กรอบเนื้อหาแผนที่2
Wittayakorn Yasingthong
 

What's hot (19)

บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูลบทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
 
Aritc excel2013 2
Aritc excel2013 2Aritc excel2013 2
Aritc excel2013 2
 
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
 
บทที่ 1
บทที่ 1บทที่ 1
บทที่ 1
 
สรุปกลุ่มที่ 1,2,3,5,6
สรุปกลุ่มที่ 1,2,3,5,6สรุปกลุ่มที่ 1,2,3,5,6
สรุปกลุ่มที่ 1,2,3,5,6
 
Unit 4 normalazation
Unit 4 normalazationUnit 4 normalazation
Unit 4 normalazation
 
การใช้งานโปรแกรม Excel เบื้องต้น
การใช้งานโปรแกรม Excel เบื้องต้นการใช้งานโปรแกรม Excel เบื้องต้น
การใช้งานโปรแกรม Excel เบื้องต้น
 
Excel2007
Excel2007Excel2007
Excel2007
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
 
การใช้โปรแกรม Microsoft Excel 2007
การใช้โปรแกรม Microsoft Excel 2007การใช้โปรแกรม Microsoft Excel 2007
การใช้โปรแกรม Microsoft Excel 2007
 
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูลความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
 
Nomalization
NomalizationNomalization
Nomalization
 
53011213054
5301121305453011213054
53011213054
 
ข้อสอบปฏิบัติ Microsoft Word
ข้อสอบปฏิบัติ Microsoft Wordข้อสอบปฏิบัติ Microsoft Word
ข้อสอบปฏิบัติ Microsoft Word
 
กรอบเนื้อหาแผนที่2
กรอบเนื้อหาแผนที่2กรอบเนื้อหาแผนที่2
กรอบเนื้อหาแผนที่2
 
ฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์ฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์
 
Excel2010
Excel2010Excel2010
Excel2010
 
งานคอมพิวเตอร์ธุรกิจ 2
งานคอมพิวเตอร์ธุรกิจ 2งานคอมพิวเตอร์ธุรกิจ 2
งานคอมพิวเตอร์ธุรกิจ 2
 
Function
FunctionFunction
Function
 

More from Tipprapa Sungsinchai

More from Tipprapa Sungsinchai (6)

ข าว It new2
ข าว It new2ข าว It new2
ข าว It new2
 
ข่าว It new
ข่าว It newข่าว It new
ข่าว It new
 
ข่าว It new
ข่าว It new ข่าว It new
ข่าว It new
 
โปรแกรมย่อยและฟังก์ชั่นมาตรฐาน
โปรแกรมย่อยและฟังก์ชั่นมาตรฐานโปรแกรมย่อยและฟังก์ชั่นมาตรฐาน
โปรแกรมย่อยและฟังก์ชั่นมาตรฐาน
 
งานย อยท _ 2
งานย อยท _ 2งานย อยท _ 2
งานย อยท _ 2
 
ข่าว It
ข่าว Itข่าว It
ข่าว It
 

Normalization