วันศุกร์ที่ 24 มิถุนายน พ.ศ. 2554

Normalization

การนอมัลไลเซชั่น

เป็นวิธีการลดความซ้ำซ้อน ของข้อมูลที่อาจเกิดขึ้นได้ มักใช้ในการออกแบบฐานข้อมูลที่เป็นแบบ Relational Databaseซึ่งการทำ Normalization นี้จะช่วยให้ความซ้ำซ้อนของข้อมูลลดลง และลดโอกาสที่จะทำให้เกิดความผิดพลาดจากการประมวลผลข้อมูลในตารางต่างๆ ซึ่งหลักการทำ Normalization จะทำการแบ่งตาราที่มีความซ้ำซ้อนของข้อมูลออกมาเป็นตารางย่อย ๆ และใช้ Foreign Key เป็นตัวเชื่อมความสัมพันธ์ระหว่างตาราง
ข้อมูลที่ซ้ำซ้อนกันนี้จะก่อให้เกิดปัญหาขึ้นอย่างน้อย 2 ประการ คือ
1. ปัญหาความผิดพลาดของข้อมูล เช่น การที่ลูกค้าเปลี่ยนชื่อหรือในกรณีที่บริษัทมีการเปลี่ยนแปลงรายละเอียดสินค้าเราจะต้องทำการแก้ไขข้อมูลให้ครบทุกเรคคอร์ดในตาราง มิฉะนั้นข้อมูลในบางเรคคอร์ดจะเกิดความผิดพลาดได้
2.เปลืองเนื้อที่ในการจัดเก็บข้อมูลเพราะจะต้องจัดเก็บข้อมูลเดียวกันไว้ ในหลายๆเรคคอร์ด สิ่งสำคัญคือ"การลดความซ้ำซ้อนและโอกาสที่จะเกิดความผิดพลาดกับข้อมูล ได้" ซึ่งการที่จะทำ ให้บรรลุจุดประสงค์ดังกล่าวจะต้องมีเกณฑ์และ ขั้นตอนในการวิเคราะห์ข้อมูล โดยทั่วไปเราต้อง รู้ก่อนว่าแต่ละตารางมี field ใดบ้างสามารถบ่งชี้หรือค้นหาข้อมูลได้ เช่น เมื่อทราบรหัสลูกค้า จะ ทำให้สามารถค้นหา ชื่อ,นามสกุล,ที่อยู่ ฯลฯ ได้ สำหรับเกณฑ์เหล่านี้เราจะเรียกว่า "Functionl Depen-dency" (FD) ใชัสัญลักษณ์ แทนการกำหนดค่าระหว่าง fieldคุณสมบัติที่สำคัญอีกประการของการทำ Normalization คือ เมื่อตารางใดจัดอยู่ใน Normal Form ใด แล้วจะต้องมีคุณสมบัติของ Normal Form ที่ต่ำกว่าเสมอ เช่น ถ้าตารางใดเป็น 3N จะต้องมีคุณสมบัติของ 1N และ 2N อยู่ด้วย

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

ในทางปฏิบัติการทำ นอร์มอลไลซ์จะเริ่มจาก E-R Model ก่อน แล้วจึงทำ การ map จาก E-R Model เป็น relation แบบ 1NF ก่อน โดยให้ attributes ที่เกี่ยวข้องกันจะอยู่ในตารางเดียวกัน สำ หรับ application ใหญ่ ๆ มี attributes ประมาณ 500 attributes ใช้ E-R Model จะได้ 1NF ประมาณ 80 ตาราง เมื่อทำ ถึง 5NF จะได้ไม่เกิน 100 ตาราง ในกรณีได้ตารางเป็นนอมัลไลเซชันที่สมบูรณ์แล้ว สิ่งที่ต้องระวังคือไม่แตกตารางนั้นย่อยลงไปอีก

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

Functional Dependency (FDs)

เป็น รูปแบบทางคณิตศาสตร์ ซึ่งใช้ในการพิจารณาโครงสร้างของ Relation ว่าโครงสร้างอยู่ใน Normal Form ระดับใด โดยจะพิจารณาความสัมพันธ์ระหว่าง Attribute ต่าง ๆ ภายใน Relation กับ Attribute หรือ กลุ่ม Attribute ที่ทำหน้าที่เป็น Key ของ Relation นั้น ๆ

