1 / 30

ได้รับการคิดค้นและพัฒนา โดย E.F.Codd

Normalization Concept. ได้รับการคิดค้นและพัฒนา โดย E.F.Codd

uriah
Download Presentation

ได้รับการคิดค้นและพัฒนา โดย E.F.Codd

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 Concept • ได้รับการคิดค้นและพัฒนา โดย E.F.Codd • คือ กระบวนการใช้แปลงเค้าร่าง ของรีเลชั่น(Relation data model)ที่อยู่ในรูปแบบที่ซับซ้อน ให้อยู่ในรูปแบบที่เป็นบรรทัดฐาน (Normal Form) เพื่อให้ง่ายต่อการใช้งาน นั่นคือมีความถูกต้องชัดเจนในการแสดงถึงข้อมูล ความสัมพันธ์และ ข้อบังคับของข้อมูล • เรียกอีกอย่างหนึ่งว่า The Normalization Process • เทคนิคที่ใช้ในการกำหนด relation ให้ถูกต้องและชัดเจน คือ Normalization • Normalization เป็นวิธีการแบบ bottom-up ในการออกแบบฐานข้อมูล ซึ่งเริ่มต้นด้วยการกำหนดความสัมพันธ์ระหว่าง attributes

  2. Dependency Rule เป็นกฎที่กล่าวถึง ความสัมพันธ์ระหว่างค่าของแอทริบิวต์ในแต่ละรีเลชั่น โดยมีรูปแบบความสัมพันธ์ 5 รูปแบบ คือ 1. Functional Dependency เป็นความสัมพันธ์ระหว่างค่าของ แอททริบิวต์แบบฟังก์ชั่น 2. Partial Dependency เป็นความสัมพันธ์ระหว่างค่าของแอททริบิวต์แบบบางส่วน 3. Transitive Dependencyเป็นความสัมพันธ์ระหว่างค่าของแอททริบิวต์แบบ ทรานซิทีฟ ที่ Nonkey Attribute สามารถระบุค่า Attribute อื่นได้ 4. Multivalued Dependency เป็นความสัมพันธ์ระหว่างค่าของแอททริบิวต์แบบหลายค่า 5. Join Dependency คือการเชื่อมโยงแอททริบิวต์ที่เหมือนกัน(เป็นคีย์)ระหว่าง รีเลชั่นที่แตกออกไป

  3. Functional Dependency Functional Dependency เป็นความสัมพันธ์ระหว่างค่าของ แอททริบิวต์แบบฟังก์ชั่นที่มี Attribute หนึ่ง หรือ มี Attribute ที่มากกว่า 1 Attribute ประกอบกันและสามารถระบุค่าของแอททริบิวต์อื่นๆ ในแต่ละแถวได้ชัดเจน ซึ่งเรียกว่าคีย์หลัก (Primary Key)และมีค่าเป็นเอกลักษณ์ (Unique) SUPPLIER SNO SNAME CITY S1 SERI BANGKOK S2 WANIDA RAYONG S3 SOMCHAI RAYONG S4 ORAPIN BANGKOK S5 TANACHOTE PATUMTANE SNO สามารถระบุค่า SNAME , CITY

  4. Partial Dependency Partial Dependencyเป็นความสัมพันธ์ระหว่างค่าของแอททริบิวต์ แบบบางส่วน ที่มักเกิดขึ้นกับรีเลชั่นที่มีคีย์หลักเป็นคีย์ผสม(Composite Key) และมี Attribute เพียงบางส่วนของคีย์หลัก สามารถระบุค่าของ Attribute อื่น ที่ไม่ใช่คีย์หลักได้ SNOPNO PNAME QTY S1 P1 PEN 100 S1 P2 TABLE 200 S1 P3 DESK 300 S2 P1 PEN 300 S2 P3 DESK 400 S3 P4 BAG 100 ORDER1 SNO,PNO สามารถระบุค่า PNAME , QTY PNO สามารถระบุค่า PNAME ได้ด้วย

  5. Transitive Dependency Transitive Dependency เป็นความสัมพันธ์ระหว่างค่าของแอททริบิวต์แบบทรานซิทีฟ ที่มักเกิดขึ้นกับรีเลชั่นที่ NonKey Attribute สามารถระบุค่า Attribute อื่น ๆ ในแต่ละแถวของรีเลชั่นได้ SNO SNAME CITY RATING S1 SERI BANGKOK 2 S2 WANIDA RAYONG 3 S3 SOMCHAI RAYONG 3 S4 ORAPIN BANGKOK 2 S5 TANACHOTE PATUMTANE 1 SUPPLIER1 SNO สามารถระบุค่า SNAME,CITY,RATING CITY สามารถระบุค่า RATING

  6. Multivalued Dependency Multivalued Dependency เป็นความสัมพันธ์ระหว่างค่าของแอททริบิวต์แบบหลายค่าที่มักเกิดขึ้นกับรีเลชั่นที่มี Attibute อย่างน้อย 3 Attribute และมี Attribute หนึ่ง สามารถระบุค่า Attribute อื่นๆ ในรีเลชั่นนั้น ได้มากกว่า 1 ค่า SNOPJNOCITY S1 PJ01 BANGKOK S1 PJ01 SAMUTPRAKARN S1 PJ02 BANGKOK S1 PJ02 SAMUTPRAKARN S2 PJ03 RAYONG S2 PJ03 CHONBURE S2 PJ04 RAYONG S2 PJ04 CHONBURE SPJC SNO สามารถระบุค่า PJNO ได้หลายค่า SNO สามารถระบุค่า CITY ได้หลายค่า

  7. Normalization Objective • เพื่อลดเนื้อที่ของการจัดเก็บข้อมูล โดยการทำให้ข้อมูลเกิดความซ้ำซ้อนน้อยที่สุด • เพื่อเพิ่มความถูกต้องและเชื่อถือได้ของข้อมูลและลดปัญหาข้อขัดแย้งของข้อมูล • เพื่อลดปัญหาที่เกิดจากการเพิ่ม ปรับปรุง และแก้ไขข้อมูล(Insert/Update/Delete Anomalies) Advantage of The Normalization Process • ใช้เป็นเครื่องมือช่วยในการออกแบบฐานข้อมูลเชิงสัมพันธ์ • ช่วยให้ทราบถึงปัญหาที่สืบเนื่องมาจากการออกแบบฐานข้อมูลเชิงสัมพันธ์ • ช่วยบ่งบอกถึงวิธีการแก้ไขปัญหาที่เกิดขึ้น • เป็นการรับประกันว่ารีเลชั่นที่ได้รับการแก้ไขแล้วจะไม่ก่อให้เกิดปัญหาอีก

  8. Normalization Vocabulary • Repeating Group คือ กลุ่มของข้อมูลซ้ำ ที่จัดเก็บอยู่ในรีเลชั่นใดๆ หรือการที่Attributeของข้อมูลแถวใดแถวหนึ่งมีค่าของข้อมูล มากกว่าหนึ่งค่า • Unnormalization Relation คือรีเลชั่นที่อาจมีกลุ่มข้อมูลซ้ำเก็บอยู่หรือยังไม่ผ่านกระบวนการนอร์มัลไลเซชั่น โดยยังมีโครงสร้างที่ซับซ้อนยากแก่การจัดการข้อมูล (Insert ,Delete & Update) • Overnormalizationคือการแตกรีเลชั่นมากเกินไป • Fully Function Dependencyคือ การที่แอทริบิวต์หรือกลุ่มของ แอทริบิวต์สามารถระบุค่าแอทริบิวต์ต่างๆ ในแถวของรีเลชั่นได้อย่างชัดเจน

  9. Anomaly Rule การกระทำที่ก่อให้เกิดความผิดพลาดใดๆ กับข้อมูล แบ่งออกเป็น 3 ข้อดังนี้ • Insert Anomalyคือความผิดพลาดที่เกิดจากการเพิ่มข้อมูล เช่น การเพิ่มข้อมูลที่เป็นคีย์หลักด้วยค่าว่างหรือซ้ำกับข้อมูลเดิม (มีผลต่อ The Entity Integrity Rule) • Delete Anomalyคือ ความผิดพลาดที่เกิดจากการลบข้อมูล เช่น ข้อมูลที่ถูกลบ ถูกอ้างอิงจากรีเลชั่นอื่น • Update Anomalyคือ ความผิดพลาดที่เกิดจากการแก้ไขปรับปรุง ข้อมูล อันก่อให้เกิดความขัดแย้งของข้อมูลในรีเลชั่นที่สัมพันธ์กัน เช่น การแก้ไขข้อมูลของแถวใด ต้องตรวจสอบว่ามีการแก้ไขข้อมูลแถวอื่น ที่มีข้อมูลเดียวกันครบถ้วน

  10. Level of The Normalization Process Level 1 First Normal Form (1 NF) Level 2 Second Normal Form (2 NF) Level 3 Third Normal Form (3 NF) Level 4 Boyce/Codd Normal Form (BCNF) Level 5 Fourth Normal Form (4 NF) Level 6 Fifth Normal Form (5 NF)

  11. First Normal Form : 1 NF • เป็นกระบวนการแรกสุดที่ใช้ปรับรีเลชั่นที่มีกลุ่มข้อมูลซ้ำ (Repeating Group) ภายใต้กฎ ดังนี้ “ ค่าของ Attribute ของแต่ละ แถวจะมีค่าของข้อมูลเพียงค่าเดียว ” • วิธีการทำ 1NF 1. กำหนด แอทริบิวต์ และ คีย์(โดยทุกแอทริบิวต์ต้องขึ้นอยู่กับคีย์หลัก และคีย์ต้องไม่ซ้ำกับข้อมูลในแถวอื่น( EntityIntegrity Rule ) 2. เติมข้อมูลให้สมบูรณ์ เพื่อกำจัดปัญหากลุ่มข้อมูลซ้ำ 3. แตกรีเลชั่นเพื่อกำจัดปัญหาข้อขัดแย้งของข้อมูล ที่อาจเกิดขึ้นจากการเพิ่ม ลบ แก้ไข ข้อมูล โดยแยกกลุ่มข้อมูลซ้ำเป็นรีเลชั่นใหม่ 4. กำหนด PK ของรีเลชั่นใหม่ โดยใช้ PK ของรีเลชั่นเดิมมาประกอบ

  12. First Normal Form : 1 NF

  13. First Normal Form : 1 NF รายการสั่งซื้อ ผู้ผลิต

  14. Second Normal Form : 2 NF • ความหมาย (Partial Dependency) เป็นกระบวนการที่ใช้กับรีเลชั่นที่อยู่ในรูป 1 NF แล้ว “Attribute ที่เป็นเพียงบางส่วนของคีย์หลักจะต้องไม่สามารถระบุค่าของ Attribute ที่ไม่ได้เป็นคีย์หลัก ” คือจะต้องไม่มีความสัมพันธ์ ลักษณะ PartialDependency เกิดขึ้น ชื่อสินค้า จำนวน รหัสผู้ผลิต รหัสสินค้า รีเลชั่นรายการสั่งซื้อ มี รหัสผู้ผลิต & รหัสสินค้า เป็น PK

  15. Partial Dependency Partial Dependencyเป็นความสัมพันธ์ระหว่างค่าของแอททริบิวต์ แบบบางส่วน ที่มักเกิดขึ้นกับรีเลชั่นที่มีคีย์หลักเป็นคีย์ผสม (Composite Key) และมี Attribute เพียงบางส่วนของคีย์หลัก สามารถระบุค่าของ Attribute อื่น ที่ไม่ใช่คีย์หลัก (Non-Key Attribute) ได้ รายการสั่งซื้อ รหัสผู้ผลิตรหัสสินค้า ชื่อสินค้า จำนวน S1 P1 PEN 100 S1 P2 TABLE 200 S1 P3 DESK 300 S2 P1 PEN 300 S2 P3 DESK 400 S3 P4 BAG 100

  16. Second Normal Form : 2 NF • วิธีการทำ 2NF 1. สำรวจรีเลชั่นให้แน่ใจว่าอยู่ในรูปแบบ1 NF (ไม่มีกลุ่มข้อมูลซ้ำ) เรียบร้อยแล้ว 2. กำจัดปัญหาPartial Dependency โดยแตกรีเลชั่นเดิม ให้เป็นรีเลชั่นใหม่อย่างน้อย 2 รีเลชั่น มีขั้นตอนดังนี้ 2.1 แยก Attribute ที่มีความสัมพันธ์กันเพียงบางส่วนของคีย์หลักและเป็นตัวระบุ Attribute อื่น และ Attribute ที่ถูกระบุ ไว้ในรีเลชั่นใหม่ 2.2 กำหนดให้ PK จากรีเลชั่นเดิม เป็น PK ของ รีเลชั่นใหม่ด้วย 2.3 ตัด Attribute ที่แยกออกมาจากรีเลชั่นเดิม(PK ยังต้องอยู่ครบ) 3. พยายามขจัดปัญหาข้อขัดแย้งของข้อมูล ที่อาจเกิดขึ้นจากการเพิ่ม ลบ แก้ไขข้อมูลของรีเลชั่นหนึ่งๆ (Insert,Delete,Update)

  17. Partial Dependency รายการสั่งซื้อ 1 รหัสผู้ผลิต รหัสสินค้า ชื่อสินค้า จำนวน S1 P1 PEN 100 S1 P2 TABLE 200 S1 P3 DESK 300 S2 P1 PEN 300 S2 P3 DESK 400 S3 P4 BAG 100 จะได้ รหัสผู้ผลิตรหัสสินค้า จำนวน S1 P1 100 S1 P2 200 S1 P3 300 S2 P1 300 S2 P3 400 S3 P4 100 รหัสสินค้า ชื่อสินค้า P1 PEN P2 TABLE P3 DESK P4 BAG

  18. Third Normal Form : 3 NF • ความหมาย (Transitive Dependency) เป็นกระบวนการที่ใช้กับรีเลชั่นที่อยู่ในรูป 2 NF แล้ว “ Nonkey Attribute จะต้องไม่มีคุณสมบัติในการระบุค่า Attribute อื่นๆได้” กล่าวคือ จะต้องไม่มีความสัมพันธ์แบบ Transitive Dependency เกิดขึ้น ภายในรีเลชั่นหนึ่งๆ รหัสผู้ผลิต ชื่อผู้ผลิต อัตรา จังหวัด ระบุค่า

  19. Transitive Dependency Transitive Dependency เป็นความสัมพันธ์ระหว่างค่าของแอททริบิวต์แบบทรานซิทีฟ คือ NonKey Attribute สามารถระบุค่า Attribute อื่น ๆ ในแถวของรีเลชั่นได้ ผู้ผลิต รหัสผู้ผลิต ชื่อผู้ผลิต จังหวัด อัตรา S1 SERI BANGKOK 2 S2 WANIDA RAYONG 3 S3 SOMCHAI RAYONG 3 S4 ORAPIN BANGKOK 2 S5 TANACHOTE PATUMTANE 1

  20. Third Normal Form : 3 NF • วิธีการทำ 3NF 1. สำรวจรีเลชั่นให้แน่ใจว่าอยู่ในรูปแบบ 2 NF (ไม่เกิด Partial Dependency ) เรียบร้อยแล้ว 2. กำจัด Transitive Dependency (การขึ้นต่อกันของ Attribute ที่ไม่ใช่คีย์หลัก) 2.1 แยก Attribute ที่มีความสัมพันธ์แบบ Transitive Dependencyไปไว้ในรีเลชั่นใหม่ 2.2 กำหนดให้ Attribute ที่ระบุค่า Attribute อื่น เป็น PK ของ รีเลชั่นใหม่ด้วย และตัด Attribute ที่ถูกระบุค่า ออกจากรีเลชั่นเดิม 2.3 ใส่ Attribute ที่เป็น PK ของรีเลชั่นใหม่ไว้ในรีเลชั่นเดิมด้วย 3. พยายามขจัดปัญหาข้อขัดแย้งของข้อมูล ที่อาจเกิดขึ้นจากการเพิ่ม ลบ แก้ไข ข้อมูล

  21. Transitive Dependency ผู้ผลิต 1 รหัสผู้ผลิต ชื่อผู้ผลิต จังหวัด อัตรา S1 SERI BANGKOK 2 S2 WANIDA RAYONG 3 S3 SOMCHAI RAYONG 3 S4 ORAPIN BANGKOK 2 S5 TANACHOTE PATUMTANE 1 จะได้ รหัสผู้ผลิต ชื่อผู้ผลิต จังหวัด S1 SERI BANGKOK S2 WANIDA RAYONG S3 SOMCHAI RAYONG S4 ORAPIN BANGKOK S5 TANACHOTE PATUMTANE จังหวัด อัตรา PATUMTANE 1 BANGKOK 2 RAYONG 3

  22. Boyce/Codd Normal Form:BCNF • ความหมาย เป็นกระบวนการที่ใช้กับรีเลชั่นที่อยู่ในรูป 3 NF แล้ว “ จะต้องไม่มี Attribute อื่นสามารถระบุค่าของคีย์หลัก หรือบางส่วนของคีย์หลักได้” จะเป็นการขยายภาพของ 3 NF ให้ชัดเจนขึ้น โดยมองถึงรีเลชั่นที่มีคีย์คู่แข่งหลายคีย์ ซึ่งแต่ละคีย์เป็นคีย์ผสม อาจเกิดความซ้ำซ้อนของข้อมูลได้ Candidate Key ชื่อผู้ผลิต จำนวน รหัสผู้ผลิต รหัสสินค้า สามารถระบุค่า PK

  23. Boyce/Codd Normal Form:BCNF • หลักการ ของการทำ BCNF 1. สำรวจรีเลชั่นที่ต้องการบรรทัดฐานให้แน่ใจว่าอยู่ในรูปแบบ 3 NF (ไม่เกิด Transitive Dependency ) แล้ว 2. กำจัด Nonkey Attribute/คีย์คู่แข่ง/คีย์ผสม ที่สามารถระบุถึงบางส่วนของคีย์หลักหรือคีย์หลักได้ 2.1 แยก Attribute ที่เป็นส่วนหนึ่งของคีย์คู่แข่ง ไปไว้ในรีเลชั่นใหม่ 2.2 กำหนดให้ Attribute ที่เป็นคีย์หลัก ที่ถูกระบุค่า เป็น PK ของ รีเลชั่นใหม่ 2.3 ใส่ Attribute ที่เป็น PK ของรีเลชั่นใหม่ไว้ในรีเลชั่นเดิมด้วย 3. พยายามขจัดปัญหาข้อขัดแย้งของข้อมูล ที่อาจเกิดขึ้นจากการเพิ่ม ลบ แก้ไข ข้อมูล

  24. Boyce/Codd Normal Form:BCNF รายการสั่งซื้อ 1 รหัสผู้ผลิตรหัสสินค้า ชื่อผู้ผลิต จำนวน S1 P1 SERI 100 S1 P2 SERI 200 S1 P3 SERI 300 S2 P1 WANIDA 300 S2 P3 WANIDA 400 S3 P4 SOMCHAI 100 จะได้ รหัสผู้ผลิตรหัสสินค้า จำนวน S1 P1 100 S1 P2 200 S1 P3 300 S2 P1 300 S2 P3 400 S3 P4 100 รหัสผู้ผลิต ชื่อผู้ผลิต S1 SERI S2 WANIDA S3 SOMCHAI

  25. Fourth Normal Form : 4NF • ความหมาย (Multivalued Dependency) เป็นกระบวนการที่ใช้กับรีเลชั่นที่อยู่ในรูป BCNF แล้ว “ จะต้องไม่เกิด ความสัมพันธ์ในการระบุค่า Attribute แบบหลายค่า โดยที่ Attribute เหล่านี้ไม่มีความสัมพันธ์กัน” คือ หลีกเลี่ยงการเกิดขึ้นของ Independently Multi valued Dependency โดยที่รีเลชั่นจะต้องมีอย่างน้อย 3 Attribute PK PK PK SNO PJNO CITY ระบุค่าแบบหลายค่า ระบุค่าแบบหลายค่า SNO+PJNO+CITY เป็น PK Attribute PJNOและ CITY ไม่มีความสัมพันธ์กัน

  26. Fourth Normal Form : 4NF • วิธีการทำ 4NF 1. สำรวจรีเลชั่นที่ต้องการบรรทัดฐานให้แน่ใจว่าอยู่ในรูปแบบ BCNF แล้ว 2. กำจัด Independently Multivalued Dependency โดย 2.1 วิเคราะห์หา Attribute ที่ถูกระบุค่าอย่างน้อย 2 Attribute ที่ไม่มีความสัมพันธ์กัน แยก Attribute หนึ่งไปไว้ในรีเลชั่นใหม่ 2.2 ใส่ Attribute ที่เป็นตัวระบุค่า Attribute อื่นแบบหลายค่า ไปไว้ใน Relation ใหม่ด้วย และกำหนดให้เป็น PK 2.3 กำหนดให้ Attribute ในข้อ 2.2 เป็น PK ของรีเลชั่นเดิมด้วย 3. พยายามขจัดปัญหาข้อขัดแย้งของข้อมูล ที่อาจเกิดขึ้นจากการ เพิ่ม ลบ แก้ไข ข้อมูล

  27. Multivalued Dependency SNO PJNOCITY S1 PJ01 BANGKOK S1 PJ01 SAMUTPRAKARN S1 PJ02 BANGKOK S1 PJ02 SAMUTPRAKARN S2 PJ03 RAYONG S2 PJ03 CHONBURE S2 PJ04 RAYONG S2 PJ04 CHONBURE SPJC SNO PJNO S1 PJ01 S1 PJ02 S2 PJ03 S2 PJ04 SNOCITY S1 BANGKOK S1 SAMUTPRAKARN S2 RAYONG S2 CHONBURE

  28. Fifth Normal Form : 5NF • ความหมาย(Join Dependency) เป็นกระบวนการที่ใช้กับรีเลชั่นที่อยู่ในรูป 4NF แล้ว “ จะต้องเกิดคุณสมบัติของ Join Dependency คือ สามารถนำรีเลชั่นที่เป็นผลลัพธ์จากการแตกรีเลชั่น มารวม (Join) กัน ด้วยคีย์แล้วได้ข้อมูลที่เหมือนกับรีเลชั่นเดิม” NK NK PK NK SNAME RATING SNO CITY

  29. Fifth Normal Form : 5NF • ขั้นตอน ของ การทำ 5NF (Project join normal form) 1. สำรวจรีเลชั่นว่าอยู่ในรูปแบบ 4 NF แล้ว 2. นำรีเลชั่น ที่เป็นผลลัพธ์ในขั้นตอนที่ผ่านมา มารวม(Join) กัน (ทำ Natural Join) แล้วเปรียบเทียบข้อมูลของรีเลชั่นที่ได้ว่าตรงกับรีเลชั่นตั้งต้น (ก่อนทำ 4 NF)หรือไม่ 3. ถ้าผลลัพธ์ของการเปรียบเทียบในข้อ 2 เหมือนกันให้สำรวจ Anomaly Rule เพิ่มด้วย ถ้าไม่พบความผิดปกติของข้อมูลถือว่าจบกระบวนการบรรทัดฐาน 4. ถ้าผลลัพธ์จากการเปรียบเทียบในข้อ 2 ไม่เหมือนกัน(มีข้อมูลที่เกินหรือขาดหายไป) ให้ทำการแตกรีเลชั่นเพิ่มขึ้นอีก 1 รีเลชั่น แล้วทำการ Join รีเลชั่นทั้ง 3 รีเลชั่นใหม่ เพื่อตรวจสอบว่าข้อมูลเหมือนกับรีเลชั่นตั้งต้นหรือไม่

  30. Join Dependency SNO SNAME CITY S1 SERI BANGKOK S2 WANIDA RAYONG S3 SOMCHAI RAYONG S4 ORAPIN BANGKOK S5 TANACHOTE PATUMTANE CITY RATING PATUMTANE 1 BANGKOK 2 RAYONG 3 SNO SNAME CITY RATING S1 SERI BANGKOK 2 S2 WANIDA RAYONG 3 S3 SOMCHAI RAYONG 3 S4 ORAPIN BANGKOK 2 S5 TANACHOTE PATUMTANE 1 ผลการ Join

More Related