1 / 32

อ . เกษรา วรนาถจินดา

นอร์มัลไลเซชัน ( Normalization). อ . เกษรา วรนาถจินดา. ketwd@eau.ac.th. เอกสารอ้างอิง วิเชียร เปรมชัยสวัสดิ์. (25 50 ). ระบบฐานข้อมูล พิมพ์ครั้งที่ 11. กรุงเทพฯ: สมาคมส่งเสริมเทคโนโลยี (ไทย-ญี่ปุ่น).

Download Presentation

อ . เกษรา วรนาถจินดา

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. นอร์มัลไลเซชัน (Normalization) อ.เกษรา วรนาถจินดา ketwd@eau.ac.th เอกสารอ้างอิง วิเชียร เปรมชัยสวัสดิ์. (2550). ระบบฐานข้อมูล พิมพ์ครั้งที่ 11. กรุงเทพฯ: สมาคมส่งเสริมเทคโนโลยี (ไทย-ญี่ปุ่น). สมจิตร อาจอินทร์. (2543). ระบบฐานข้อมูล พิมพ์ครั้งที่ 5. ขอนแก่น: มหาวิทยาลัยขอนแก่น.

  2. หัวข้อที่ศึกษา 1.แนวคิดเกี่ยวกับรูปแบบที่เป็นบรรทัดฐาน (Normal Form)1.1 ความสัมพันธ์ระหว่างแอตทริบิวต์ในแต่ละรีเลชัน 1.2 แนวคิดเกี่ยวกับ NF :วัตถุประสงค์ในการทำให้เป็นรูปแบบบรรทัดฐาน 2.การทำให้เป็นรูปแบบที่เป็นบรรทัดฐาน (Normal Form)- 1NF - 2NF - 3NF - BCNF - 4NF - 5NF

  3. 1. แนวคิดเกี่ยวกับรูปแบบ NF : ความสัมพันธ์ระหว่างแอตทริบิวต์ในแต่ละรีเลชัน B A แบ่งได้ 3 ลักษณะ1.ความสัมพันธ์ระหว่างแอตทริบิวต์แบบฟังก์ชันดีเพนเดนซี (Functional dependency)2.ความสัมพันธ์ระหว่างแอตทริบิวต์แบบหลายค่า (multivalued dependency)3.ความสัมพันธ์ระหว่างแอตทริบิวต์แบบ Join (join dependency) 1. ความสัมพันธ์ระหว่างแอตทริบิวต์แบบฟังก์ชัน (Functional dependency : FD) = การที่ค่าของแอตทริบิวต์หนึ่งหรือมากกว่าหนึ่งแอตทริบิวต์ขึ้นไปที่ประกอบกันสามารถระบุค่าของแอตทริบิวต์อื่นๆใน tuple เดียวกันของรีเลชันนั้นได้ FD แสดงด้วยการใช้สัญลักษณ์ลูกศรA B แสดงว่า B เป็นฟังก์ชันดีเพนเดนต์กับ A กล่าวคือ ถ้ารู้ค่า A จะทำให้ทราบค่าของ B ด้วยทุกค่าของ A ที่มีค่าเท่ากัน จะได้ค่า B เท่ากันเสมอ แสดงแบบแผนภาพความสัมพันธ์ระหว่างแอตทริบิวต์แบบฟังก์ชัน หรือ FD ไดอะแกรมใช้สัญลักษณ์ ดังนี้

  4. ความสัมพันธ์ระหว่างแอตทริบิวต์แบบฟังก์ชันดีเพนเดนซี (Functional dependency : FD) เขียน FD ไดอะแกรมได้ ดังนี้ ชื่อ อ. ที่ปรึกษา รหัส นศ. @ กรณี Determinant และ Dependent มีเพียงหนึ่งแอตทริบิวต์ อาจารย์ที่ปรึกษา ความสัมพันธ์ระหว่างแอตทริบิวต์แบบฟังก์ชัน รหัส นศ. ชื่อ อ. ที่ปรึกษา รหัส นศ. ชื่อ อ. ที่ปรึกษา หรือ รหัส นศ. ชื่อ อ. ที่ปรึกษา เขียน FD ไดอะแกรมได้ ดังนี้ ชื่อ อ. ที่ปรึกษา รหัส นศ.

  5. ความสัมพันธ์ระหว่างแอตทริบิวต์แบบฟังก์ชันดีเพนเดนซี (Functional dependency : FD) รีเลชันอาจารย์ที่ปรึกษา มีความสัมพันธ์ระหว่างแอตทริบิวต์แบบฟังก์ชัน ดังนี้ รหัส นศ. ชื่อ รหัส นศ. นามสกุล รหัส นศ. วัน/เดือน/ปีเกิด หรือ รหัส นศ. ชื่อ, นามสกุล, วัน/เดือน/ปีเกิด เขียน FD ไดอะแกรมได้ ดังนี้ รหัส นศ. ชื่อ นามสกุล วัน/เดือน/ปีเกิด @ กรณี Determinant มีเพียงหนึ่งแอตทริบิวต์ และDependent มีมากกว่าหนึ่งแอตทริบิวต์ นักศึกษา

  6. ความสัมพันธ์ระหว่างแอตทริบิวต์แบบฟังก์ชันดีเพนเดนซี (Functional dependency : FD) @ กรณี Determinant มีมากกว่าหนึ่งแอตทริบิวต์ และDependent มีเพียงหนึ่งแอตทริบิวต์ การสอน รีเลชันอาจารย์ที่ปรึกษา มีความสัมพันธ์ระหว่างแอตทริบิวต์แบบฟังก์ชัน ดังนี้ รหัสชุดวิชา, หมู่เรียน ชื่อ อ. ผู้สอน เขียน FD ไดอะแกรมได้ ดังนี้ รหัสชุดวิชา หมู่เรียน ชื่อ อ. ผู้สอน

  7. ความสัมพันธ์ระหว่างแอตทริบิวต์แบบฟังก์ชันดีเพนเดนซี (Functional dependency : FD) @ กรณี determinant มีเพียงหนึ่งแอตทริบิวต์ รหัส นศ. ชื่อ, นามสกุล, วัน/เดือน/ปีเกิด @ กรณี determinant มีมากกว่าหนึ่งแอตทริบิวต์ รหัสชุดวิชา, หมู่เรียน ชื่อ อ. ผู้สอน จำแนก ได้ 3 แบบ คือ1.ความสัมพันธ์ระหว่างแอตทริบิวต์แบบทั้งหมด (fully functional dependency)2.ความสัมพันธ์ระหว่างแอตทริบิวต์แบบบางส่วน (partial dependency)3.ความสัมพันธ์ระหว่างแอตทริบิวต์แบบ Transitive (transitive dependency) 1.ความสัมพันธ์ระหว่างแอตทริบิวต์แบบทั้งหมด (fully functional dependency) = การที่แอตทริบิวต์ซึ่งเป็น determinant มีขนาดเล็กที่สุด และสามารถระบุค่าของแอตทริบิวต์อื่นๆ ที่เป็น dependent ได้อย่างชัดเจน

  8. ความสัมพันธ์ระหว่างแอตทริบิวต์แบบฟังก์ชันดีเพนเดนซี (Functional dependency : FD) รีเลชันการลงทะเบียน มีความสัมพันธ์ระหว่างแอตทริบิวต์แบบฟังก์ชัน ดังนี้ รหัส นศ., รหัสชุดวิชา ชื่อชุดวิชา, หมู่เรียน รหัสชุดวิชา ชื่อชุดวิชา 2.ความสัมพันธ์ระหว่างแอตทริบิวต์แบบบางส่วน (Partial dependency) = จะเกิดขึ้นได้ เมื่อรีเลชันหนึ่งๆ มี pk เป็น composite key และแอตทริบิวต์บางส่วนของคีย์หลักสามารถระบุค่าของแอตทริบิวต์อื่นๆใน tuple เดียวกัน ที่ไม่ใช่ pk (non-key attribute) ของรีเลชันได้ นั่นคือ หากทราบค่าใดค่าหนึ่งของแอตทริบิวต์ทีเป็น determinant ก็จะทำให้ทราบค่าของแอตทริบิวต์อื่นๆที่เป็น dependent ได้ การลงทะเบียน

  9. ความสัมพันธ์ระหว่างแอตทริบิวต์แบบฟังก์ชัน (Functional dependency : FD) 3.ความสัมพันธ์ระหว่างแอตทริบิวต์แบบ Transitive (transitive dependency) =การที่แอตทริบิวต์อื่นที่ไม่ใช่ pk แต่สามารถระบุค่าของแอตทริบิวต์อื่นๆใน tuple เดียวกันของรีเลชันได้ (ไม่เป็น pk แต่สามารถระบุค่าอื่นในรีเลชันได้) ที่ปรึกษา รีเลชันที่ปรึกษา มีความสัมพันธ์ระหว่างแอตทริบิวต์แบบฟังก์ชัน ดังนี้ ชื่อนศ., รหัสอ., ชื่ออ.ที่ปรึกษา รหัส นศ. รหัสอ. ชื่อ อ.ที่ปรึกษา เขียน FD ไดอะแกรม ?????

  10. ความสัมพันธ์ระหว่างแอตทริบิวต์แบบหลายค่า (multivalued dependency : MVD) = MVD จะเกิดขึ้นได้เมื่อรีเลชันหนึ่งๆ ประกอบด้วย3 แอตทริบิวต์ขึ้นไป และแอตทริบิวต์ที่เป็น determinant สามารถระบุค่าของแอตทริบิวต์อื่นที่เป็น dependent ได้มากกว่าหนึ่งค่า คือ ข้อมูลของแอตทริบิวต์ที่เป็น dependent จะเป็นกลุ่มของข้อมูล ความสัมพันธ์ระหว่างแอตทริบิวต์แบบหลายค่า สามารถใช้สัญลักษณ์ ในการสื่อความหมายดังนี้A B A C การสอน-การปรึกษา รีเลชันการสอน-การปรึกษา มีความสัมพันธ์ระหว่างแอตทริบิวต์แบบฟังก์ชัน ดังนี้ รหัสอาจารย์ รหัสชุดวิชาที่สอน รหัสอาจารย์ รหัสนักศึกษาในการปรึกษา

  11. ความสัมพันธ์ระหว่างแอตทริบิวต์แบบ Join (join dependency) = ความสัมพันธ์ระหว่างแอตทริบิวต์แบบ Join เป็นกฎเกณฑ์ที่สำคัญประการหนึ่งในการจำแนกรีเลชัน โดยรีเลชันใด ๆ จะมีความสัมพันธ์ระหว่างแอตทริบิวต์แบบ Join เกิดขึ้นได้ก็ต่อเมื่อ รีเลชันนั้น ๆ สามารถจำแนกออกเป็นรีเลชันย่อยได้ และเมื่อนำรีเลชันย่อยที่จำแนกออกมาเหล่านั้นมารวมกันจะต้องได้รีเลชันกลับไปเหมือนเดิมเสมอ ที่ปรึกษา นศ. นศ.-อ. ที่ปรึกษา รีเลชันที่เกิดจากการรวมทั้ง 3 รีเลชันด้วยกัน

  12. 1.2 แนวคิดเกี่ยวกับ NF :วัตถุประสงค์ในการทำให้เป็นรูปแบบบรรทัดฐาน • เพื่อลดความซ้ำซ้อนของข้อมูลที่จัดเก็บในแต่ละรีเลชัน ทำให้เกิดประโยชน์ดังนี้ • ประหยัดเนื้อที่ในการจัดเก็บข้อมูล • ลดปัญหาขาดความถูกต้องของข้อมูล (data integrity) • ลดปัญหาที่เกิดจากการปรับปรุง เพิ่มเติม และลบข้อมูล (update insert and delete anomaly)

  13. 2.การทำให้เป็นรูปแบบที่เป็นบรรทัดฐาน (Normal Form) ขั้นตอนการทำนอร์มัลฟอร์ม (Normal Form) ขั้นตอนที่ 1เรียกว่า นอร์มัลฟอร์มที่ 1 (First Normal Form : 1NF)ขั้นตอนที่2เรียกว่า นอร์มัลฟอร์มที่ 2 (Second Normal Form : 2NF)ขั้นตอนที่ 3เรียกว่า นอร์มัลฟอร์มที่ 3 (Third Normal Form : 3NF)ขั้นตอนที่ 4เรียกว่า นอร์มัลฟอร์มที่ 4 (Fourth Normal Form : 4NF)ขั้นตอนที่ 5เรียกว่า นอร์มัลฟอร์มที่ 5 (Fifth Normal Form : 5NF)(5NF = Projection-Join Normal Form (PJ/NF) **การทำนอร์มัลฟอร์มในระดับที่สูงกว่า จะมีคุณสมบัติที่ดีกว่าระดับที่ต่ำกว่า เช่น 2NF จะดีกว่า 1NF และ 3NF จะดีกว่า 2NF**

  14. ขั้นตอนการทำนอร์มัลไลเซชัน (Normalization) เอนติตี้ที่ยังไม่ได้รับการนอร์มัลไลเซชัน ขั้นที่ 1 : กำจัด Repeating Group 1NF ขั้นที่ 2 : กำจัด Partial Dependencies 2NF ขั้นที่ 3 : กำจัด Transitive Dependencies 3NF ขั้นที่ 4 : กำจัด Multi-Dependencies ขั้นที่ 4 : Every Determinate a key 4NF Boyce-Code NF ขั้นที่ 5 : มีความสัมพันธ์ระหว่างแอตทริบิวต์แบบ Join 5NF

  15. รายงานค่าใช้จ่ายในแต่ละโครงการรายงานค่าใช้จ่ายในแต่ละโครงการ

  16. ค่าใช้จ่ายโครงการ ข้อมูลเข้าไม่มีความแน่นอน ค่า Null ข้อมูลมีความซ้ำซ้อน

  17. การแปลงให้อยู่ในรูป 1NF Pname Ename Job_Class Pno Eno Chg_Hour Hour คำนิยาม 1NF1.มีการกำหนดแอตทริบิวต์ที่เป็นคีย์2.ต้องไม่มี Repeating group แต่ละแถวหรือคอลัมน์จะมีค่าได้เพียง 1 ค่าเท่านั้น3.แอตทริบิวต์ทุกตัวต้องขึ้นอยู่กับคีย์หลัก Repeating group เขียน FD ไดอะแกรมได้ ดังนี้

  18. 1NF ค่าใช้จ่ายโครงการ # ปัญหาที่เกิด????

  19. การแปลงให้อยู่ในรูป 2NF คำนิยาม 2NF รีเลชันจะเป็น 2NF ถ้า1.รีเลชันนั้นเป็น 1NF อยู่แล้ว2.รีเลชันนั้นไม่มี Partial Dependency ขั้นตอนกำจัด Partial Dependency1. เขียนแต่ละองค์ประกอบของ PK ที่มีทั้งหมดให้อยู่คนละบรรทัด และเขียน PK เดิมไว้ที่บรรทัดสุดท้าย เช่น จากเดิม PK คือ (Pno, Eno) จะเขียนได้ดังนี้Pno Eno Pno, Enoแต่ละองค์ประกอบจะกลายเป็น PK ของรีเลชันใหม่ สมมุติว่าเราตั้งชื่อรีเลชัน คือ Project, Employee และ Work ตามลำดับ2. เขียนแต่ละแอตทริบิวต์ที่ขึ้นอยู่กับแต่ละ PK ลงไป ดังนี้Project (Pno, Pname) Employee (Eno, Ename, Job_Class, Chg_Hour) Work (Pno, Eno, Hours) Pname Pno Project Ename Employee Eno Job_Class Chg_Hour Eno Work Pno Hours

  20. การแปลงให้อยู่ในรูป 3NF Ename Eno Job_Class Transitive Dependency Chg_Hour คำนิยาม 3NF รีเลชันจะเป็น 3NF ถ้า1.รีเลชันนั้นเป็น 2NF อยู่แล้ว2.รีเลชันนั้นไม่มี Transitive Dependency การกำจัดความผิดปกติของข้อมูล อันเกิดจาก TDสามารถกำจัดได้ด้วยการแยกข้อมูลที่เป็น TD ออกมาสร้างเป็นรีเลชันใหม่ แต่ต้องคงแอตทริบิวต์ที่จะทำหน้าที่ FK ไว้ในรีเลชันเดิม จากตัวอย่างข้างต้น เมื่อแปลงเป็น 3NF แล้วจะได้ทั้งหมด 4 รีเลชัน Project (Pno, Pname)Work (Pno, Eno, Hours)Employee (Eno, Ename, Job_Class)Job (Job_Class, Chg_Hour)

  21. กิจกรรม จงตรวจสอบตารางต่อไปว่าอยู่ในรูปของ 1NF 2 NF และ 3NF แล้วหรือยัง ถ้ายังจง Normalization ให้อยู่ในรูปดังกล่าว

  22. การแปลงให้อยู่ในรูป Boyce-Codd Normal Form (BCNF) รีเลชันจะอยู่ใน BCNF ถ้าทุกแอตทริบิวต์ขึ้นอยู่กับแคนดิเดตคีย์ ดังนั้น ถ้าใน 1 รีเลชันมี CK เพียงตัวเดียว 3NF และ BCNF จะเหมือนกัน โอกาสที่จะมีการละเมิดคุณสมบัติของ BCNF นั้นเกิดขึ้นได้น้อย และจะเกิดได้กับรีเลชันที่มี CK มากกว่าหนึ่งเท่านั้น ดังนั้น รีเลชันที่เป็น BCNF จะอยู่ใน 3NF ด้วย แต่รีเลชันที่เป็น 3NF อาจจะไม่เป็น BCNF ก็ได้ D จากรูป มี FD ดังนี้(A + B) C, D C B**อยู่ใน 3NF แต่ไม่เป็น BCNF** A B C C 3NF แต่ไม่เป็น BCNF A B D D 1NF A C B B A B D 3NF และเป็น BCNF C

  23. การแปลงให้อยู่ในรูป Boyce-Codd Normal Form (BCNF) เกรด เกรด 1NF 3NF แต่ไม่เป็น BCNF รหัสนศ. รหัสนศ. รหัสวิชา รหัสอ. รหัสวิชา รหัสอ. ---> การแยกตารางให้อยู่ในระดับ BCNF เงื่อนไข- นศ. 1 คน เรียนได้หลายวิชา- อาจารย์ 1 ท่าน สอนได้หลายวิชา แต่ใน 1 วิชา มีอาจารย์สอนได้ 1 ท่านเท่านั้น รหัสอ. รหัสนศ. รหัสวิชา เกรด รหัสวิชา 3NF และเป็น BCNF

  24. การแปลงให้อยู่ในรูป 4NF คำนิยาม 4NF รีเลชันจะเป็น 4NF ถ้า1.รีเลชันนั้นเป็น 3NF อยู่แล้ว2.รีเลชันนั้นไม่มี Multivalued Dependency วิธีการแปลงรีเลชันที่อยู่ใน 3NFให้ไปอยู่ใน 4NFได้ดังนี้1.ตรวจหามัลติแวลูดีเพนเดนซี2.สร้างเอนติตี้ใหม่ เพื่อใช้ในการกำจัดมัลติแวลูดีเพนเดนซี รหัสผู้แต่ง ชื่อผู้แต่ง รหัสหนังสือ ชื่อหนังสือ หัวเรื่อง ผู้แต่ง (รหัสผู้แต่ง, ชื่อผู้แต่ง)หนังสือ (รหัสหนังสือ, ชื่อหนัสือ)ผู้แต่ง-หนังสือ-หัวเรื่อง (รหัสผู้แต่ง, รหัสหนังสือ, หัวเรื่อง)

  25. การแปลงให้อยู่ในรูป 4NF ผู้แต่ง-หนังสือ-หัวเรื่อง สามารถบอกได้หลายค่า รหัสหนังสือ ชื่อผู้แต่ง รหัสหนังสือ หัวเรื่อง มัลติแวลูดีเพนเดนซี เมื่อกำจัดมัลติแวลูดีเพนเดนซี และแปลงเป็นรีเลชัน จะได้ 4 รีเลชัน ผู้แต่ง (รหัสผู้แต่ง, ชื่อผู้แต่ง)หนังสือ (รหัสหนังสือ, ชื่อหนังสือ)ผู้แต่ง-หนังสือ (รหัสผู้แต่ง, รหัสหนังสือ)หนังสือ-หัวเรื่อง (รหัสผู้แต่ง, หัวเรื่อง)

  26. การแปลงให้อยู่ในรูป 5NF (Projection-Join Normal Form : PJ/NF) คำนิยาม 5NF รีเลชัน หรือ PJ/NF ก็ต่อเมื่อ 1.รีเลชันนั้นๆมีความสัมพันธ์ระหว่างแอตทริบิวต์แบบ Join และรีเลชันย่อยๆที่จำแนกออกมา ต้องมีคีย์คู่แข่ง (CK) ของรีเลชันเดิมอยู่ด้วยเสมอ หรือ2 รีเลชันนั้นๆ ไม่มีความสัมพันธ์ระหว่างแอตทริบิวต์แบบ Join ขื้นตอนการจัดทำรีเลชันให้เป็น 5NF

  27. การแปลงให้อยู่ในรูป 5NF (Projection-Join Normal Form : PJ/NF) นักศึกษา 1 2 3 1 + 2 + 3

  28. การแปลงให้อยู่ในรูป 5NF (Projection-Join Normal Form : PJ/NF) การสอน รีเลชัน 1 รีเลชัน 2 รีเลชัน 3 รีเลชันที่เกิดจากการรวมรีเลชัน 1, 2 และ 3 Spurious Tuple

  29. สรุปการทำ Normalization คุณสมบัติของ 1NF1.มีการกำหนดแอตทริบิวต์ที่เป็นคีย์(pk)2.ต้องไม่มี repeating group แต่ละแถวหรือคอลัมน์จะมีค่าได้เพียง 1 ค่าเท่านั้น3.แอตทริบิวต์ทุกตัวต้องขึ้นอยู่กับคีย์หลัก (pk) คุณสมบัติของ 2NF1.รีเลชันนั้นเป็น 1NF อยู่แล้ว2.รีเลชันนั้นไม่มี partial dependencyขั้นตอนกำจัด Partial Dependency 1.เขียนแต่ละองค์ประกอบของ PK ที่มีทั้งหมดให้อยู่คนละบรรทัด และเขียน PK เดิมไว้ที่บรรทัด สุดท้าย และแต่ละองค์ประกอบจะกลายเป็น PK ของรีเลชันใหม่ รวมถึงการตั้งชื่อรีเลชันใหม่ด้วย 2.เขียนแต่ละแอตทริบิวต์ที่ขึ้นอยู่กับแต่ละ PK ลงไป คุณสมบัติของ 3NF1.รีเลชันนั้นต้องเป็น 2NF อยู่แล้ว 2.รีเลชันนั้น ไม่มี Transitive dependency**Transitive=การที่มี FD ระหว่างแอตทริบิวต์ที่ไม่ได้เป็นส่วนของคีย์ใดๆ**The Boyce-Codd Normal Form (BCNF)รีเลชันจะอยู่ใน BCNF ถ้าทุกแอตทริบิวต์ขึ้นอยู่กับแคนดิเดตคีย์ ดังนั้น ถ้าใน 1 รีเลชันมีแคนดิเดตคีย์เพียงตัวเดียว 3NF และ BCNF จะเหมือนกัน โอกาสที่จะมีการละเมิดคุณสมบัติของ BCNF นั้นเกิดได้น้อย และจะเกิดได้กับรีเลชันที่มีแคนดิดตคีย์มากกว่าหนึ่งเท่านั้น คุณสมบัติของ 4NF1.รีเลชันนั้ต้องเป็น 4NF อยู่แล้ว2. รีเลชันนั้นไม่มีมัลติแวลูดีเพนเดนซีคุณสมบัติของ 5NF1.รีเลชันนั้นต้องมีความสัมพันธ์ระหว่างแอตทริบิวต์แบบ Join โดยรีเลชันย่อยๆที่จำแนกออกมา ต้องมี CK ของรีเลชันเดิมอยู่ด้วยเสมอ*เมื่อทำการจำแนกรีเลชันออกเป็นรีเลชันย่อยแล้ว หากนำรีเลชันย่อยที่ถูกจำแนกมารวมกันจะต้องได้รีเลชันกลับไปเหมือนเดิมเสมอ นั่นคือ จะต้องไม่มีข้อมูล tuple ใดเกินมาจากรีเลชันเดิม (no spurious tuple) หรือไม่มีข้อมูล tuple ใดสูญหายไปจากรีเลชันเดิมหากพบว่า มีข้อมูลที่แตกต่างไปจากรีเลชันเดิมก็ไม่ควรจำแนกรีเลชันนั้นออกมา โดยให้ถือว่า รีเลชันเดิมนั้นมีคุณสมบัติอยู่ในรูปแบบที่เป็น 5NF แล้ว*

  30. ข้อควรคำนึงในการทำให้เป็นรูปแบบที่เป็นบรรทัดฐาน 1. การจำแนกรีเลชันย่อยมากเกินไป (Overnormalization) หมายถึง การจำแนกรีเลชันออกเป็นรีเลชันย่อยมากเกินกว่า ความจำเป็น 2. การ Denormalization หมายถึง การที่รีเลชันใด ๆ ถูกออกแบบให้มีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นต่ำกว่ากฎเกณฑ์ที่กำหนดไว้ ตัวอย่างเช่น รีเลชันนั้นควรถูกออกแบบให้มีคุณสมบัติอยู่ใน รูปแบบที่เป็นบรรทัดฐานขั้นที่ 3 แต่ผู้ออกแบบฐานข้อมูลกำหนดให้รีเลชันนั้นมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 2 เท่านั้น

  31. กิจกรรม 1-5NF #จากรีเลชันการลงทะเบียนต่อไปนี้ จงทำให้เป็นรูปแบบที่เป็นบรรทัดฐาน (Normal Form) ตั้งแต่ขั้นที่ 1 ถึงขั้นที่ 5 โดยอธิบายการทำในแต่ละขั้นตอนมาโดยละเอียดพร้อมวาด FD ไดอะแกรมประกอบ#

  32. แนวคิดของการ Normalization ทั้ง 5 ระดับ 1. 1NF= ทุกแอตทริบิวต์ในแต่ละtupleมีค่าของข้อมูลเพียงค่าเดียว 2. 2NF= รีเลชันนั้นต้องมีคุณสมบัติอยู่ใน 1NF แล้ว และทุกแอตทริบิวต์ที่ไม่ใช่คีย์หลักต้องมีความสัมพันธ์ระหว่างแอตทริบิวต์แบบฟังก์ชันกับคีย์หลักหรือแอตทริบิวต์ที่ประกอบกันเป็นคีย์หลัก ซึ่งความสัมพันธ์ดังกล่าวเป็นความสัมพันธ์ระหว่างแอตทริบิวต์แบบทั้งหมด หรืออีกนัยหนึ่ง รีเลชันนั้นต้องไม่มีความสัมพันธ์ระหว่างแอตทริบิวต์แบบบางส่วนเกิดขึ้น 3. 3NF= รีเลชันนั้นต้องมีคุณสมบัติอยู่ใน 2NF แล้ว และทุกแอตทริบิวต์ที่ไม่ใช่คีย์หลักไม่มีคุณสมบัติในการกำหนดค่าของแอตทริบิวต์อื่นที่ไม่ใช่คีย์หลัก หรืออีกนัยหนึ่ง รีเลชันนั้นต้องไม่มีความสัมพันธ์ระหว่างแอตทริบิวต์แบบ Transitive เกิดขึ้น 4. Boyce-CodeNF= ทุกแอตทริบิวต์ที่เป็นตัวระบุค่า หรือ Determinant ในรีเลชันนั้นต้องเป็นคีย์คู่แข่ง และไม่มีแอตทริบิวต์ใดในรีเลชันที่สามารถระบุค่าของแอตทริบิวต์ที่เป็นคีย์หลักหรือส่วนใดส่วนหนึ่งของแอตทริบิวต์ที่ประกอบกันเป็นคีย์หลักได้ 5. 4NF= รีเลชันนั้นต้องมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานของบอยส์และคอดด์แล้ว และไม่มีความสัมพันธ์ระหว่างแอตทริบิวต์แบบหลายค่า 6. 5NF= รีเลชันนั้นต้องมีความสัมพันธ์ระหว่างแอตทริบิวต์แบบ Join โดยรีเลชันย่อย ๆ ที่จำแนกออกมาต้องมีคีย์คู่แข่งของรีเลชันเดิมอยู่ด้วยเสมอ

More Related