การนอร์มอลไลซ์ Normalization

หลังจากที่ผู้ออกแบบได้ขอบเขตข้อมูลทั้งหมดที่ต้องการเก็บแล้ว ซึ่งโดยมากเกิดจากรูปแบบ รายงานบ้าง รูปแบบใบเสร็จรับเงินบ้าง รูปแบบใบส่งสินค้าบ้าง โดยมากมักจะเหมารวมเอาว่านั้นคือ รูปแบบของตารางที่ต้องการเก็บข้อมูล ซึ่งนำมาซึ่งความซ้ำซ้อนของข้อมูลในรายกรณี และทำให้มีขนาดใหญ่เกินความจำเป็น ส่วนที่ซ้ำซ้อน ปัญหาของรีเลชั่นที่เกิดขึ้นเหล่านี้ สามารถขจัดได้ด้วยขบวนการ Normalization ซึ่งแนวคิดนี้ถูกคิดค้นโดย E.F.Codd ซึ่งเป็นกระบวนการที่นำเค้าร่างของ relation มาทำให้อยู่ในรูปแบบที่เป็นบรรทัดฐาน (Normal Form) เพื่อให้แน่ใจว่าการออกแบบเค้าร่างของ relation เป็นการออกแบบที่เหมาะสม ประโยชน์ของการนอร์มอลไลซ์คือ
1)      ลดที่ว่างที่ต้องใช้ในการเก็บข้อมูล
2)      ลดความผิดพลาด ความไม่ตรงกันของข้อมูลในฐานข้อมูล
3)      ลดการเกิดอะนอร์มอลไลซ์ของการลบและแก้ไขข้อมูล
4)      เพิ่มความคงทนแก่โครงสร้างฐานข้อมูล

1)รูปแบบนอร์มอล ระดับที่ 1 (First Normal Form : 1NF)
เป็นระดับที่ใช้สำหรับการปรับโครงสร้างของข้อมูลของรีเลชั่นให้มีคุณสมบัติตามนิยาม ดังนี้ คือนิยาม"รีเลชั่นใด ๆ จะมีคุณสมบัติอยู่ในรูปแบบนอร์มอล ระดับที่ 1 ก็ต่อเมื่อ ทุกแอตทริบิวต์ในแต่ละทูเพิลมีค่าของข้อมูลเพียงค่าเดียว คือต้องไม่มีค่ากลุ่มข้อมูลที่ซ้ำกัน (Repeating Group)" ตัวอย่างเช่น รีเลชั่นการลงทะเบียนของนักศึกษาดังตาราง


                               ตาราง  รีเลชั่นการลงทะเบียนของนักศึกษา

2) รูปแบบนอร์มอล ระดับที่ 2 (Second Normal Form : 2NF)
เป็นการแก้ไขปัญหาความซ้ำซ้อนของข้อมูล ที่ปรากฏในรีเลชั่นที่ผ่านการนอร์มอลไลซ์ ระดับที่ 1 โดยรูปแบบนอร์มอล ระดับที่ 2 จะต้องมีคุณสมบัติดังนี้ คือนิยาม"รีเลชั่นใด ๆ จะมีคุณสมบัติอยู่ในรูปแบบนอร์มอล ระดับที่ 2 ก็ต่อเมื่อ
1.รีเลชั่นนั้นมีคุณสมบัติอยู่ในรูปแบบนอร์มอล ระดับที่ 1
2.ทุกแอตทริบิวต์ที่ไม่ใช่คีย์หลัก ต้องมีความสัมพันธ์กับแอตทริบิวต์ ที่เป็นคีย์หลัก หรือทุก แอตทริบิวต์ที่ประกอบกันเป็นคีย์หลัก มิใช่ส่วนหนึ่งส่วนใดของคีย์หลัก (เป็นกรณีที่คีย์หลักนั้น มีคีย์ร่วม (Composition Key) คือ มีหลายแอตทริบิวต์ประกอบกันเป็นคีย์หลัก)" ตัวอย่างดังตาราง

                               ตาราง รีเลชั่นการลงทะเบียนของนักศึกษา

3)รูปแบบนอร์มอล ระดับที่ 3 (Third Normal Form : 3NF)
จากรีเลชั่นนักศึกษาจะเห็นว่า มีโครงสร้างเป็นไปตามนิยามของรูปแบบนอร์มอล ระดับที่ 2 จะเห็นว่ายังปรากฏข้อมูลซ้ำกันอยู่ในส่วนของแอตทริบิวต์ "รหัสแผนก" และ "แผนก" หรือกล่าวได้ว่า ถ้าระบุค่าให้กับแอตทริบิวต์ "รหัสแผนก" จะได้ "แผนก" ออกมา โดยเราเรียกความสัมพันธ์ ในลักษณะนี้ว่า "Transitive Dependency" ดังนั้นรีเลชั่นนี้จึงไม่อยู่ในรูปแบบนอร์มอลระดับที่ 3 และอาจก่อให้เกิดปัญหาความผิดพลาดดังนี้นิยาม"รีเลชั่นใด ๆ จะมีคุณสมบัติอยู่ในรูปแบบนอร์มอล ระดับที่ 3 ก็ต่อเมื่อ
1. รีเลชั่นนั้นมีคุณสมบัติอยู่ในรูปแบบนอร์มอล ระดับที่ 2 แล้ว
2. ทุกแอตทริบิวต์ที่ไม่ใช่คีย์หลักในรีเลชั่น จะต้องไม่ขึ้นกับแอตทริบิวต์อื่น ๆ ที่ไม่ใช่คีย์หลัก หรืออาจกล่าวว่า ทุกแอตทริบิวต์ที่ไม่ใช่คีย์หลักไม่มีสิทธิในการระบุค่าของแอตทริบิวต์อื่นที่ ไม่ใช่คีย์หลัก หรืออาจกล่าวอีกนัยหนึ่งได้ว่า รีเลชั่นนั้นต้องไม่มีความสัมพันธ์ระหว่างแอตทริบิวต์ เป็นแบบ Transitive เกิดขึ้น"


ตาราง รีเลชั่นนักศึกษา
ที่มา http://203.172.182.81/wbidatabase/unit5/unit5.php






ไม่มีความคิดเห็น:

แสดงความคิดเห็น