1

นอร์ม ล ไลเซชัน
ั
NORMALIZATION
หัว ข้อ การบรรยาย
2

ความหมายและจุด ประสงค์ข องการน
อร์ม ล ไลเซชัน
ั
่
 ฟัง ก์ช น การขึ้น ต่อ กัน (Function
ั
Dependencies)
 กระบวนการนอร์ม ัล ไลเซชัน
่

3

ความหมายและจุด ประสงค์ข อง
การนอร์ม ัล ไลเซชั่น




นอร์มัลไลเซชั่น เป็นทฤษฎีที่ผออกแบบฐาน
ู้
ข้อมูลจะต้องนำามาใช้ในการแปลงข้อมูลที่อยู่ใน
รูปแบบที่ซับซ้อน ให้อยู่ในรูปแบบที่ง่ายต่อ
การนำาไปใช้งานและก่อให้เกิดปัญหาน้อยที่สุด
ในบทนี้จะสอนกระบวนการนอร์มัลไลเซชัน ใน
3 ระดับด้วยกันคือ
 นอร์มัลไลชั่นระดับที่ 1 หรือเรียกว่า 1NF
 นอร์มัลไลชั่นระดับที่ 2 หรือเรียกว่า 2NF
 นอร์มัลไลชั่นระดับที่ 3 หรือเรียกว่า 3NF
4

วัต ถุป ระสงค์ข องนอร์ม ัล ไลซ์
(Normalization)






ลดความซำ้าซ้อนของข้อมูล เมื่อลดความซำ้า
ซ้อนก็ทำาให้ลดเนือหาที่ใช้ในการจัดเก็บข้อมูล
้
ลดปัญหาความไม่ถูกต้องของข้อมูล เมื่อข้อมูล
ไม่เกิดความซำ้าซ้อนทำาให้การปรับปรุงข้อมูล
สามารถทำาได้จากแหล่งข้อมูลเพียงแหล่งเดียว
ลดความผิดพลาดที่อาจเกิดจากการปรับปรุง
ข้อมูล (update anomalies) ซึ่งประกอบด้วย
5

ความซำ้า ซ้อ นและข้อ ผิด พลาด
จากการปรับ ปรุง ข้อ มูล


แนวคิดหลักอันสำาคัญของการออกแบบฐานข้อมูล
เชิงสัมพันธ์ คือ การออกแบบให้มีการเก็บข้อมูลซำ้า
ซ้อนน้อยที่สุด


เพื่อประหยัดเนื้อที่ในการเก็บข้อมูลและลดปัญหาที่จะ
เกิดดังตัวอย่างต่อไปนี้
ความผิด พลาดจากการลบข้อ มูล
 ถ้า ลบข้อ มูล หนึ่ง แล้ว ส่ง ผลกระทบกับ ข้อ มูล อื่น ที่
6
ต้อ งถูก ลบตาม
 เช่น

พนัก งานรหัส SG21 ลาออก ก็ล บแถวนัน ออก
้
 ข้อ มูล สาขา B005 ก็จ ะหายไปด้ว ย

ข้อ ผิด พลาดจากการเปลี่ย นแปลง
 ในกรณีท ี่ต ้อ งการเปลี่ย นแปลงข้อ มูล บางตัว ของ
สาขา



เช่น เปลีย นที่อ ยู่ข อง B003 ก็ต ้อ งเปลีย นหลายที่
่
่
ถ้า หากมีพ นัก งานสัง กัด สาขานี้ห ลายทีก ็ต อ งไปตาม
่ ้
แก้ท ุก ๆ ที่
ฟัง ก์ช น การขึ้น ต่อ กัน (Functional
ั่
Dependency : FD)
7

ถ้า ให้ X และ Y เป็น Attribute ใน
Relation ใดๆ แทนด้ว ย R(X,Y)
Attribute Y เป็น จะถูก เรีย กว่า มี
ฟัง ก์ช น การขึ้น ต่อ กัน กับ แอททริบ ว ต์
ั
ิ
X ก็ต ่อ เมือ แต่ล ะค่า ที่ไ ม่ซ ำ้า กัน ของ
่
แอททริบ ว ต์ X มีข ้อ มูล ของ Y ที่
ิ
เกี่ย วข้อ งกับ X เพีย ง 1 ค่า
 เขีย นแทนด้ว ย สัญ ลัก ษณ์
