Normalizing with Entity Relationship Diagram

 

Normalization (นอร์มัลไลเซชัน)

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

โดยการทำนอร์มัลไลเซชันจะประกอบไปด้วย Normal Form (นอร์มัลฟอร์ม) แบบต่างๆ ที่มีเงื่อนไขการทำให้อยู่ในรูปแบบนอร์มัลฟอร์มที่แตกต่างกันไป ขึ้นอยู่กับผู้ออกแบบฐานข้อมูลว่าต้องการลดความซ้ำซ้อนของข้อมูลให้อยู่ในระดับใด ซึ่งนอร์มัลฟอร์มมีรูปแบบต่าง ๆ ดังต่อไปนี้

1. First Normal Form : 1NF หรือ นอร์มัลฟอร์มที่ 1

การแปลงตารางข้อมูลให้อยู่ใรูป 1NF นั้น ข้อมูลจะ Key จะต้องไม่มีค่า “Null”  และข้อมูลในรูป 1NF จะต้องไม่มีความผิดพลาดที่เกิดขึ้น เป็นความผิดพลาดในการปรับปรุงข้อมูล (Update Anomalies)  ความผิดพลาดในการเพิ่มข้อมูล (Addition Anomalies) ความผิดพลาดในการลบข้อมูล โดยเงื่อนไขหลักของ 1NF  คือ
a) ต้องมีการกำหนด Attribute ที่ทำหน้าที่เป็น Key ทั้งหมด
b) ต้องไม่มี Repeating Group ในตาราง คือในตำแหน่งที่ Row ตัดกับ Column ค่าที่ได้จะต้องเแนค่าๆ เดียว ไม่ใช่กลุ่มของค่าข้อมูล
c) ทุกๆ  Attribute ต้องถูกระบุได้ด้วย Primary Key
โดย รูปบบตารางที่เป็น 1NF ยังมีปัญหาอยู่ คือมีบางส่วนของ Key สามารถ ชี้ถึง Attribute  ในตารางได้ (Partial  Dependency)
โดยความเป็นจริงตารางที่ดี ไม่ควรมี Partial  Dependency เพราะ จะทำให้เกิด ความซ้ำซ้อนของข้อมูลที่จะเกิด ทุก Row ที่ มีการซ้ำกันของข้อมูล

 

2. Second Normal Form : 2NF หรือ นอร์มัลฟอร์มที่ 2

การแปลงตารางข้อมูลให้อยู่ในรูป 2NF นั้น อย่างแรกตาราง ต้องอยู่ใน รูปแบบ 1NF ก่อน จึงดำเนิน การต่อไปได้  โดยเงื่อนไขหลัก ของ 2NF คือ
a) ต้องเป็น 1NF
b)  ไม่มี Partial Dependencies คือไม่มี Attributeใด  ถูกระบุได้โดยใช้ส่วนหนึ่งของ Primary Key
(ตารางนั้น ถ้ามีลักษณะ ที่เป็น Transitive Dependency โดนเกิด Transitive Dependencyกับ Nonkey Attribute ยังถือว่าเป็น 2NF อยู่)

 

3. Third Normal Form : 3NF หรือ นอร์มัลฟอร์มที่ 3

การแปลงตารางข้อมูลให้อยู่ในรูป 3 NF นั้น อย่างแรกตาราง ต้องอยู่ใน รูปแบบ 2NF ก่อน โดยจะแบ่งตารางที่เป็น Transitive Dependency ออกเป็นตารางใหม่  แต่ต้องมี Attribute โยงไปตารางใหม่
โดยเงื่อนไขหลัก ของ 3NF คือ
a) ต้องเป็น 2NF
b)  ไม่มี Transitive Dependency

 

4. Boyce-Codd Normal Form : BCNF

ตารางที่มีคุณสมบัติ เป็น BOYCE-CODD Normal Form ก็ต่อเมื่อทุกๆ Determinant ในตารางเป็น Candidate Key  (Determinant คือ Attribute ใดๆ ที่มีค่าสามารถระบุไปถึงข้อมูลต่างๆ ในแถวข้อมูล คือถ้าตารางมีคุณสมบัติ 3NF แล้ว  และมี Candidate Key เพียงแค่ตัวเดียว ตารางนั้นก็ถือว่าเป็น BCNF ไปด้วย) โดย วิธี BCNF ผู้ออกแบบส่วนใหญ่จะมองว่าเป็นวิธีพิเศษ แบบออกจาก 3NF เพราะตารางที่มีคุณสมบัติ 2NF ก็อาจมีคุณสมบัติ ตรงตามแบบวิธี BCNF โดยไม่ได้เป็น 3NF ก็ได้  เพราะ คุณสมบัติหลัก หรือเงื่อนไขหลักของ BCNF คือมี Determinant ทุกตัวเป็น Candidate Key

 

5. รูปแบบบรรทัดฐานขั้นที่ 4  : fourth normal form: 4NF

ตามในด้านธุรกิจในปัจจุบัน นิยมปรับตารางให้อยู่ในรูปแบบ 3NF หรือ BCNF ก็เพียงพอต่อการใช้งานแล้ว แต่ในบางกรณี อาจจะต้องมีการปรับ ขึ้นในระดับที่สูงขึ้น  โดยคุณสมบัติ ของ 4NF ต้องมีเงื่อนไขเป็น 3NF หรือ BNCF และไม่มี Multiple set ของ Multivalue Dependency

 

6. Fifth Normal Form : 5NF หรือ นอร์มัลฟอร์มที่ 5

ตารางที่มีคุณสมบัติ เป็น 5NF นั้นจะเกิด ขึ้นได้ยาก โดย จะมี Attribute ในตารางเป็น  primary Key ที่เกิด จาก Attribute 3  Attribute  ขึ้นไป หรือ คุณสมบัติ Join Dependency ซึ่งเป็นคุณสมบัติของการนำรีเลชั่นย่อยที่เกิดจากการแตกรีเลชั่นเดิมมารวมกัน และเมื่อรวมกันแล้วข้อมูลที่ได้จะต้องเป็นข้อมูลเดียวกับรีเลชั่นเดิม ไม่เปลี่ยนแปลงไป และจะต้องมีรูปแบบ เป็น 4NF  อยู่ก่อนแล้ว

 

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

 

ประโยชน์นอร์มัลไลเซชัน

1. ลดที่ว่างที่ต้องใช้ในการเก็บข้อมูล

2. ลดการซ้ำซ้อนของข้อมูล

3. ลดความผิดพลาดและความไม่ตรงกันของข้อมูลในฐานข้อมูล

4. ลดปัญหาความผิดปกติของข้อมูลที่เกิดจากการเพิ่ม/การลบหรือแก้ไขข้อมูล ( insertion/ deletion/ update anormalies )

5. ลดปัญหาการขาดความถูกต้องของข้อมูล

6. เพิ่มความคงทนแก่โครงสร้างฐานข้อมูล

 

สามารถรับชมวิธีการนอร์มัลไลเซชันได้ที่วิดีโอด้านล่างค่ะ

YouTube Preview Image

  •  
  •  
  •  
  •  
  •  
  •  
Rutchaneewan Kowirat
at GlurGeek.Com
Hello everyone !!
My name is Rutchaneewan Kowirat.
You can call me Milk.
I live in Thailand.
I'm studying at Bangkok University.
My major was Computer Engineering.
My hobby is read a novel.
Nice to meet you.

Leave a Reply