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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
11. การแปลงโมเดลแบบ E-R เป็นรูปแบบเชิงสัมพันธ์
Advertisements

ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยสงขลานครินทร์
HO Session 14: Database Design Principles
ความรู้เบื้องต้นเกี่ยวกับระบบฐาจข้อมูล
เทคโนโลยีฐานข้อมูลสำนักงาน
วิชาหัวข้อเรื่องที่ทันสมัยทางวิทยาการคอมพิวเตอร์ 6 มกราคม 2555
การเสริมสร้างความเข้มแข็ง ของระบบบัณฑิตศึกษา 14 กุมภาพันธ์ 2550.
E-R Model บรรยายโดย สุรางคนา ธรรมลิขิต.
โดย ดร.วรินทร์ สุวรรณวิสูตร อาจารย์ผู้ประสานงานวิชาโครงการ
แผนการสอน วิชา Database Design and Development
อ.กิตติพงศ์ เซ่งลอยเลื่อน อาจารย์พิเศษ มหาวิทยาลัยแม่โจ้
ทักษะการวิเคราะห์.
บทที่ 2 รูปแบบของฐานข้อมูล.
บทที่ 5 รูปแบบที่เป็นบรรทัดฐาน (Normal Form)
ความรู้ทั่วไปเกี่ยวกับโปรแกรม Microsoft Office Access 2003
Seminar in computer Science
ความรู้เบื้องต้นเกี่ยวกับฐานข้อมูล
Normalization.
ฐานข้อมูลเชิงสัมพันธ์
การพัฒนากิจกรรม การเรียนรู้ โดยโครงงาน
การเตรียมเอกสาร สอบหัวข้อโครงงาน
การวางแผนและการดำเนินงาน
Use Case Diagram.
บรรยายโดย สุรางคนา ธรรมลิขิต
SCC : Suthida Chaichomchuen
ศึกษาโครงงานพิเศษ (Study Project) 1/2557
การออกแบบแบบจำลองข้อมูล
ซอฟต์แวร์พัฒนาระบบฐานข้อมูล Normalization
การจัดการฐานข้อมูลเบื้องต้น (Database Management System)
ความรู้พื้นฐานเกี่ยวกับการวิจัย
การเสริมสร้างความเข้มแข็งของระบบบัณฑิตศึกษา
การเขียนรายงานการใช้เอกสารประกอบการสอน
สถาปัตยกรรมของระบบฐานข้อมูล
การออกแบบฐานข้อมูลเชิงสัมพันธ์
การพัฒนาโปรแกรมระบบสารสนเทศสำหรับอาจารย์ที่ปรึกษา
ฐานข้อมูลเชิงสัมพันธ์
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
แบบจำลองความสัมพันธ์ระหว่างข้อมูล
รูปแบบที่เป็นบรรทัดฐาน
ประวัติความเป็นมาของฐานข้อมูลและยกตัวอย่างโปรแกรมในการจัดการฐานข้อมูล
รายวิชา ระบบฐานข้อมูล 1 หลักการวิเคราะห์และออกแบบระบบฐานข้อมูล
Charter 8 1 Chapter 8 การจัดการฐานข้อมูล Database Management.
หมวดที่ 2 การลงทะเบียนเรียน
เรื่องข้อมูลและสาระสนเทศ
บทที่ 3 การวิเคราะห์ Analysis.
Data Modeling Chapter 6.
การทำ Normalization อ. นุชรัตน์ นุชประยูร.
ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)
ขั้นตอนการจัดทำโครงงาน
(การลดความซ้ำซ้อนของข้อมูล)
ฐานข้อมูล Data Base.
ศ.ดร.สุมาลี สังข์ศรี มหาวิทยาลัยสุโขทัยธรรมาธิราช
ง การงานอาชีพและเทคโนโลยี 1 ครูสหรัฐ บัวทอง
Normalization – Special Problem (DB) Choopan Rattanapoka
ทบทวนความรู้เดิม (Activate Prior Knowledge)
การประยุกต์ใช้ฐานข้อมูล
การออกแบบฐานข้อมูลเชิงสัมพันธ์
โมเดลเชิงสัมพันธ์ The relational model.
งานกลุ่ม กลุ่มที่ 3 เรื่อง ฐานข้อมูลเชิงสัมพันธ์
หลักการเขียนโปรแกรม ( )
ส่วนประกอบของแบบจำลองอีอาร์
E-R to Relational Mapping Algorithm
สถานศึกษาที่สังกัด วิทยาลัยเทคโนโลยีพระรามหก
เรื่อง การพัฒนาบทเรียนคอมพิวเตอร์ช่วยสอน วิชาการใช้โปรแกรมกราฟิก
โครงสร้างข้อมูลแบบ สแตก (stack)
คณะผู้จัดทำ นาย ชาญชัย คุณยศยิ่ง นาย จีรศักดิ์ ฝั่งมณี
การเตรียมข้อมูล (Data preparation)
ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF
Normalization Lecture 9.
กระบวนการปรับบรรทัดฐาน Normalization Process
ใบสำเนางานนำเสนอ:

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

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

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

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

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

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

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

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

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