X Y

ชนิด ของฟัง ก์ช น การขึ้น ต่อ กัน ( Functional
ั่
Dependency :FD)
8







1) Complete dependencies การขึ้น ต่อ กัน
อย่า งสมบูร ณ์
แอททริบิวต์ทไม่ใช่คีย์หลัก ขึ้นต่อ แอททริบิวต์หรือ
ี่
กลุ่มของแอททริบิวต์ทเป็นคีย์หลัก
ี่
ตัวอย่าง ตารางทีมีแอทริบิวต์ค่าเดียวทำาหน้าทีเป็น
่
่
คีย์หลัก คืหมายเลขบัต รตรประชาชน ต ร
อ หมายเลขบั ชื่อ เจ้า ของบั
ประชาชน

344010063493 กนกวรรณ พ่วง
1
พงษ์
343728342034 ชาติชาย เตชะ
3
วงศ์

หมายเลขบัตรประชาชน  ชื่อ
293874203948 กิ่งกาญ เดชา
ชนิด ของฟัง ก์ช น การขึ้น ต่อ กัน ( Functional
ั่
Dependency :FD)
9






2) Partial Dependency (การขึ้นต่อกันบางส่วน)
เกิดขึ้นเมือคียหลักประกอบด้วยหลาย Attribute รวม
่
์
กัน
เมือแอตทริบิวต์บางส่วนของคียหลัก สามารถไประบุค่า
่
์
แอตทริบิวต์ตวอื่น ๆ ทีไม่ใช่คีย์หลักของรีเลชั่นได้
ั
่
รหัส
นัก ศึก ษา

รหัส วิช า

รหัส นัก ศึก ษา, รหัส วิช า
รหัส วิช า

เกรด

ชื่อวิชา

Partial Dependency

เกรด , ชื่อ วิช า
ชื่อ วิช า
ชนิด ของฟัง ก์ช ั่น การขึ้น ต่อ กัน
(Functional Dependency : FD)

10

3 Transitive Dependency เกิด ขึ้น เมื่อ
Attribute ที่ไ ม่ใ ช่ Primary Key ไปขึ้น อยู่ก บ
ั
Attribute อื่น ที่ไ ม่่อ ยู่ Primary ง
ใ ช่
Key ใน
เลข
ชื่อ สกุล
ที
ตำา แหน่
รถประจำา
ประจำาเ ลชั่น นั้น ๆ
ตำา แหน่ง
รี ตัว


01

ฉัต รชัย มี
สมบัต ิ

กรุง เทพ

ผู้จ ัด การ

02

เอกชัย ใจดี

นนทบุร ี

ผู้ช ่ว ยผู้จ ัด การ

03

มนีร ัต น์
เจริญ สุข

04

ขวัญ ชัย
คำา อธิบ าย
ใจเพชร

เชีย งใหม่
ราชบุร ี

ผู้จ ัด การ
ผู้ช ่ว ยผู้จ ัด การ

BMW
Honda
BMW
Honda

เลขประจำา ตัว เป็น คีย ์ห ลัก (Primary
Key) ของตาราง
เลขประจำา ตัว
ชื่อ สกุล , ที่อ ยู่,
นอร์ม ัล ไลซ์เ ซชั่น
(Normalization)

11





Normalization คือ กระบวนการปรับปรุงโครงสร้าง
ข้อมูลของฐานข้อมูลทีมความซำ้าซ้อนให้อยู่ในรูปแบบ
่ ี
ทีเป็นบรรทัดฐาน (Normal Form)
่
การนอร์มลไลเซชันมีได้ถึง 5 ระดับ ในระดับที่ 3 ก็
ั
จัดว่าเพียงพอสำาหรับการออกแบบฐานข้อมูลใน
ปัจจุบัน
 1NF - กำาจัด repeating group
(กำาจัดกลุ่มของข้อมูลทีมความซำ้าซ้อน)
่ ี
 2NF - กำาจัด partial dependency
(กำาจัดการขึ้นต่อกันบางส่วน)
 3NF - กำาจัด transitive dependency
First Normal Form (1NF)
12

