Please enable JavaScript.
Coggle requires JavaScript to display documents.
บทที่5 การปรับให้เป็นบรรทัดฐาน (Normalization) - Coggle Diagram
บทที่5
การปรับให้เป็นบรรทัดฐาน
(Normalization)
การทำให้เป็นบรรทัดฐาน(Normalization)
คือหลักการในการออกแบบฐานข้อมูลเชิงสัมพันธ์(Relational Database) ซึ่งคิดค้นโดย Dr. E.F. Codd ตั้งแต่ปี 1963
วัตถุประสงค์
วัตถุประสงค์เพื่อหลีกหนีการเกิดกลุ่มข้อมูลซ้ำ ๆ หรือไม่ทำให้เกิดความซ้ำซ้อนของข้อมูล
ทำให้เกิดความมั่นใจว่าการจัดเก็บและค้นหาข้อมูลทำได้อย่างมีประสิทธิภาพ
การนิยามรูปแบบบรรทัดฐานขั้นต่างๆ
รูปแบบบรรทัดฐานขั้นที่ 3(Third Normal Form :3NF)
รูปแบบบรรทัดฐานขั้นบอยซ์คอดด์(Boyce/Codd Normal Form : BCNF)
รูปแบบบรรทัดฐานขั้นที่ 2(Second Normal Form : 2NF)
รูปแบบบรรทัดฐานขั้นที่ 4(Fourth Normal Form : 4NF)
รูปแบบบรรทัดฐานขั้นที่ 1(First Normal Form :1NF)
รูปแบบบรรทัดฐานขั้นที่ 5(Fifth Normal Form :5NF)
ฟังกช์ันการขึ้นต่อกัน(Functional Dependency)
ชนิดของฟังกชั้นการขึ้นต่อกัน
การขึ้นต่อกันแบบบํางส่วนกับคีย์หลัก(Partial Dependency)
การขึ้นต่อกันแบบทรานซิทีฟ (Transitive Dependency)
การขึ้นต่อกันแบบทุกส่วนกับคีย์หลัก(Full Functional Dependency)
แบ่งเป็นระดับพื้นฐาน
รูปแบบบรรทัดฐานขั้นที่1 (First Normal Form : 1NF)
นิยาม
รีเลชันที่อยู่ในรูปแบบบรรทัดฐานขั้นที่ 1 ก็ต่อเมื่อ รีเลชันนั้นไม่มีกลุ่มข้อมูลซ้ำ(Repeating Group)
หลักการแปลงเป็น 1NF
หากพบว่ามีกลุ่มข้อมูลซ้ำ ให้แยกข้อมูลออกให้เป็นเอกเทศเป็นแต่ละทูเพิล
กำหนดคีย์หลักให้กับรีเลชัน
รูปแบบบรรทัดฐานขั้นที่2 (Second Normal Form : 2NF)
นิยาม
รีเลชันนั้นต้องอยู่ในรูปแบบบรรทัดฐานขั้นที่ 1
ไม่มีแอททริบิวต์ที่มีการขึ้นต่อบางส่วนของคีย์หลัก(Partial Dependency)
หลักการแปลงเป็น 2NF
หากมีรีเลชันใดที่มีแอททริบิวต์มีการขึ้นต่อกันกับบางส่วนของคีย์หลัก
ให้ตัดแอททริบิวต์ดังกล่าวออกไปไว้ในรีเลชันใหม่ และในรีเลชันเดิม
ให้คงแอททริบิวต์ที่ขึ้นกับทุกส่วนของคีย์หลักไว้
สร้างรีเลชันใหม่ โดยดึงแอททริบิวต์ที่ขึ้นกับบางส่วนของคีย์หลัก และกำหนดคีย์หลักของรีเลชันจากแอททริบิวต์ที่เป็นส่วนประกอบของรีเลชันที่แอททริบิวต์เหล่านี้มีฟังก์ชันการขึ้นต่อกัน
รูปแบบบรรทัดฐานขั้นที่3 (Third Normal Form : 3NF)
นิยาม
รีเลชันนั้นต้องอยู่ในรูปแบบบรรทัดฐานขั้นที่ 2
ไม่มีแอททริบิวต์ที่ไม่ใช่คีย์หลักสามารถระบุค่าแอททริบิวต์ที่ไม่ใช่คีย์หลักอื่นได้(Transitive Dependency)
หลักการแปลงให้เป็น 3NF
หากในรีเลชันมีการขึ้นต่อกันแบบทรานซิทีฟ ให้ตัดเอาแอททริบิวต์ที่ขึ้นต่อกันแบบทรานซิทีฟออกไปสร้างรีเลชันใหม่
สร้างรีเลชันใหม่ โดยนำเอาแอททริบิวต์ที่ขึ้นต่อกันแบบทรานซิทีฟจากรีเลชันเดิมมาและกำหนดคีย์หลักโดยเลือกเอาแอททริบิวต์ที่สามารถกำหนดค่าของแอททริบิวต์อื่นๆ ได้
ในรีเลชันเดิมให้คง แอททริบิวต์ที่สามารถเลือกค่าแอททริบิวต์ที่ไม่ใช่คีย์หลักไว้เป็นคีย์นอก (Foreign key) เพื่อใช้ในการเชื่อมโยงกับรีเลชันใหม่