อ่านเพิ่มเติม ระดับนอมัลไลเซชั่น

นาย ปฐมพงษ์ ตระกูลมณีเนตร -เต้ 51040854

9 ความคิดเห็น:

  1. กระบวนการในการนอมัลไลเซชั่น

    http://demo4.rc.ac.th/chap6_p3/chap6_p3_1.html

    เว็บนี้แสดงเป็นภาพเคลื่อนไหว ดูแล้วเข้าใจได้ง่าย

    นายธนชัย กะชามาศ(แบงค์)

    ตอบลบ
  2. เป็นวิธีการลดความซ้ำซ้อนของข้อมูลในฐานข้อมูล
    ทำให้ง่ายต่อการแก้ไข และรู้ถึงปัญหาที่เกิดได้อย่างรวดเร็ว

    นายกัญจน์ ชาญสิทธิโชค (กัน)

    ตอบลบ
  3. ประโยชน์ของการนอร์มัลไลซ์
    1.เป็นเครื่องมือที่ช่วยในการออกแบบฐานข้อมูลแบบเชิงสัมพันธ์
    2.ทำให้ทราบว่ารีเลชันที่ออกแบบนั้น ก่อให้เกิดปัญหาหรือไม่และด้านใดบ้าง
    3.ถ้ารีเลชันที่ออกแบบมานั้นก่อให้เกิดปัญหา จะมีวิธีแก้ไขอย่างไร
    4.เมื่อแก้ไขแล้วอาจรับประกันได้ว่ารีเลชันนั้น จะไม่มีปัญหาอีก หรือถ้ามีจะมีน้อยลง

    เท่าที่เคยทำมานะ ส่วนมากการซ้ำซ้อนของข้อมูลจะเจอ 1NF, 2NF,3NF นะ BCNF, 4NF, 5NF ไม่ค่อยเจออ่ะ

    โดย นางสาว ณัฐธีรดา ละดาดก (นิด) รหัส 51040851

    ตอบลบ
  4. การทำ Normalization นี้จะช่วยให้ความซ้ำซ้อนของข้อมูลลดลง และลดโอกาสที่จะทำให้เกิดความผิดพลาดจากการประมวลผลข้อมูลในตารางต่างๆ ดังนั้นการทำ Normalization จึงถือเป็นส่วนสำคัญในการจัดการกับระบบฐานข้อมูลเป็นอย่างมาก

    นายนฤพนธ์ วุฒิภาพภิญโญ(nIx)

    ตอบลบ
  5. กฎการ Normalization 3 ข้อ
    " Normalization Table must be flat table , all non-key fields are functional depentent on key-field(s) , non but the key (s) "

    นัทธมน 847

    ตอบลบ
  6. ความคิดเห็นนี้ถูกผู้เขียนลบ

    ตอบลบ
  7. การทำการ Normalization นั้นต้องศึกษาในวิธีการทำ และต้องเข้าใจในการทำถึงจะทำให้การทำNormalization นั้นง่ายขึ้น และสนุกกับการทำมันได้ดีขึ้น

    กรรณิการ์ อภินันทกุล (นิ*)

    ตอบลบ
  8. การ Normalization เป็นการลดความซ้ำซ้อนของข้อมูลที่มีอยู่จำนวนมาก ป็นการลดพื่นที่ในการเก็บข้อมูลด้วย และเพื่อให้แก้ไขได้อย่างรวดเร็วและถูกจุด

    นางสาวอริญญา ปิ่นแก้วกาญจน์ (ปอย)

    ตอบลบ
  9. การทำ Normalization เป็นส่วนสำคัญมากใน data base
    เพราะจะช่วยลดความซ้ำซ้อนของข้อมูล เพื่อไม่ให้ใช้พื้นที่การเก็บของมูลโดยเปล่าประโยชน์ และง่ายต่อการสืบค้นข้อมูลได้อีกด้วย

    น.ส.ชุติมน ศิริศรชัย ก้อย*

    ตอบลบ

หมายเหตุ: มีเพียงสมาชิกของบล็อกนี้เท่านั้นที่สามารถแสดงความคิดเห็น