นอมอลไลเซชันฐานข้อมูลคืออะไร
อีเอฟคอดด์ (E. F. Codd) ผู้ซึ่งน่าจะเรียกได้ว่าเป็นบิดาแห่งฐานข้อมูลรีเลชัน ได้มีการนำเสนอการนอมอลไลเซชันฐานข้อมูลเป็นครั้งแรก (ที่มา) จุดประสงค์เพื่อลดการซ้ำซ้อนกันของข้อมูลเพื่อเพิ่มประสิทธิภาพในการใช้งานฐานข้อมูล
ทำไมต้องทำนอมอลไลเซชัน
สมมติข้อมูลการสั่งของเป็นแบบตารางด้านล่าง
| สั่งของ | ||
|---|---|---|
| รหัสสั่งของ | วันที่มีการสั่งของ | ชื่อลูกค้า |
| 001 | 20205-06-12 | อวยชัย โชติจรัสวาณิช |
| 002 | 20205-06-25 | สมชาย ใจดี |
| 003 | 20205-07-03 | สมหญิง พรหล้า |
| 004 | 20205-07-27 | อวยชัย โชติจรัสวาณิช |
| 005 | 20205-08-03 | สมชาย ใจดี |
| 006 | 20205-08-27 | อวยชัย โชติจรัสวาณิช |
จากข้อมูลด้านบน มันจะมีปัญหาในการปรับแก้ข้อมูล ทั้งการเพิ่มข้อมูล แก้ข้อมูลและลบข้อมูล
ปัญหาในการเพิ่มข้อมูล: จากตารางด้านบน หากมีลูกค้าใหม่ชื่อ “สนธยา พูดน้อย” มาสมัครสมาชิกแต่ไม่เคยสั่งของเลย ก็จะไม่มีชื่อลูกค้าปรากฏอยู่ในตารางนี้
ปัญหาในการแก้ข้อมูล: หาก “อวยชัย โชติจรัสวาณิช” เปลี่ยนชื่อเป็น “อวยพร โชติจรัสวาณิช” จะต้องเปลี่ยนข้อมูลถึง 3 แถว
ปัญหาในการลบข้อมูล: หากการสั่งของหมายเลข 003 ถูกลบ ลูกค้าชื่อ “สมหญิง พรหล้า” จะหายไปจากระบบเลย ทั้งที่ลูกค้าอาจจะยังเป็นสมาชิกอยู่
หากทำนอมอลไลเซชันก็จะแก้ปัญหาเรื่องนี้ได้ ข้อมูลด้านล่างคือข้อมูลที่มีการทำนอมอลไลเซชันแล้วโดยที่ข้อมูลยังคงเดิม
| สั่งของ | ||
|---|---|---|
| รหัสสั่งของ | วันที่มีการสั่งของ | รหัสลูกค้า |
| 001 | 20205-06-12 | 1 |
| 002 | 20205-06-25 | 2 |
| 003 | 20205-07-03 | 3 |
| 004 | 20205-07-27 | 1 |
| 005 | 20205-08-03 | 2 |
| 006 | 20205-08-27 | 1 |
| ลูกค้า | |
|---|---|
| รหัสลูกค้า | ชื่อลูกค้า |
| 1 | อวยชัย โชติจรัสวาณิช >> อวยพร โชติจรัสวาณิช |
| 2 | สมชาย ใจดี |
| 3 | สมหญิง พรหล้า |
| 4 | สนธยา พูดน้อย |
เมื่อทำนอมอลไลเซชัน ก็จะสามารถแก้ไขปัญหา การเพิ่ม การแก้และการลบข้อมูลได้
การแก้ไขปัญหาในการเพิ่มข้อมูล(สีเขียว): “สนธยา พูดน้อย” มีชื่ออยู่ในระบบได้ โดยที่ไม่จำเป็นต้องมีการสั่งของก่อน
การแก้ไขปัญหาในการแก้ข้อมูล(สีน้ำเงิน): สามารถเปลี่ยนชื่อ “อวยชัย โชติจรัสวาณิช” เป็น “อวยพร โชติจรัสวาณิช” จาก 3 แถว เหลือแถวเดียว
การแก้ไขปัญหาในการลบข้อมูล(สีแดง): สามารถลบการสั่งของหมายเลข 003 โดยที่ “่สมหญิง พรหล้า” ยังคงมีชื่ออยู่ในระบบอยู่
สรุป
จากตัวอย่างข้างต้นจะเห็นได้ว่า การทำนอมอลไลเซชันทำให้มีการแบ่งประเภทข้อมูลออกเป็นส่วน ทำให้การแก้ไขข้อมูลในส่วนหนึ่ง จะไม่ส่งกระทบกับอีกส่วนหรือมีผลกระทบกับอีกส่วนหนึ่งน้อยที่สุด ซึ่งทำให้การแก้ไขข้อมูลมีประสิทธิภาพมากขึ้น
