ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
ได้พิมพ์โดยPravat Sindudeja ได้เปลี่ยน 9 ปีที่แล้ว
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 ก็ไม่มีการซ้ำกัน
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.