งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

อ. เกษรา วรนาถจินดา c.th นอร์มัลไลเซชัน (Normalization) เอกสารอ้างอิง วิเชียร เปรมชัยสวัสดิ์. (2550). ระบบฐานข้อมูล พิมพ์ครั้งที่ 11. กรุงเทพฯ.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "อ. เกษรา วรนาถจินดา c.th นอร์มัลไลเซชัน (Normalization) เอกสารอ้างอิง วิเชียร เปรมชัยสวัสดิ์. (2550). ระบบฐานข้อมูล พิมพ์ครั้งที่ 11. กรุงเทพฯ."— ใบสำเนางานนำเสนอ:

1 อ. เกษรา วรนาถจินดา c.th นอร์มัลไลเซชัน (Normalization) เอกสารอ้างอิง วิเชียร เปรมชัยสวัสดิ์. (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 : ความสัมพันธ์ระหว่างแอตทริบิวต์ในแต่ละรีเลชัน แบ่งได้ 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 ไดอะแกรม ใช้สัญลักษณ์ ดังนี้ A B

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

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

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

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

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

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

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

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

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

13 2.การทำให้เป็นรูปแบบที่เป็นบรรทัดฐาน (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** ขั้นตอนการทำนอร์มัลฟอร์ม (Normal Form)

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

15 รายงานค่าใช้จ่ายในแต่ละโครงการ PnoPnameEnoEnameJob_ClassChg_HourHoursTotal 11ID Card103สมชาย ไม้ดีSA แท่น งามยิ่งDatabase Designer ชาย ศรีดี*Database Designer แม็ก ยอดยิ่งProgrammer อมร ศรีดีSystem Analysis Subtotals Palm114สุรศักดิ์ ดีงามApplication Designer กมล ไม้งามGeneral Support นาย ยิ่งยอด*System Analysis ธิดา ไม้งามDss Analysis Subtotals Web service105ชาย ศรีดีDatabase Designer นาย ยิ่งยอดSystem Analysis วิว ยิ่งดี*Application Designer หิน งามดีClerical Support แม็ก ยอดยิ่งProgrammer Subtotals57310

16 ค่าใช้จ่ายโครงการ PnoPnameEnoEnameJob_ClassChg_HourHours 11ID Card103สมชาย ไม้ดีSA แท่น งามยิ่งDatabase Designer ชาย ศรีดี*Database Designer แม็ก ยอดยิ่งProgrammer อมร ศรีดีSystem Analysis Palm114สุรศักดิ์ ดีงามApplication Designer กมล ไม้งามGeneral Support นาย ยิ่งยอด*System Analysis ธิดา ไม้งามDss Analysis Web service105ชาย ศรีดีDatabase Designer นาย ยิ่งยอดSystem Analysis วิว ยิ่งดี*Application Designer หิน งามดีClerical Support แม็ก ยอดยิ่งProgrammer ค่า Nullข้อมูลมีความซ้ำซ้อน ข้อมูลเข้าไม่มีความแน่นอน

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

18 PnoPnameEnoEnameJob_ClassChg_HourHours 11ID Card103สมชาย ไม้ดีSA ID Card101แท่น งามยิ่งDatabase Designer ID Card105ชาย ศรีดี*Database Designer ID Card106แม็ก ยอดยิ่งProgrammer ID Card102อมร ศรีดีSystem Analysis Palm114สุรศักดิ์ ดีงามApplication Designer Palm118กมล ไม้งามGeneral Support Palm104นาย ยิ่งยอด*System Analysis Palm112ธิดา ไม้งามDss Analysis Web service105ชาย ศรีดีDatabase Designer Web service104นาย ยิ่งยอดSystem Analysis Web service113วิว ยิ่งดี*Application Designer Web service111หิน งามดีClerical Support Web service106แม็ก ยอดยิ่งProgrammer ค่าใช้จ่ายโครงการ # ปัญหาที่เกิด???? 1NF

19 การแปลงให้อยู่ในรูป 2NF คำนิยาม 2NF รีเลชันจะเป็น 2NF ถ้า 1.รีเลชันนั้นเป็น 1NF อยู่แล้ว 2.รีเลชันนั้นไม่มี Partial Dependency ขั้นตอนกำจัด Partial Dependency 1. เขียนแต่ละองค์ประกอบของ 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) Pno Eno Pname Ename Job_Class Chg_Hour Hours Pno Eno Project Employee Work

20 การแปลงให้อยู่ในรูป 3NF คำนิยาม 3NF รีเลชันจะเป็น 3NF ถ้า 1.รีเลชันนั้นเป็น 2NF อยู่แล้ว 2.รีเลชันนั้นไม่มี Transitive Dependency Eno Ename Job_Class Chg_Hour 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 ให้อยู่ในรูปดังกล่าว P_IDP_NameE_IDE_NameJob_CalssChg_HourHour 11EAU Web Site103 สมชาย ไม้ดี SA แท่นงามยิ่ง Database Designer ชาย ดีศรี Database Designer แม็ก ยอดยิ่ง Programmer อมร ดีศรี SA BU Registration114 สุรศักดิ์ ดีงาม Application Designer กมลไม้งาม General Support นาย ยิ่งยอด SA แม็ก ยอดยิ่ง Programmer ธิดา ไม้งาม Database Designer ชาย ดีศรี Database Designer กิจกรรม

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

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

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

25 การแปลงให้อยู่ในรูป 4NF รหัสผู้แต่งรหัสหนังสือหัวเรื่อง A001B001Comp Sc A001B001Maths A002B001Comp Sc A002B001Maths A003B002Maths รหัสหนังสือ หัวเรื่อง ชื่อผู้แต่ง ผู้แต่ง (รหัสผู้แต่ง, ชื่อผู้แต่ง) หนังสือ (รหัสหนังสือ, ชื่อหนังสือ) ผู้แต่ง-หนังสือ (รหัสผู้แต่ง, รหัสหนังสือ) หนังสือ-หัวเรื่อง (รหัสผู้แต่ง, หัวเรื่อง) ผู้แต่ง - หนังสือ - หัวเรื่อง รหัสหนังสือ สามารถบอกได้หลายค่า มัลติแวลูดีเพนเดนซี เมื่อกำจัดมัลติแวลูดีเพนเดนซี และแปลงเป็นรีเลชัน จะได้ 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) ชื่อ นศ.ชื่อ อ.ที่ปรึกษาวิชาเอก สมชาย พลจันทร์สัมพันธ์ เย็นสำราญสถิติ สุทิศา พินิจไพฑูรย์ศิริภัทรา เหมือนมาลัยคณิตศาสตร์ ณัฐพร ประคองเก็บเมธี ปิยะคุณสถิติ นภดล ทับทิมทองศิริชัย ศรีพรหมคณิตศาสตร์ มัทนา พินิจไพฑูรย์สัมพันธ์ เย็นสำราญสถิติ สมชาย พลจันทร์ศิริภัทรา เหมือนมาลัยคณิตศาสตร์ ชื่อ นศ.ชื่อ อ.ที่ปรึกษาวิชาเอก สมชาย พลจันทร์สัมพันธ์ เย็นสำราญสถิติ สุทิศา พินิจไพฑูรย์ศิริภัทรา เหมือนมาลัยคณิตศาสตร์ ณัฐพร ประคองเก็บเมธี ปิยะคุณสถิติ นภดล ทับทิมทองศิริชัย ศรีพรหมคณิตศาสตร์ มัทนา พินิจไพฑูรย์สัมพันธ์ เย็นสำราญสถิติ สมชาย พลจันทร์ศิริภัทรา เหมือนมาลัยคณิตศาสตร์ ชื่อ นศ.ชื่อ อ.ที่ปรึกษา สมชาย พลจันทร์สัมพันธ์ เย็นสำราญ สุทิศา พินิจไพฑูรย์ศิริภัทรา เหมือนมาลัย ณัฐพร ประคองเก็บเมธี ปิยะคุณ นภดล ทับทิมทองศิริชัย ศรีพรหม มัทนา พินิจไพฑูรย์สัมพันธ์ เย็นสำราญ สมชาย พลจันทร์ศิริภัทรา เหมือนมาลัย ชื่อ อ.ที่ปรึกษาวิชาเอก สัมพันธ์ เย็นสำราญสถิติ ศิริภัทรา เหมือนมาลัยคณิตศาสตร์ เมธี ปิยะคุณสถิติ ศิริชัย ศรีพรหมคณิตศาสตร์ ชื่อ นศ.วิชาเอก สมชาย พลจันทร์สถิติ สุทิศา พินิจไพฑูรย์คณิตศาสตร์ ณัฐพร ประคองเก็บสถิติ นภดล ทับทิมทองคณิตศาสตร์ มัทนา พินิจไพฑูรย์สถิติ สมชาย พลจันทร์คณิตศาสตร์ นักศึกษา

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

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

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

