1 / 29

Normalization

Normalization. 353352 – Special Problem (DB) Choopan Rattanapoka choopanr @ kmutnb.ac.th. การออกแบบฐานข้อมูล. InfoFilm (type, title , airtime, year, studioName , studioLocation ) ออกแบบโดยนำทุกอย่างรวมกันในตารางเดียว. ปัญหา : redundancy and anomalies. Data Redundancy

ella-paul
Download Presentation

Normalization

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 353352 – Special Problem (DB) ChoopanRattanapoka choopanr@kmutnb.ac.th

  2. การออกแบบฐานข้อมูล • InfoFilm(type, title, airtime, year, studioName, studioLocation) • ออกแบบโดยนำทุกอย่างรวมกันในตารางเดียว

  3. ปัญหา: redundancy and anomalies • Data Redundancy • รายละเอียดของฟิลม์ถูกเก็บหลายครั้ง ถ้าฟิลม์นั้นอยู่ในหลายประเภทของฟิลม์ • ที่อยู่ของผู้ผลิตฟิลม์อยู่เก็บหลายครั้ง ถ้าผู้ผลิตนั้นผลิตหลายฟิลม์ • Modification/insertion anomalies • การแก้ไขต่างๆ เช่น ที่อยู่ของผู้ผลิตฟิลม์จะต้องแก้ไขหลายที่ซึ่งอาจจะทำให้มีปัญหาเกี่ยวกับความถูกต้องของข้อมูล • Deletion anomalies • การลบข้อมูลบางแถวอาจทำให้สูญเสียข้อมูลบางอย่างเช่น อาจจะทำให้ที่อยู่ของผู้ผลิตฟิลม์หาย

  4. Decomposition • เป้าหมาย: ต้องการจะแยกความสัมพันธ์RAเป็นความสัมพันธ์ย่อย R1, R2, ... RNซึ่งเมื่อนำความสัมพันธ์ย่อยนี้มารวมกันจะต้องเท่ากับความสัมพันธ์เดิมคือRA • จะใช้ naturaljoinระหว่างความสัมพันธ์ย่อย เพื่อนำค่าต่างๆของความสัมพันธ์หลักคืนมา • R1 R2 ….. RN= RA

  5. ปัญหาของการ decomposition

  6. FunctionalDependencies • กำหนดให้X และY, เป็น2 attributes (หรือ กลุ่มของ attribute) ที่อยู่ในความสัมพันธ์เดียวกัน • เราใช้X → Y, ถ้าค่าของX เป็นตัวกำหนดค่าของ Y

  7. Example : FunctionalDependencies InfoFilm(type, title, airtime, year, studioName, studioLocation) สมมุติให้ชื่อหนัง (title) และชื่อผู้ผลิตหนัง (studioName) ไม่มีชื่อซ้ำกัน • title → type • title → airtime • title → year • title → studioName • title → studioLocation • studioName → studioLocation

  8. FunctionalDependancyProperties

  9. Canonical CoverFc • Canonical Cover (Fc) คือ subset ย่อยที่สามารถใช้กฎ transitivity เพื่อจะสร้าง functional dependancyอื่นๆ ได้ • ในset ของ functional dependancyจะต้องมี canonicalcoverเสมอ

  10. Example : Canonical Cover กำหนด Functional Dependency (F) ต่อไปนี้จงหา Fc F =numFilm→ title numFilm → airtime numFilm → numStudio numStudio→ studioName numFilm → studioName numFilm→ studioLocation numStudio→ studioLocation ซ้ำ

  11. Example : Canonical Cover F= numFilm→ title numFilm → airtime numFilm → numStudio numStudio→ studioName numFilm → studioName numFilm → studioLocation numStudio→ studioLocation CanonicalConverคือ: numFilm→ title numFilm → airtime numFilm → numStudio numStudio→ studioName numStudio→ studioLocation

  12. Normal forms 1NF 2NF 3NF BCNF 4NF 5NF แต่ละ normal form ที่ตำแหน่งI จะมีกฎเข้มงวดกว่า normal form ที่ตำแหน่ง I - 1 จุดประสงค์:การกำหนดมาตรฐานและทำให้การสร้าง schema ง่ายขึ้น โดยไม่มีข้อมูลซ้ำ และ ปัญหาในการ update ข้อมูล

  13. 1NF : the first normal form • Definition :ความสัมพันธ์จะอยู่ในรูป 1NF ถ้าทุก attribute จะมีค่าแค่ค่าเดียว ความสัมพันธ์นี้ไม่เป็น 1NF เพราะ attribute acteurมีมากกว่า 1 ค่า

  14. การทำความสัมพันธ์ให้เป็น 1NF • สร้าง attribute เพิ่มขึ้น : • รอบหนัง(numFilm, numClient, period) • รอบหนัง(numFilm, numClient, startTime, endTime)

  15. การทำความสัมพันธ์ให้เป็น 1NF • 2. สร้างความสัมพันธ์ใหม่ : • Studio(name, filmTitle) • Studio(name) • Film(name, filmTitle)

  16. 2NF : the second normal form • Definition:ความสัมพันธ์จะเป็น 2NF ก็ต่อเมื่อ • ความสัมพันธ์นี้เป็น 1NF • ทุก attributeที่ไม่มีขึ้นอยู่กับ key ห้ามไปขึ้นอยู่กับส่วนหนึ่งของ key • Objectif • รับประกันไม่มีข้อมูลซ้ำ • รับประกันว่า attribute จะขึ้นอยู่กับ key เท่านั้นและไม่ขึ้นอยู่กับบางส่วนของ key

  17. Example : 2NF Actor(numFilm, numArtist, title, salary) • Canonical Cover : • numFilm, numArtist→ salary • numFilm → title

  18. Example : 2NF Actor(numFilm, numArtist, title, salary) • Canonical Cover : • numFilm, numArtist→ salary • numFilm → title ผิดกฎ

  19. การทำ 2NF สร้างความสัมพันธ์ใหม่: • Actor (numFilm, numArtist, title, salary) • Actor (numFilm, numArtist, salary) • Film (numFilm, title)

  20. 3NF : the third normal form • Definition:ความสัมพันธ์จะเป็น 3NF ก็ต่อเมื่อ • ความสัมพันธ์นี้เป็น 2NF • ทุก attribute ที่ไม่ได้ขึ้นอยู่กับ key ห้ามไปขึ้นอยู่กับ attribute ที่ไม่ใช่ key • เป้าหมาย • รับประกันไม่มีการซ้ำกันของข้อมูล • มั่นใจได้ว่าค่าต่างๆ จะขึ้นกับ key เท่านั้น

  21. Example : 3NF Film (numFilm, title, numStudio, studioName) • Canonical Cover: • numFilm → title • numFilm → numStudio • numStudio → studioName

  22. Example : 3NF Film (numFilm, title, numStudio, studioName) • Canonical Cover: • numFilm → title • numFilm → numStudio • numStudio → studioName (ผิดกฎ)

  23. การทำความสัมพันธ์ให้เป็น 3NF สร้างความสัมพันธ์ใหม่ : Film (numFilm, title, numStudio, studioName) • Film (numFilm, title, numStudio) • Studio (numStudio, studioName)

  24. BCNF : Boyce-Codd normal form • Definition:ความสัมพันธ์จะเป็น BCNFก็ต่อเมื่อด้านซ้ายของ functional dependency เป็น candidate key

  25. Example : BCNF Localisation (cru, pays, region, quality) Cru : ที่ปลูก Pays : ชื่อย่านที่ปลูก Region : ชื่อเมืองที่ปลูก Quality : คุณภาพ • Canonical Cover : • cru, pays → region • cru, pays → quality • region→ pays

  26. BCNF : exemple Localisation (cru, pays, region, quality) • Canonical Cover: • cru, pays → region • cru, pays → quality • region→ pays (ผิดกฎ) Crus (cru, pays, quality) Region(region, pays)

  27. Exercise 1 Student(ID, name, age, address, foodCost, subject, lecturer, grade) • ID :รหัสประจำตัวนักศึกษา • foodCost:ราคาอาหารกลางวัน{T1, T2, T3} แล้วแต่อายุของนักศึกษา • subject :วิชาที่ลงทะเบียนเรียน • lecturer :อาจารย์ที่สอนวิชานั้น • จงหา Caninocal Cover ของความสัมพันธ์ Student

  28. จาก Exercise 1 จาก Canonical Cover ที่ได้ถามว่าอยู่ในรูป • 1NF • 2NF • 3NF • BCNF หรือไม่ • จงทำให้ความสัมพันธ์นี้อยู่ในรูป BCNF

  29. Exercise 2 จงทำให้ความสัมพันธ์ต่อไปนี้ ให้อยู่ในรูป 3NF InfoFilm(type, title, airtime, year, studioName, studioLocation) • กำหนดให้: • title ของฟิลม์ไม่มีชื่อซ้ำกัน • studioNameก็ไม่มีการซ้ำกัน

More Related