วันอังคารที่ 30 เมษายน พ.ศ. 2562

Normalization

Normalization

  • First Normal From : 1NF
นี้คือตารางในรูปแบบ Unnormalized Form จะต้องทำให้อยู่ในรูปของ 1NF โดยสามารถทำให้อยู่ในรูปแบบ 1NF ได้โดยการกระจายข้อมูล Dlocations



  • Second normal form: 2NF

คุณสมบัติของ 2NF
1. ต้องมีคุณสมบัติของ 1NF
2. ทุก Nonprime Attribute จะต้องขึ้นกับ Prime (Primary Key) ทุกตัว

ตารางนี้มี  primary key [Customer ID, Store ID]. non-key attribute คือ [Purchase Location]. ในกรณีนี้ [Purchase Location] จะขึ้นอยู่กับ [Store ID] เท่านั้นซึ่งเป็นเพียงส่วนหนึ่งของคีย์หลัก ดังนั้นตารางนี้จึงยังไม่ใช่ second normal form.




ในการทำให้ตารางนี้เป็น second normal form เราแบ่งตารางออกเป็นสองตารางและตอนนี้เรามีดังต่อไปนี้:




  • Third Normal Form (3NF)

มีกฏเหมือนกับการทำ 2NF เช่นกันคือ
  1. ต้องอยู่ในคุณสมบัติของ 2NF 
  2. ต้องไม่มี non-key Attribute หรือ Transitive Dependency




ในตารางสามารถ [Book ID] จะสามารถกำหนด [Genre ID] และ [Genre ID] จะสามารถกำหนด [Genre Type] ดังนั้น [Book ID] จะสามารถกำหนด [Genre Type] ผ่าน [Genre ID] และมีการพึ่งพาการทำงานของ functional dependency และโครงสร้างนี้ไม่เป็นไปตาม third normal form.

ในการทำให้ตารางนี้เป็น third normal form เราแบ่งตารางออกเป็นสองดังนี้:



ขอบคุณหนังสือทั้งสองเล่ม 

  1. Database Design – 2nd Edition 

      2. Fundamentals of Database Systems




Functional Dependencies/ Update Anomalies


Functional Dependencies

            Function Dependency คือการระบุความสัมพันธ์ของแอตทิบิวต์ใน Field  ซึ่งแอตทิบิวต์ที่สามารถระบุค่าในแอตทิบิวต์อื่นๆ ได้เราจะเรียกมันว่า determimant และถ้าแอตทิบิวต์ที่ถูกระบุค่าได้จาก determinant เราจะเรียกมันว่า dependent ซึ่งในทางทฤษฏีเราจะใช้สัญญาลักษณ์ —–> เพื่อเป็นการบอกถึงการขึ้นต่อกัน

           เช่นในรูปตัวอย่างด้านล่าง เราจะเห็นได้ว่า TEXT นั้นเป็น determimant ส่วน COURSE นั้นเป็น dependent ซึ่ง TEXT สามารถระบุค่า COURSE  นับเป็น Functional Dependency เพราะเป็น Primary key ที่ใช้ระบุค่าอื่น




Update Anomalies


           หาก branch เปลี่ยนที่อยู่เช่น branch Round Hill ในรูป เราจำเป็นต้องอัปเดตแถวทั้งหมดที่อ้างถึง branch นั้น การเปลี่ยนแปลงข้อมูลที่มีอยู่อย่างไม่ถูกต้อง เรียกว่า การอัปเดตผิดปกติ



       

ขอบคุณหนังสือทั้งสองเล่ม 

  1. Database Design – 2nd Edition 

      2. Fundamentals of Database Systems