ความสัมพันธ์ระหว่างแอตทริบิวต์แบบหลายค่า (multivalued dependency : MVD) = MVD จะเกิดขึ้นได้เมื่อรีเลชันหนึ่งๆ ประกอบด้วย3 แอตทริบิวต์ขึ้นไป และแอตทริบิวต์ที่เป็น determinant สามารถระบุค่าของแอตทริบิวต์อื่นที่เป็น dependent ได้มากกว่าหนึ่งค่า คือ ข้อมูลของแอตทริบิวต์ที่เป็น dependent จะเป็นกลุ่มของข้อมูล ความสัมพันธ์ระหว่างแอตทริบิวต์แบบหลายค่า สามารถใช้สัญลักษณ์ ในการสื่อความหมายดังนี้ A B A C การสอน-การปรึกษา รหัสอาจารย์ รหัสชุดวิชาที่สอน รหัส นศ.ในการปรึกษา Q1011 999211 41010943 41013780 Q1035 729101 41012451 729104 Q1059 729111 41010703 41013327 Q1061 729103 410121147 รีเลชันการสอน-การปรึกษา มีความสัมพันธ์ระหว่างแอตทริบิวต์แบบฟังก์ชัน ดังนี้ รหัสอาจารย์ รหัสชุดวิชาที่สอน รหัสอาจารย์ รหัสนักศึกษาในการปรึกษา

ความสัมพันธ์ระหว่างแอตทริบิวต์แบบ Join (join dependency) ที่ปรึกษา รหัส นศ. ชื่อ นศ. รหัส อ. ชื่อ อ.ที่ปรึกษา 41010703 สมชาย พลจันทร์ 01059 สัมพันธ์ เย็นสำราญ 41010943 สุทิศา พินิจไพฑูรย์ 01011 ศิริภัทรา เหมือนมาลัย 41012147 ณัฐพร ประคองเก็บ 01061 เมธี ปิยะคุณ 41012451 นภดล ทับทิมทอง 01035 ศิริชัย ศรีพรหม 41013327 มัทนา พินิจไพฑูรย์ 41013780 ศิริภัทรา เหมือนมาลัย นศ. นศ.-อ. ที่ปรึกษา รหัส นศ. ชื่อ นศ. 41010703 สมชาย พลจันทร์ 41010943 สุทิศา พินิจไพฑูรย์ 41012147 ณัฐพร ประคองเก็บ 41012451 นภดล ทับทิมทอง 41013327 มัทนา พินิจไพฑูรย์ 41013780 รหัส อ. ชื่อ อ.ที่ปรึกษา 01011 ศิริภัทรา เหมือนมาลัย 01035 ศิริชัย ศรีพรหม 01059 สัมพันธ์ เย็นสำราญ 01061 เมธี ปิยะคุณ รหัส นศ. รหัส อ. 41010943 01011 41013780 41012451 01035 41010703 01059 4103327 41012147 01061 รหัส นศ. ชื่อ นศ. รหัส อ. ชื่อ อ.ที่ปรึกษา 41010703 สมชาย พลจันทร์ 01059 สัมพันธ์ เย็นสำราญ 41010943 สุทิศา พินิจไพฑูรย์ 01011 ศิริภัทรา เหมือนมาลัย 41012147 ณัฐพร ประคองเก็บ 01061 เมธี ปิยะคุณ 41012451 นภดล ทับทิมทอง 01035 ศิริชัย ศรีพรหม 41013327 มัทนา พินิจไพฑูรย์ 41013780 ศิริภัทรา เหมือนมาลัย รีเลชันที่เกิดจากการรวมทั้ง 3 รีเลชันด้วยกัน

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

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**