31 รหัสนศ.ชื่อนักศึกษารหัสอ.ชื่ออาจารย์ที่ปรึกษารหัสชุดวิชาชื่อชุดวิชาที่ลงทะเบียนหมู่เรียนหน่วยกิต สมชาย พลจันทร์Q1059สัมพันธ์ เย็นสำราญ729101เศรษฐศาสตร์เบื้องต้น คณิตศาสตร์และสถิติ คอมพิวเตอร์เบื้องต้น สุทิศา พินิจไพฑูรย์Q1011ศิริภัทรา เหมือนมาลัย729111คณิตศาสตร์และสถิติ คอมพิวเตอร์เบื้องต้น การจัดการการเงิน ณัฐพร ประคองเก็บQ1061เมธี ปิยะคุณ729111คณิตศาสตร์และสถิติ คอมพิวเตอร์เบื้องต้น นพดล ทับทิมทองQ1035ศิริชัย ศรีพรหม729111คณิตศาสตร์และสถิติ คอมพิวเตอร์เบื้องต้น มัทนา พินิจไพฑูรย์Q1059สัมพันธ์ เย็นสำราญ729103การจัดการการตลาด สมชาย พลจันทร์Q1011ศิริภัทรา เหมือนมาลัย999211คอมพิวเตอร์เบื้องต้น7123 กิจกรรม 1-5NF #จากรีเลชันการลงทะเบียนต่อไปนี้ จงทำให้เป็นรูปแบบที่เป็นบรรทัดฐาน (Normal Form) ตั้งแต่ ขั้นที่ 1 ถึงขั้นที่ 5 โดยอธิบายการทำในแต่ละขั้นตอนมาโดยละเอียดพร้อมวาด FD ไดอะแกรม ประกอบ#

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


ดาวน์โหลด ppt อ. เกษรา วรนาถจินดา c.th นอร์มัลไลเซชัน (Normalization) เอกสารอ้างอิง วิเชียร เปรมชัยสวัสดิ์. (2550). ระบบฐานข้อมูล พิมพ์ครั้งที่ 11. กรุงเทพฯ.

งานนำเสนอที่คล้ายกัน


Ads by Google