ทุก Attribute ในแต่ล ะ record จะเป็น single
value ไม่ม ี ค่า ของกลุม ข้อ มูล ที่ซ ำ้า กัน
่
(Repeating Group)
 ข้อ มูล ทุก แถว (Tuple) ต้อ งมีค ่า ไม่ซ ำ้า กัน
ตารางทีม ล ัก ษณะข้อ มูล เป็น Repeating group
่ ี


รหัส
ชื่อ
นัก ศึก ษา
001
สมชา
ย
002

ธีร
ชาย

นามสกุล
สมใจนึก

บุญ มาศ

รหัส วิช าที่ล ง
ทะเบีย น
204-101 Repeating Group
204-204
204-205
204-102
Second Normal Form (2NF)
13







1. ต้อ งเป็น First Normal Form (1NF) มา
ก่อ น
2. ต้อ งไม่ม ี Partial Dependency (การขึ้น ต่อ
กัน บางส่ว น)
สรุป ก็ค ือ นอร์ม ัล ไลเซชัน ระดับ ที่ 2 (Second
normal form : 2NF) เป็น การขจัด แอตตริบ ิว
ที่ ไม่ข ึ้น กับ ทั้ง ส่ว นของคีย ์ห ลัก
ออกไป เพื่อ ให้แ อตตริบ ิว อื่น ทั้ง หมดขึ้น ตรง
กับ ส่ว นที่เ ป็น คีย ์ห ลัก ทั้ง หมดเท่า นั้น
Second Normal Form (2NF)
14



วิธ ีข จัด ปัญ หา

1) ต้อ งสร้า งตารางเพิ่ม
2) นำา คอลัม ย์ท ี่ม ีป ญ หาไปใส่ใ นตารางที่
ั

สร้า งเพิ่ม
3) กำา หนดคีย ์ห ลัก ให้ก ับ ตารางที่ส ร้า งใหม่
4) แอททริบ ว ต์ใ ดในตารางเดิม เมื่อ นำา ไปใส่
ิ
ในตารางใหม่ ให้ต ัด ออกจากตารางเดิม
ยกเว้น ส่ว นของคีย ์ห ลัก คงไว้ใ นตาราง
เดิม
Third Normal Form (3NF)
15

1.Relation นั้นจะต้องมีคณสมบัติ 2NF
ุ
 2.ต้องไม่มความสัมพันธ์ระหว่าง Non-key
ี
Attribute หรือ
ไม่มี Transitive Dependency
สรุป : แอททริบวต์ที่ไม่ใช่คียหลัก ต้องไม่ขน
ิ
์
ึ้
ต่อกันเอง

Third Normal Form (3NF)
16

วิธีขจัดปัญหา
1. สร้างตารางเพิ่ม
2. นำาแอททริบิวต์ที่มีปัญหามาใส่ในตาราง
ใหม่
3. กำาหนดคีย์หลัก
4. แอททริบวต์ที่ย้ายจากตารางเดิมไปใส่
ิ
ในตารางใหม่ให้ตัดออกจากตารางเดิม
5. นำาคียหลักในข้อ 3 ไปใส่ในตารางเดิม
์

สรุป Normalization
17







1NF ทุกแอททริบิวต์ในแต่ละแถวมีค่าของข้อมูล
เพียงค่าเดียว
2NF รีเลชันนั้นต้องไม่มีความสัมพันธ์ระหว่างแอท
ทริบิวต์แบบบางส่วน (แอททริบิวต์ทุกตัวต้องขึ้นกับ
คีย์หลักทุกตัว ไม่ขึ้นอยู่กับตัวใดตัวหนึ่ง)
3NF ทุกแอททริบิวต์ที่ไม่ใช่คีย์หลักไม่มีคุณสมบัติ
ในการกำาหนดค่าของ
แอททริบิวต์อื่น
18

จัดทำาโดย
1. นาย พิทยุตม์ วรรณณะ เลขที่ 10
2. นาย สุทธิชาติ สืบเรือง เลขที่ 12
3. นาย อภิสิทธิ์ จันมั่นคง เลขที่ 13
4. นาย กันตพงศ์ ทัพใจหาญ เลขที่ 14
5. นาย วรากร วงษ์รุ่ง เลขที่ 19
6.นาย กิตติพงษ์ มโนจั่นมั่นคง เลขที่ 20
ชั้น มัธยมศึกษาปีที่ 5/3 

