Download presentation
Presentation is loading. Please wait.
1
חורף - תשס " ג 236363- DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים את אחת מתת - הרלציות באופן חוקי, גם העדכון על מסד הנתונים כולו ( ה - join בין תת - הרלציות ) הוא חוקי. – אחרת ( אין שימור תלויות ): כאשר נעדכן טבלה אחת, נצטרך לבדוק מול הטבלאות האחרות כדי לוודא שהעדכון חוקי.
2
חורף - תשס " ג 236363- DBMS, Design2 שימור תלויות – דוגמה דוגמה : – נתונה הסכמה ( עיר, קידומת, טלפון )R והתלויות הפונקציונליות { עיר ( טלפון, קידומת ), קידומת עיר } =F – אותה קידומת יכולה להיות משותפת לכמה ערים, אך לכל עיר יש קידומת אחת בלבד, אותו מספר טלפון יכול להופיע בערים שונות, אך לא בערים עם אותה קידומת. – שימור מידע : הפרוק {( עיר, קידומת )R 2, ( עיר, טלפון )R 1 ]= משמר מידע : R1 R2 = עיר, R2 \ R1 = קידומת, F עיר קידומת – שאלה : האם הפירוק משמר תלויות ?
3
חורף - תשס " ג 236363- DBMS, Design3 דוגמה - המשך הפרוק אינו משמר תלויות, כי : כל אחת מהרלציות r 1, r 2 מקיימת את F. אבל ה -join אינו מקיים את F : כאשר נרצה להוסיף או לשנות מספר טלפון ב - r 1 נצטרך לבדוק גם ב - r 2 כדי לוודא שהשינוי הוא חוקי. לא די שבאותה עיר לא יהיו שני טלפונים זהים - אסור שיהיו טלפונים זהים גם בערים שונות באותו אזור חיוג. עירטלפון חיפה 123 4 טבעון 123 4 עירקידומ ת חיפה 04 טבעו ן 04 r1=r1=r2=r2= עירקידומתטלפון חיפה 041234 טבעון 041234
4
חורף - תשס " ג 236363- DBMS, Design4 שימור תלויות – המשך אינטואיטיבית : תלות פונקציונלית f נשמרת בפרוק אם קיימת תת - סכמה שמכילה את כל האטיביוטים המופיעים ב - f, או אם ניתן להסיק את f מתוך תלויות אחרות שנשמרות בפרוק. הגדרה : תהי R סכמה רלציונית, תהי F קבוצת תלויות פונקציונליות מעל R, ותהי S R. ההיטל של F על תת - הסכמה S ( סימון : s F) הוא : s F={X Y | X Y F + X Y S} – יש לשים לב לכך שהתלויות בהיטל נלקחות מתוך F +. הגדרה : תהי R סכמה רלציונית, תהי F קבוצת תלויות פונקציונליות מעל R, ויהי = {R 1, …,R n }. הוא משמר תלויות (dependency preserving) בהינתן F אם לכל קבוצת רלציות {r 1, …., r n } ( מעל הסכמות {R 1,…,R n } בהתאמה ) כך ש -r i Ri F לכל i = 1,…,n מתקיים n i=1 r i F.
5
חורף - תשס " ג 236363- DBMS, Design5 אלגוריתם לבדיקת שימור תלויות בהינתן סכמה R, קבוצת תלויות פונקציונליות F ופרוק = {R 1, …,R n }, האלגוריתם הבא בודק האם משמר תלויות : For each f = ( X Y) in F do begin Z f X; Repeat For i = 1 to n do Z f Z f ((Z f R i ) + F R i ) Until no more changes to Z f End; is dependency-preserving iff Y Z f for each f in F. אינטואיציה : לכל תלות X Y, נבנה מעין " סגור " של X, באמצעות תלויות שכבר הראינו שהן נשמרות בפירוק, ונבדוק האם Y מוכל בו.
6
חורף - תשס " ג 236363- DBMS, Design6 אלגוריתם לבדיקת שימור תלויות – דוגמה הפרוק {( עיר, קידומת ) R 2, ( עיר, קידומת )R 1 = , התלות עיר ( טלפון, קידומת ) = f אינה נשמרת : { טלפון, קידומת } = Z f דוגמה : נתונה הסכמה R(A, B, C, D), קבוצת תלויות F = {A B, AC D, BC D}. האם הפירוק = {R 1 (A, B), R 2 (B, C, D)} משמר תלויות ? – נבדוק לכל תלות האם היא נשמרת בפירוק. – התלות A B נשמרת כי AB R 1, – התלות BC D נשמרות כי BCD R 2 – נותר לוודא שהתלות AC D נשמרת ( לפי האלגוריתם ): R 1,A B {AC} {ABC} R 2, BC D {ABCD} {D}
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.