การนอร์มัลไลเซชัน (Normalization)

normalization      ปกติแล้ว ก่อนเริ่มการเขียน E-R Diagram ผมจะจัดเรียงข้อมูลเพื่อลดความซ้ำซ้อนของข้อมูลที่จะเก็บก่อน โดยกระบวนการจัดเรียงข้อมูลนั้น สากลทั่วไปเรียกว่าการทำ Normalization (นอร์มัลไลเซชัน) 

     

การ Normalization (นอร์มัลไลเซชัน) คือ

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

     การนอร์มัลไลเซชันนั้นคือทำข้อมูลดิบที่เรามี มาวิเคราะห์และแยกแยะออกมาเป็นตารางต่าง ๆ โดยการทำให้อยู่ในรูปแบบ Normal Form แต่ละระดับ ดังนี้

ระดับ 0 เป็นตารางที่มีลักษณะข้อมูลเป็นค่าของกลุ่มข้อมูลที่ซ้ำกัน [ไม่เป็นรูปแบบ (Unnormal Form)]

นอร์มัลฟอร์ม – ระดับที่1 – (First Normal Form (1NF)), ทุกแอททริบิวต์ในแต่ละแถวมีค่าของข้อมูลเพียงค่าเดียว

นอร์มัลฟอร์ม – ระดับที่2 – (Second Normal Form (2NF)), ปรับมาจากระดับที่1 รีเลชันนั้นต้องไม่มีความสัมพันธ์ระหว่างแอททริบิวต์แบบบางส่วน (แอททริบิวต์ทุกตัวต้องขึ้นกับคีย์หลักทุกตัว ไม่ขึ้นอยู่กับตัวใดตัวหนึ่ง)

นอร์มัลฟอร์ม – ระดับที่3 – (Third Normal Form (3NF)), ปรับมาจากระดับที่2 ทุกแอททริบิวต์ที่ไม่ใช่คีย์หลักไม่มีคุณสมบัติในการกำหนดค่าของแอททริบิวต์อื่น

นอร์มัลฟอร์ม – บอยซ์คอดด์ (Boyce-Codd Normal Form (BCNF)) ปรับมาจากระดับที่ 3 กำหนดคีย์คู่แข่งในตารางจึงมีคุณสมบัติเป็น BCNF

นอร์มัลฟอร์ม – ระดับที่4 – (Forth Normal Form (4NF)), ปรับมาจากระดับที่ BCNF จะต้องไม่มีการขึ้นต่อกันเชิงกลุ่มภายในรีเลชัน

นอร์มัลฟอร์ม – ระดับที่5 – (Fifth Normal Form (5NF)), ปรับมาจากระดับที่ 4 จะต้องไม่มีคุณสมบัติของการขึ้นต่อกันแบบเชื่อมโยง (join)

แต่ส่วนใหญ่ทำถึงแค่ระดับ 3 ก็เพียงพอแล้วครับ สำหรับการลดความซ้ำซ้อนของข้อมูลที่เราจะนำไปเขียนเป็น E-R Diagram และนำไปทำตาราง Access ต่อไป

อันนี้แค่ทฤษฎีนะครับ ผมขอยกตัวอย่างการทำ Normalization ไปเป็น Workshop ให้ค่อย ๆ ดูและทำตามไปด้วยกันเพื่อความเข้าใจยิ่งขึ้นครับ

อ้าวอิงข้อมูลบางส่วนจาก :
msit5.wordpress.com/2013/09/06/นอร์มัลไลเซชัน-normalization/
www.macare.net/dbms/index.php?id=-5

บทความที่เกี่ยวข้องกัน:

  • ไม่มีบทความที่เกี่ยวข้อง
admin

admin

จุดประสงค์หลักของเว็บไซต์นี้คือการเก็บรวบรวมความรู้ความเข้าใจในแบบของผม ที่ผมได้ใช้ MS Access เพื่อเป็นคลังความรู้ให้ท่านที่สนใจจะศึกษา การใช้งาน MS Access ได้นำไปต่อยอดทำโปรแกรมของท่านไว้ใช้งานหรือไว้ให้ลูกค้าต่อไปครับ ^^