ขั้นตอนการทำนอร์มัลไลเซชัน (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

รายงานค่าใช้จ่ายในแต่ละโครงการ Pno Pname Eno Ename Job_Class Chg_Hour Hours Total 11 ID Card 103 สมชาย ไม้ดี SA 500 23.8 11900 101 แท่น งามยิ่ง Database Designer 19.4 9700 105 ชาย ศรีดี* 35.7 17850 106 แม็ก ยอดยิ่ง Programmer 200 12.6 2520 102 อมร ศรีดี System Analysis 400 9520 Subtotals 51490 22 Palm 114 สุรศักดิ์ ดีงาม Application Designer 24.6 4920 118 กมล ไม้งาม General Support 100 45.3 4530 104 นาย ยิ่งยอด* 250 32.4 8100 112 ธิดา ไม้งาม Dss Analysis 44.0 8800 26350 33 Web service ชาย ศรีดี 64.7 32350 นาย ยิ่งยอด 48.4 12100 113 วิว ยิ่งดี* 23.6 5900 111 หิน งามดี Clerical Support 22.0 4400 12.8 2560 57310

ข้อมูลเข้าไม่มีความแน่นอน ค่า Null ข้อมูลมีความซ้ำซ้อน ค่าใช้จ่ายโครงการ Pno Pname Eno Ename Job_Class Chg_Hour Hours 11 ID Card 103 สมชาย ไม้ดี SA 500 23.8 101 แท่น งามยิ่ง Database Designer 19.4 105 ชาย ศรีดี* 35.7 106 แม็ก ยอดยิ่ง Programmer 200 12.6 102 อมร ศรีดี System Analysis 400 22 Palm 114 สุรศักดิ์ ดีงาม Application Designer 24.6 118 กมล ไม้งาม General Support 100 45.3 104 นาย ยิ่งยอด* 250 32.4 112 ธิดา ไม้งาม Dss Analysis 44.0 33 Web service ชาย ศรีดี 64.7 นาย ยิ่งยอด 48.4 113 วิว ยิ่งดี* 23.6 111 หิน งามดี Clerical Support 22.0 12.8 ข้อมูลเข้าไม่มีความแน่นอน ค่า Null ข้อมูลมีความซ้ำซ้อน

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

1NF ค่าใช้จ่ายโครงการ # ปัญหาที่เกิด???? Pno Pname Eno Ename Job_Class Chg_Hour Hours 11 ID Card 103 สมชาย ไม้ดี SA 500 23.8 101 แท่น งามยิ่ง Database Designer 19.4 105 ชาย ศรีดี* 35.7 106 แม็ก ยอดยิ่ง Programmer 200 12.6 102 อมร ศรีดี System Analysis 400 22 Palm 114 สุรศักดิ์ ดีงาม Application Designer 24.6 118 กมล ไม้งาม General Support 100 45.3 104 นาย ยิ่งยอด* 250 32.4 112 ธิดา ไม้งาม Dss Analysis 44.0 33 Web service ชาย ศรีดี 64.7 นาย ยิ่งยอด 48.4 113 วิว ยิ่งดี* 23.6 111 หิน งามดี Clerical Support 22.0 12.8 # ปัญหาที่เกิด????

การแปลงให้อยู่ในรูป 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) Pname Pno Project Ename Employee Eno Job_Class Chg_Hour Work Eno Pno Hours

การแปลงให้อยู่ในรูป 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)

