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

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

Normalization – Special Problem (DB) Choopan Rattanapoka

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


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

1 Normalization 353352 – 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 เป้าหมาย : ต้องการจะแยกความสัมพันธ์ RA เป็นความสัมพันธ์ย่อย R1, R2, ... RN ซึ่งเมื่อนำความสัมพันธ์ย่อยนี้มารวมกันจะต้องเท่ากับความสัมพันธ์เดิมคือ RA จะใช้ natural join ระหว่างความสัมพันธ์ย่อย เพื่อนำค่าต่างๆของความสัมพันธ์หลักคืนมา R R … RN = RA

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 Fc Canonical Cover (Fc) คือ subset ย่อยที่สามารถใช้กฎ transitivity เพื่อจะสร้าง functional dependancy อื่นๆ ได้ ใน set ของ functional dependancy จะต้องมี canonical cover เสมอ

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 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
สร้าง 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 numFilm → title
Actor (numFilm, numArtist, title, salary) Canonical Cover : numFilm, numArtist → salary numFilm → title

18 Example : 2NF numFilm → title ผิดกฎ
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 : ที่ปลูก
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 จงทำให้ความสัมพันธ์นี้อยู่ในรูป BCNF
จาก Exercise 1 จาก Canonical Cover ที่ได้ถามว่าอยู่ในรูป 1NF 2NF 3NF BCNF หรือไม่ จงทำให้ความสัมพันธ์นี้อยู่ในรูป BCNF

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


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

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


Ads by Google