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

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

Normalization 353352 – Special Problem (DB) Choopan Rattanapoka

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


งานนำเสนอเรื่อง: "Normalization 353352 – Special Problem (DB) Choopan Rattanapoka"— ใบสำเนางานนำเสนอ:

1 Normalization – Special Problem (DB) Choopan Rattanapoka

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

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

4 Decomposition เป้าหมาย : ต้องการจะแยกความสัมพันธ์ R A เป็นความสัมพันธ์ย่อย R 1, R 2,... R N ซึ่งเมื่อนำ ความสัมพันธ์ย่อยนี้มารวมกันจะต้องเท่ากับ ความสัมพันธ์เดิมคือ R A จะใช้ natural join ระหว่างความสัมพันธ์ย่อย เพื่อนำค่าต่างๆของความสัมพันธ์หลักคืนมา R 1 R 2 ….. R N = R A

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

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

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

8 Functional Dependancy Properties

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

10 Example : Canonical Cover กำหนด Functional Dependency (F) ต่อไปนี้ จงหา F c 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 Canonical Conver คือ : 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 1. สร้าง 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 InfoFilm(type, title, airtime, year, studioName, studioLocation) กำหนดให้ : title ของฟิลม์ไม่มีชื่อซ้ำกัน studioName ก็ไม่มีการซ้ำกัน จงทำให้ความสัมพันธ์ต่อไปนี้ ให้อยู่ในรูป 3NF


ดาวน์โหลด ppt Normalization 353352 – Special Problem (DB) Choopan Rattanapoka

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


Ads by Google