กิจกรรม จงตรวจสอบตารางต่อไปว่าอยู่ในรูปของ 1NF 2 NF และ 3NF แล้วหรือยัง ถ้ายังจง Normalization ให้อยู่ในรูปดังกล่าว P_ID P_Name E_ID E_Name Job_Calss Chg_Hour Hour 11 EAU Web Site 103 สมชาย ไม้ดี SA 500 23.8 101 แท่นงามยิ่ง Database Designer 450 19.4 105 ชาย ดีศรี 35.7 106 แม็ก ยอดยิ่ง Programmer 400 12.6 102 อมร ดีศรี 22 BU Registration 114 สุรศักดิ์ ดีงาม Application Designer 300 24.6 118 กมลไม้งาม General Support 200 45.3 104 นาย ยิ่งยอด 32.4 20 112 ธิดา ไม้งาม 44.0

การแปลงให้อยู่ในรูป 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 A B D B C 3NF และเป็น BCNF

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

การแปลงให้อยู่ในรูป 4NF คำนิยาม 4NF รีเลชันจะเป็น 4NF ถ้า 1.รีเลชันนั้นเป็น 3NF อยู่แล้ว 2.รีเลชันนั้นไม่มี Multivalued Dependency วิธีการแปลงรีเลชันที่อยู่ใน 3NF ให้ไปอยู่ใน 4NF ได้ดังนี้ 1.ตรวจหามัลติแวลูดีเพนเดนซี 2.สร้างเอนติตี้ใหม่ เพื่อใช้ในการกำจัดมัลติแวลูดีเพนเดนซี รหัสผู้แต่ง รหัสหนังสือ หัวเรื่อง ชื่อหนังสือ ชื่อผู้แต่ง A001 B001 Comp Sc Networks อาริต Maths A002 วรพจน์ A003 B002 Calculus โชติพัฒน์ รหัสผู้แต่ง ชื่อผู้แต่ง รหัสหนังสือ ชื่อหนังสือ หัวเรื่อง ผู้แต่ง (รหัสผู้แต่ง, ชื่อผู้แต่ง) หนังสือ (รหัสหนังสือ, ชื่อหนัสือ) ผู้แต่ง-หนังสือ-หัวเรื่อง (รหัสผู้แต่ง, รหัสหนังสือ, หัวเรื่อง)

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

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

การแปลงให้อยู่ในรูป 5NF (Projection-Join Normal Form : PJ/NF) นักศึกษา ชื่อ นศ. ชื่อ อ.ที่ปรึกษา วิชาเอก สมชาย พลจันทร์ สัมพันธ์ เย็นสำราญ สถิติ สุทิศา พินิจไพฑูรย์ ศิริภัทรา เหมือนมาลัย คณิตศาสตร์ ณัฐพร ประคองเก็บ เมธี ปิยะคุณ นภดล ทับทิมทอง ศิริชัย ศรีพรหม มัทนา พินิจไพฑูรย์ 1 2 3 ชื่อ นศ. ชื่อ อ.ที่ปรึกษา สมชาย พลจันทร์ สัมพันธ์ เย็นสำราญ สุทิศา พินิจไพฑูรย์ ศิริภัทรา เหมือนมาลัย ณัฐพร ประคองเก็บ เมธี ปิยะคุณ นภดล ทับทิมทอง ศิริชัย ศรีพรหม มัทนา พินิจไพฑูรย์ ชื่อ อ.ที่ปรึกษา วิชาเอก สัมพันธ์ เย็นสำราญ สถิติ ศิริภัทรา เหมือนมาลัย คณิตศาสตร์ เมธี ปิยะคุณ ศิริชัย ศรีพรหม ชื่อ นศ. วิชาเอก สมชาย พลจันทร์ สถิติ สุทิศา พินิจไพฑูรย์ คณิตศาสตร์ ณัฐพร ประคองเก็บ นภดล ทับทิมทอง มัทนา พินิจไพฑูรย์ 1 + 2 + 3 ชื่อ นศ. ชื่อ อ.ที่ปรึกษา วิชาเอก สมชาย พลจันทร์ สัมพันธ์ เย็นสำราญ สถิติ สุทิศา พินิจไพฑูรย์ ศิริภัทรา เหมือนมาลัย คณิตศาสตร์ ณัฐพร ประคองเก็บ เมธี ปิยะคุณ นภดล ทับทิมทอง ศิริชัย ศรีพรหม มัทนา พินิจไพฑูรย์

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

สรุปการทำ 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 แล้ว*

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

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

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