วันพฤหัสบดีที่ 31 พฤษภาคม พ.ศ. 2561

10 - Normalization

Normalization

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

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

        Normalization คือ กระบวนการปรับปรุงโครงสร้างข้อมูลของฐานข้อมูลที่มีความซ้ำซ้อนให้อยู่ในรูปแบบที่เป็นบรรทัดฐาน (Normal Form) โดยการนอร์มัลไลเซชันมีได้ถึง 5 ระดับ  ซึ่งในระดับที่ 3 ก็จัดว่าเพียงพอสำหรับการออกแบบฐานข้อมูลในปัจจุบัน

  • 1NF  -  กำจัด repeating group (กำจัดกลุ่มของข้อมูลที่มีความซ้ำซ้อน) 
  • 2NF  -  กำจัด  partial dependency (กำจัดการขึ้นต่อกันบางส่วน)
  • 3NF  -  กำจัด  transitive dependency (กำจัดการขึ้นต่อกันของแอตทริบิวท์ที่ไม่ใช่คีย์หลัก)

First Normal Form (1NF)

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




Second Normal Form (2NF)

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




เราสามารถทำให้อยู่ในรูป 2NF ได้ดังนี้



Third Normal Form (3NF)

  • Relation นั้นจะต้องมีคุณสมบัติ 2NF
  • ต้องไม่มีความสัมพันธ์ระหว่าง Non-key Attribute หรือไม่มี Transitive Dependency
  • แอททริบิวต์ที่ไม่ใช่คีย์หลัก ต้องไม่ขึ้นต่อกันเอง

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

Reference



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

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

บทความใหม่ที่แนะนำ

10 - Normalization