Presentation is loading. Please wait.

Presentation is loading. Please wait.

חורף - תשס " ג 236363- DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.

Similar presentations


Presentation on theme: "חורף - תשס " ג 236363- DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים."— Presentation transcript:

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}


Download ppt "חורף - תשס " ג 236363- DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים."

Similar presentations


Ads by Google