Normal Form ของ Normalization มีอะไรบ้าง

หมวดสำหรับแบ่งบันความ รู้ต่างๆ จะมีหมวดย่อยๆ ในหมวดนี้ เช่น php, SQL, XML, CSS

Moderator: mindphp, ผู้ดูแลกระดาน

Patcharanan.0399
PHP Hero Member
PHP Hero Member
โพสต์: 114
ลงทะเบียนเมื่อ: 09/04/2018 10:04 am

Normal Form ของ Normalization มีอะไรบ้าง

โพสต์โดย Patcharanan.0399 » 19/04/2018 6:36 pm

[size=115]Normalization (นอร์มัลไลเซชัน) คือ วิธีการหนึ่งที่ช่วยลดความซ้ำซ้อนของข้อมูลจากดาต้าเบส อ่านต่อ... ซึ่งการทำนอร์มัลไลเซชันจะประกอบไปด้วย Normal Form (นอร์มัลฟอร์ม) แบบต่างที่มีเงื่อนไขการทำให้อยู่ในรูปแบบนอร์มัลฟอร์มที่แตกต่างกันไป โดยส่วนใหญ่พบว่าการทำถึง 3NF ก็เพียงพอที่จะแก้ปัญหาความผิดปกติ และความซ้ำซ้อนของข้อมูลได้แล้ว

1. First Normal Form : 1NF (เฟิร์ส นอร์มัลฟอร์ม)
เงื่อนไข : ไม่มีคอลัมน์ใดในตารางที่มีค่ามากกว่า 1 ค่า คือ ค่าในแต่ละคอลัมน์ต้องเป็น Atomic หรือไม่อยู่ในรูปของ Rapeating Group
กล่าวคือ ทุกแอททริบิวต์ในแต่ละแถวมีค่าข้อมูบเพียงค่าเดียว ดังนั้นจะต้องกำจัดกลุ่มข้อมูลซ้ำออกไปแล้วทำการหาคีย์หลักของรีเลชัน
วิธีการที่จะทำให้เป็น 1NF
1. แยกคอลัมน์ที่มีค่ามากกว่า 1 ออกเป็นแถวใหม่
2. เพิ่มข้อมูลที่เหมาะสมเข้าไปในคอลัมน์ที่ว่าอยู่ของแถวที่เกิดขึ้นใหม่

ข้อมูล.JPG
ข้อมูล.JPG (28.04 KiB) เปิดดู 93 ครั้ง
ข้อมูลแก้ไขให้เป็น 1NF.JPG
ข้อมูลแก้ไขให้เป็น 1NF.JPG (30.06 KiB) เปิดดู 93 ครั้ง


2. Second Normal Form : 2NF (เซค’เคินดฺ นอร์มัลฟอร์ม)
เงื่อนไข ต้องมีคุณสมบัติของ 1NF และทุก Norprime Attibute จะต้องขึ้นกับ Primary key ทุกตัว
กล่าวคือ จะเข้าสู่ขบวนการ 2NF ได้ต้องเป็น 1NF มาก่อน และจะต้องมีคีย์หลักเพียงตัวเดียวต่อหนึ่งตาราง หากมีคีย์หลักซ้ำกันในหนึ่งตารางให้ทำการแยกตารางออกเป็สองตาราง แล้วดูว่าคีย์หลักแต่ละตัวเชื่อมไปหาข้อมูลตัวไหนบ้าง ให้จัดทำตารางตามความสัมพันธ์นั้น เพื่อขจัด Attibute ที่ไม่ขึ้นกับคีย์หลักทั้งสองออกไป
วิธีการที่จะทำให้เป็น 2NF
1. ตรวจสอบว่าคุณสมบัติของ 1NF หรือไม่
2. ทำการแยกคีย์หลักจากกัน โดยการสร้างตารางใหม่
3. ดูความสัมพันธ์ของคีย์หลักว่าสามารถเชื่อมไปที่คอลัมน์ใดได้บ้าง

ข้อมูล2.JPG
ข้อมูล2.JPG (33.26 KiB) เปิดดู 93 ครั้ง

ข้อมูลลูกค้า.JPG
ข้อมูลลูกค้า.JPG (17.85 KiB) เปิดดู 93 ครั้ง

ข้อมูลสินค้า.JPG
ข้อมูลสินค้า.JPG (13.51 KiB) เปิดดู 93 ครั้ง

ใบเสนอราคา.JPG
ใบเสนอราคา.JPG (18.97 KiB) เปิดดู 93 ครั้ง


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

ข้อมูล2.JPG
ข้อมูล2.JPG (33.26 KiB) เปิดดู 93 ครั้ง

ข้อมูลลูกค้า2.JPG
ข้อมูลลูกค้า2.JPG (15.9 KiB) เปิดดู 93 ครั้ง

ประเภทลูกค้า.JPG
ประเภทลูกค้า.JPG (12.9 KiB) เปิดดู 93 ครั้ง


3. Boyce-Codd Normal Form : BCNF (บอยซ์คอดด์นอร์มัลฟอร์ม) เป็นนอร์มัลฟอร์มที่ได้รับการปรับมาจาก 3NF โดยเพิ่มการกำหนดคีย์รองในตาราง

4. Fourth Normal Form : 4NF (ฟอร์ธ นอร์มัลฟอร์ม) เป็นนอร์มัลฟอร์มที่ได้รับการปรับมาจาก BCNF โดยจะต้องไม่มีการขึ้นต่อกันเชิงกลุ่มภายใจรีเลชัน

5. Fifth Normal Form : 5NF (ฟิฟธฺ นอร์มัลฟอร์ม) เป็นนอร์มัลฟอร์มที่ได้รับการปรับมาจาก 4NF โดยจะต้องไม่มีคุณสมบัติของการขึ้นต่อกันแบบเชื่อมโยง (Join)


[/size]

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 5 และ บุคคลทั่วไป 0 ท่าน