Normalization
Normalization คือ การแปลงข้อมูลที่อยู่ในรูปแบบความซ้ำซ้อนให้อยู่ในรูปแบบที่ง่ายต่อการนำไปใช้งาน จะได้ไม่เกิดข้อผิดพลาด ไม่เกิดความขัดเเย้งของข้อมูล หรือที่เรียกว่า ความผิดปกติ ซึ่งความผิดปกตินี้สามารถเเบ่งออกได้เป็น 3 ลักษณะ คือ
- ความผิดพลาดจากการเพิ่มข้อมูล
- ความผิดพลาดจากการลบข้อมูล
- ความผิดพลาดจากการเเก้ไขข้อมูล
วัตถุประสงค์ของการทำ Normalization
- เพื่อลดความซับซ้อนของข้อมูล(เมื่อลดความซับซ้อนเเล้ว เนื้อที่ที่ใช้ในการจัดเก็บข้อมูลก็จะลดลงตามไปด้วย)
- ลดปัญหาความไม่ถูกต้องของข้อมูล
- ลดความผิดพลาดที่เกิดจากการปรับปรุงข้อมูล
**การออกแบบฐานข้อมูลที่ดีจะต้องทำให้เกิดความซับซ้อนของข้อมูลให้น้อยที่สุด**
การทำ Normalization
การปรับปรุงโครงสร้างของข้อมูลที่มีความซ้ำซ้อนให้อยูในรูปแบบบรรทัดฐาน (Normal Form) ซึ่งการทำ Normalization มีทั้งหมด 5 ระดับ แต่การใช้งานในปัจจุบันนี้ทำถึงระดับที่ 3 ก็เพียงพอเเล้ว
- First Normal Form (1NF)
กำจัดกลุ่มข้อมูลที่มีความซ้ำซ้อน (Repeating Group), แอททริบิวในเเต่ละ Record จะต้องเป็น Single Value
ตัวอย่างการทำ First Normal Form (1NF)
ทำให้อยู่ในรูปแบบของ First Normal Form (1NF) ได้ดังนี้
- Second Normal From (2NF)
ต้องเป็น First Normal Form (1NF) มาก่อน และ แอตทริบิวที่ไม่ใช่คีย์หลักต้องขึ้นกับคีย์หลักเท่านั้น
ตัวอย่างการทำ Second Normal Form (2NF)
จากภาพที่ 1.2 สรุป Primary Key ได้ดังนี้
ทำให้อยู่ในรูปแบบของ Second Normal Form (2NF) ได้ดังนี้
- Third Normal From (3NF)
ต้องเป็น Second Normal Form (2NF) มาก่อน และ แอตทริบิวที่ไม่ใช่คีย์หลักจะต้องไม่ขึ้นต่อกันเอง
ตัวอย่างการทำ Third Normal Form (3NF)
ถึงแม้ว่าจะทำการ Normalization ในระดับ Second Normal Form (2NF) แล้ว แต่ยังคงมีปัญหาอยู่บ้างในบางครั้ง ดังตัวอย่างในภาพที่ 1.5 นี้
จากภาพที่ 1.5 มี Primary Key คือ รหัสลูกค้า เเต่มีแอตทริบิวที่ไม่ใช่คีย์หลักขึ้นต่อกันเองอยู่ เช่น ชื่อหมวด ขึ้นกับ หมวดของหนังสือ
ทำให้อยู่ในรูปแบบของ Third Normal Form (3NF) ได้ดังนี้
Normalization
Moderator: mindphp, ผู้ดูแลกระดาน
-
- Similar Topics
- ตอบกลับ
- แสดง
- โพสต์ล่าสุด
-
- 1 ตอบกลับ
- 1021 แสดง
-
โพสต์ล่าสุด โดย Losa
16/11/2019 5:02 pm
-
-
โพสต์ใหม่ Normalization (นอร์มัลไลเซชั่น) คืออะไร
โดย md040 » 28/11/2016 10:02 am » ใน SQL - Database - 0 ตอบกลับ
- 1436 แสดง
-
โพสต์ล่าสุด โดย md040
28/11/2016 10:02 am
-
-
-
โพสต์ใหม่ Normalization (นอร์มัลไลเซชัน) ลดปัญหาการซ้ำซ้อนของข้อมูลในฐานข้อมูล
โดย bom_002 » 08/03/2017 2:55 pm » ใน Programming - C/C++ & java & Python - 0 ตอบกลับ
- 825 แสดง
-
โพสต์ล่าสุด โดย bom_002
08/03/2017 2:55 pm
-
-
-
โพสต์ใหม่ Normal Form ของ Normalization มีอะไรบ้าง
โดย Patcharanan.0399 » 19/04/2018 6:36 pm » ใน Share Knowledge - 0 ตอบกลับ
- 7840 แสดง
-
โพสต์ล่าสุด โดย Patcharanan.0399
19/04/2018 6:36 pm
-
ผู้ใช้งานขณะนี้
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 90