วันเสาร์ที่ 9 ตุลาคม พ.ศ. 2553

การสร้าง 1NF และ 2NF

1. First Normol Form (1NF)

การทำนอร์มัลไลเซชันระดับที่ 1 ต้องมีคุณสมบัติดังนี้

ไม่มีคอลัมน์ใดในตารางที่มีค่ามากกว่า 1 ค่า คือค่าในแต่ละคอลัมน์ต้องเป็น atomic หรือไม่อยู่ในรูปของ repeating group

            การทำนอร์มัลไลเซชันจะต้องดูข้อมูลในตารางว่าข้อมูลในคอลัมน์ของตารางที่สร้างขึ้นมานั้นมีค่ามากกว่า 1 ค่า หรือไม่ ถ้ามีค่ามากกว่า 1 ค่า แสดงว่าไม่เป็น atomic หรืออยู่ในรูปของ  repeating group ดังนั้นจึงไม่เป็น NF1 การทำให้ตารางเป็น 1NF นั้น คือ
1.      แยกคอลัมน์ที่มีค่ามากกว่า  1 ค่า ออกเป็นแถวใหม่
2.      เพิ่มข้อมูลที่เหมาะสมเข้าไปในคอลัมน์ที่ว่างอยู่ของแถวที่เกิดขึ้นใหม่


นี่คือตัวอย่างตารางที่ไม่ได้เป็น 1NF ดังนั้นจะทำให้เป็น 1NF ได้คือ




2. Second Normal From (2NF)

            การทำนอร์มัลไลเซชันระดับที่ 2 ต้องมีคุณสมบัติ คือ
               
  1. ต้องมีคุณสมบัติ 1NF
  2. ทุก nonprime attribute จะต้องขึ้นกับ prime (primary key) ทุกตัว

คือแอตทริบิวต์ที่ไม่ใช่คีย์หลักต้องขึ้นกับคีย์หลักเท่านั้น เช่น ตัวอย่างตารางบอกข้อมูลสมาชิก เมื่อหารหัสสมาชิกแล้วจะสามารถตอบได้ว่าข้อมูลของสมาชิกคนนั้นมีอะไรบ้าง คือ รหัสสมาชิกมี ชื่อสมาชิกนั่นเอง


เราต้องดูว่าตารางผ่านคุณสมบัติ 1NF หรือไม่ จากนั้นเมื่อผ่านคุณสมบัติ 1NF แล้วให้ดูว่า แอตทริบิวต์ใดเป็น prime หรือคีย์หลัก จะเห็นได้ว่ามีแอตทริบิวต์  รหัสลูกค้า และ รหัสหนังสือ เป็นคีย์หลัก ส่วนที่เหลือเป็น nonprime
                จากนั้นก็มาพิจารณาคุณสมบัติว่า nonprime ต้องขึ้นกับ prime ทุกตัว สรุปตารางนี้คือ












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















ดังนั้นจะทำให้เป็น 2NF จะต้องทำการแตกตารางออกมา ดังนี้