นอร์มัลไลเซชัน Normalization

  • 1.
  • 2.
    หัว ข้อ การบรรยาย 2 ความหมายและจุดประสงค์ข องการน อร์ม ล ไลเซชัน ั ่  ฟัง ก์ช น การขึ้น ต่อ กัน (Function ั Dependencies)  กระบวนการนอร์ม ัล ไลเซชัน ่ 
  • 3.
    3 ความหมายและจุด ประสงค์ข อง การนอร์มัล ไลเซชั่น   นอร์มัลไลเซชั่น เป็นทฤษฎีที่ผออกแบบฐาน ู้ ข้อมูลจะต้องนำามาใช้ในการแปลงข้อมูลที่อยู่ใน รูปแบบที่ซับซ้อน ให้อยู่ในรูปแบบที่ง่ายต่อ การนำาไปใช้งานและก่อให้เกิดปัญหาน้อยที่สุด ในบทนี้จะสอนกระบวนการนอร์มัลไลเซชัน ใน 3 ระดับด้วยกันคือ  นอร์มัลไลชั่นระดับที่ 1 หรือเรียกว่า 1NF  นอร์มัลไลชั่นระดับที่ 2 หรือเรียกว่า 2NF  นอร์มัลไลชั่นระดับที่ 3 หรือเรียกว่า 3NF
  • 4.
    4 วัต ถุป ระสงค์ของนอร์ม ัล ไลซ์ (Normalization)    ลดความซำ้าซ้อนของข้อมูล เมื่อลดความซำ้า ซ้อนก็ทำาให้ลดเนือหาที่ใช้ในการจัดเก็บข้อมูล ้ ลดปัญหาความไม่ถูกต้องของข้อมูล เมื่อข้อมูล ไม่เกิดความซำ้าซ้อนทำาให้การปรับปรุงข้อมูล สามารถทำาได้จากแหล่งข้อมูลเพียงแหล่งเดียว ลดความผิดพลาดที่อาจเกิดจากการปรับปรุง ข้อมูล (update anomalies) ซึ่งประกอบด้วย
  • 5.
    5 ความซำ้า ซ้อ นและข้อผิด พลาด จากการปรับ ปรุง ข้อ มูล  แนวคิดหลักอันสำาคัญของการออกแบบฐานข้อมูล เชิงสัมพันธ์ คือ การออกแบบให้มีการเก็บข้อมูลซำ้า ซ้อนน้อยที่สุด  เพื่อประหยัดเนื้อที่ในการเก็บข้อมูลและลดปัญหาที่จะ เกิดดังตัวอย่างต่อไปนี้
  • 6.
    ความผิด พลาดจากการลบข้อ มูล ถ้า ลบข้อ มูล หนึ่ง แล้ว ส่ง ผลกระทบกับ ข้อ มูล อื่น ที่ 6 ต้อ งถูก ลบตาม  เช่น พนัก งานรหัส SG21 ลาออก ก็ล บแถวนัน ออก ้  ข้อ มูล สาขา B005 ก็จ ะหายไปด้ว ย ข้อ ผิด พลาดจากการเปลี่ย นแปลง  ในกรณีท ี่ต ้อ งการเปลี่ย นแปลงข้อ มูล บางตัว ของ สาขา   เช่น เปลีย นที่อ ยู่ข อง B003 ก็ต ้อ งเปลีย นหลายที่ ่ ่ ถ้า หากมีพ นัก งานสัง กัด สาขานี้ห ลายทีก ็ต อ งไปตาม ่ ้ แก้ท ุก ๆ ที่
  • 7.
    ฟัง ก์ช นการขึ้น ต่อ กัน (Functional ั่ Dependency : FD) 7 ถ้า ให้ X และ Y เป็น Attribute ใน Relation ใดๆ แทนด้ว ย R(X,Y) Attribute Y เป็น จะถูก เรีย กว่า มี ฟัง ก์ช น การขึ้น ต่อ กัน กับ แอททริบ ว ต์ ั ิ X ก็ต ่อ เมือ แต่ล ะค่า ที่ไ ม่ซ ำ้า กัน ของ ่ แอททริบ ว ต์ X มีข ้อ มูล ของ Y ที่ ิ เกี่ย วข้อ งกับ X เพีย ง 1 ค่า  เขีย นแทนด้ว ย สัญ ลัก ษณ์ X Y 
  • 8.
    ชนิด ของฟัง ก์ชน การขึ้น ต่อ กัน ( Functional ั่ Dependency :FD) 8    1) Complete dependencies การขึ้น ต่อ กัน อย่า งสมบูร ณ์ แอททริบิวต์ทไม่ใช่คีย์หลัก ขึ้นต่อ แอททริบิวต์หรือ ี่ กลุ่มของแอททริบิวต์ทเป็นคีย์หลัก ี่ ตัวอย่าง ตารางทีมีแอทริบิวต์ค่าเดียวทำาหน้าทีเป็น ่ ่ คีย์หลัก คืหมายเลขบัต รตรประชาชน ต ร อ หมายเลขบั ชื่อ เจ้า ของบั ประชาชน 344010063493 กนกวรรณ พ่วง 1 พงษ์ 343728342034 ชาติชาย เตชะ 3 วงศ์ หมายเลขบัตรประชาชน  ชื่อ 293874203948 กิ่งกาญ เดชา
  • 9.
    ชนิด ของฟัง ก์ชน การขึ้น ต่อ กัน ( Functional ั่ Dependency :FD) 9    2) Partial Dependency (การขึ้นต่อกันบางส่วน) เกิดขึ้นเมือคียหลักประกอบด้วยหลาย Attribute รวม ่ ์ กัน เมือแอตทริบิวต์บางส่วนของคียหลัก สามารถไประบุค่า ่ ์ แอตทริบิวต์ตวอื่น ๆ ทีไม่ใช่คีย์หลักของรีเลชั่นได้ ั ่ รหัส นัก ศึก ษา รหัส วิช า รหัส นัก ศึก ษา, รหัส วิช า รหัส วิช า เกรด ชื่อวิชา Partial Dependency เกรด , ชื่อ วิช า ชื่อ วิช า
  • 10.
    ชนิด ของฟัง ก์ชั่น การขึ้น ต่อ กัน (Functional Dependency : FD) 10 3 Transitive Dependency เกิด ขึ้น เมื่อ Attribute ที่ไ ม่ใ ช่ Primary Key ไปขึ้น อยู่ก บ ั Attribute อื่น ที่ไ ม่่อ ยู่ Primary ง ใ ช่ Key ใน เลข ชื่อ สกุล ที ตำา แหน่ รถประจำา ประจำาเ ลชั่น นั้น ๆ ตำา แหน่ง รี ตัว  01 ฉัต รชัย มี สมบัต ิ กรุง เทพ ผู้จ ัด การ 02 เอกชัย ใจดี นนทบุร ี ผู้ช ่ว ยผู้จ ัด การ 03 มนีร ัต น์ เจริญ สุข 04 ขวัญ ชัย คำา อธิบ าย ใจเพชร เชีย งใหม่ ราชบุร ี ผู้จ ัด การ ผู้ช ่ว ยผู้จ ัด การ BMW Honda BMW Honda เลขประจำา ตัว เป็น คีย ์ห ลัก (Primary Key) ของตาราง เลขประจำา ตัว ชื่อ สกุล , ที่อ ยู่,
  • 11.
    นอร์ม ัล ไลซ์เซชั่น (Normalization) 11   Normalization คือ กระบวนการปรับปรุงโครงสร้าง ข้อมูลของฐานข้อมูลทีมความซำ้าซ้อนให้อยู่ในรูปแบบ ่ ี ทีเป็นบรรทัดฐาน (Normal Form) ่ การนอร์มลไลเซชันมีได้ถึง 5 ระดับ ในระดับที่ 3 ก็ ั จัดว่าเพียงพอสำาหรับการออกแบบฐานข้อมูลใน ปัจจุบัน  1NF - กำาจัด repeating group (กำาจัดกลุ่มของข้อมูลทีมความซำ้าซ้อน) ่ ี  2NF - กำาจัด partial dependency (กำาจัดการขึ้นต่อกันบางส่วน)  3NF - กำาจัด transitive dependency
  • 12.
    First Normal Form(1NF) 12 ทุก Attribute ในแต่ล ะ record จะเป็น single value ไม่ม ี ค่า ของกลุม ข้อ มูล ที่ซ ำ้า กัน ่ (Repeating Group)  ข้อ มูล ทุก แถว (Tuple) ต้อ งมีค ่า ไม่ซ ำ้า กัน ตารางทีม ล ัก ษณะข้อ มูล เป็น Repeating group ่ ี  รหัส ชื่อ นัก ศึก ษา 001 สมชา ย 002 ธีร ชาย นามสกุล สมใจนึก บุญ มาศ รหัส วิช าที่ล ง ทะเบีย น 204-101 Repeating Group 204-204 204-205 204-102
  • 13.
    Second Normal Form(2NF) 13    1. ต้อ งเป็น First Normal Form (1NF) มา ก่อ น 2. ต้อ งไม่ม ี Partial Dependency (การขึ้น ต่อ กัน บางส่ว น) สรุป ก็ค ือ นอร์ม ัล ไลเซชัน ระดับ ที่ 2 (Second normal form : 2NF) เป็น การขจัด แอตตริบ ิว ที่ ไม่ข ึ้น กับ ทั้ง ส่ว นของคีย ์ห ลัก ออกไป เพื่อ ให้แ อตตริบ ิว อื่น ทั้ง หมดขึ้น ตรง กับ ส่ว นที่เ ป็น คีย ์ห ลัก ทั้ง หมดเท่า นั้น
  • 14.
    Second Normal Form(2NF) 14  วิธ ีข จัด ปัญ หา 1) ต้อ งสร้า งตารางเพิ่ม 2) นำา คอลัม ย์ท ี่ม ีป ญ หาไปใส่ใ นตารางที่ ั สร้า งเพิ่ม 3) กำา หนดคีย ์ห ลัก ให้ก ับ ตารางที่ส ร้า งใหม่ 4) แอททริบ ว ต์ใ ดในตารางเดิม เมื่อ นำา ไปใส่ ิ ในตารางใหม่ ให้ต ัด ออกจากตารางเดิม ยกเว้น ส่ว นของคีย ์ห ลัก คงไว้ใ นตาราง เดิม
  • 15.
    Third Normal Form(3NF) 15 1.Relation นั้นจะต้องมีคณสมบัติ 2NF ุ  2.ต้องไม่มความสัมพันธ์ระหว่าง Non-key ี Attribute หรือ ไม่มี Transitive Dependency สรุป : แอททริบวต์ที่ไม่ใช่คียหลัก ต้องไม่ขน ิ ์ ึ้ ต่อกันเอง 
  • 16.
    Third Normal Form(3NF) 16 วิธีขจัดปัญหา 1. สร้างตารางเพิ่ม 2. นำาแอททริบิวต์ที่มีปัญหามาใส่ในตาราง ใหม่ 3. กำาหนดคีย์หลัก 4. แอททริบวต์ที่ย้ายจากตารางเดิมไปใส่ ิ ในตารางใหม่ให้ตัดออกจากตารางเดิม 5. นำาคียหลักในข้อ 3 ไปใส่ในตารางเดิม ์ 
  • 17.
    สรุป Normalization 17    1NF ทุกแอททริบิวต์ในแต่ละแถวมีค่าของข้อมูล เพียงค่าเดียว 2NFรีเลชันนั้นต้องไม่มีความสัมพันธ์ระหว่างแอท ทริบิวต์แบบบางส่วน (แอททริบิวต์ทุกตัวต้องขึ้นกับ คีย์หลักทุกตัว ไม่ขึ้นอยู่กับตัวใดตัวหนึ่ง) 3NF ทุกแอททริบิวต์ที่ไม่ใช่คีย์หลักไม่มีคุณสมบัติ ในการกำาหนดค่าของ แอททริบิวต์อื่น
  • 18.
    18 จัดทำาโดย 1. นาย พิทยุตม์วรรณณะ เลขที่ 10 2. นาย สุทธิชาติ สืบเรือง เลขที่ 12 3. นาย อภิสิทธิ์ จันมั่นคง เลขที่ 13 4. นาย กันตพงศ์ ทัพใจหาญ เลขที่ 14 5. นาย วรากร วงษ์รุ่ง เลขที่ 19 6.นาย กิตติพงษ์ มโนจั่นมั่นคง เลขที่ 20 ชั้น มัธยมศึกษาปีที่ 5/3