Presentation is loading. Please wait.

Presentation is loading. Please wait.

תיכון בסיס-נתונים יחסי

Similar presentations


Presentation on theme: "תיכון בסיס-נתונים יחסי"— Presentation transcript:

1 תיכון בסיס-נתונים יחסי
כיצד לבחור תבנית תפיסתית אופטימלית? מהם הקריטריונים לתבנית ‘אופטימלית’? הרעיונות יודגמו על המערכת הבנקאית עם תבניות היחסים Branch=(branch-name, assets, branch-city) Borrow=(branch-name, loan-number, customer-name, amount)

2 תבנית יחסים אחת לעומת תבניות אחדות
במקום Branch=(branch-name, assets, branch-city) Borrow=(branch-name, loan-number, customer-name, amount) Lending=(branch-name, assets, branch-city, loan-number, customer-name, amount) מופע רגעי של היחס lending lending

3 כפילות מידע הזנה חלקית - ערכי דמה.
עדכון - העדר קונסיסטנטיות, עדכון מרובה. מחיקה - מחיקת נתונים חלקיים (על חשבון חיסכון) עלולה לגרום למחיקת חלקים אחרים (פרטי הסניף).

4 פירוק משמר מידע (lossless join decomposition)
תהי R תבנית יחסים. קבוצה של תבניות יחסים R1,R2,…Rn תיקרא פירוק של R אם: R= R1R2…Rn כלומר כל אחת מהתכונות בR מופיעה באחת התבניות Ri . יהי r יחס על התבנית R, ו ri הוא היחס המתקבל מהטלת היחס r על התבנית Ri , כלומר פירוק משמר מידע הוא פירוק המקיים לכל יחס חוקי r r=r1⋈r2 ⋈r3 … ⋈r n ri=Ri(r)

5 פירוק שאינו משמר מידע (lossy decomposition)
פירוק התבנית Borrow Borrow=(branch-name, loan-number, customer-name, amount) לתת-התבניות Amt-scheme=(amount, customer-name) Loan-scheme=(branch-name, loan-number, amount) amt=amount, customer-name (borrow) loan= branch-name, loan-number, amount (borrow)

6 borrow amt loan

7 היחס loan ⋈ amt כולל שתי nיות שאינן קיימות ביחס המקורי.
הפירוק של Borrow-scheme ל Amt-scheme ו Loan-scheme אינו משמר מידע (lossy join decomposition).

8 נירמול בעזרת תלויות פונקציונליות
תכונות רצויות של תבנית בסיס-הנתונים פירוק משמר מידע (lossless-join decomposition). שימור תלויות (dependency preservation). העדר כפילות מידע (repetition of information).

9 פירוק משמר מידע משפט הפירוק: תהי R תבנית יחסים וF קבוצת תלויות פונקציונליות על R. יהי R1,R2 פירוק של R. פירוק זה יהיה פירוק משמר מידע אם לפחות אחת מהתלויות הפונקציונליות הבאות שייכת ל +F : R1R2 R1 R1R2 R2

10 דוגמא Lending=(branch-name, assets, branch-city, loan-number, customer-name, amount) R1 =(branch-name, assets, branch-city) R2 =(branch-name, loan-number, customer-name, amount) הפירוק משמר מידע כי הת"פ branch-name assets, branch-city חלה על R1

11 שימור תלויות (dependency preservation)
היכולת לבדוק תלויות פונקציונליות מבלי לחשב צירופים טבעיים. תהי F קבוצה של תלויות פונקציונליות על תבנית R ויהי R1,R2…Rn פירוק של R. הצמצום (restriction) של F ל Ri היא הקבוצה Fi של תלויות פונקציונליות ב +F הכוללות תכונות השייכות ל Ri בלבד. ניתן לבדוק ביעילות את אוסף הצמצומים. הפירוק לעיל הוא פירוק משמר תלויות אם מתקיים (F1F2…Fn)+=F+ (תמיד מתקיים (F1F2…Fn)+F+ )

12 כפילות מידע פירוק Lending ל Borrow ול Branch מסיר חלק מכפילות המידע. (המידע אודות הסניפים הופרד מהמידע על חשבונות ההלוואה) הפירוק של Borrow ל Customer-loan ולLoan-info הפחית את כפילות המידע עוד יותר.

13 BCNF  היא ת”פ טריוויאלית.
תבנית יחסים R היא ב BCNF ביחס לקבוצה F של ת”פ אם לכל ת”פ ב +F מהצורה  , כאשר , R , מתקיים לפחות אחד משני התנאים  היא ת”פ טריוויאלית.  הוא מפתח על של התבנית R. בסיס נתונים יחסי הוא ב BCNF אם כל התבניות בו הן ב BCNF.

14 אלגוריתם לפירוק משמר מידע ב BCNF
result={R}; while ( result contains a scheme Ri that is not in BCNF) { let  F+ be a nontrivial functional dependency on Ri with  ,   Ri such that  is not a superkey of Ri and = ; result= (result- {Ri})  {(Ri - ) , (, ) }; }

15 3NF  היא ת”פ טריוויאלית.
תבנית יחסים R היא ב 3NF, ביחס לקבוצה F של ת”פ אם לכל ת”פ ב +F מהצורה  , כאשר כאשר , Rמתקיים לפחות אחד משלושת התנאים  היא ת”פ טריוויאלית.  הוא מפתח על של התבנית R. כל תכונה A ב - שייכת למפתח קביל כלשהו של R. בסיס נתונים יחסי הוא ב3NF אם כל התבניות בו הן ב 3NF.

16 אלגוריתם לפירוק משמר מידע ומשמר תלויות ב 3NF
Compute Fc , the canonical cover of F; result= ; for (each functional dependency  in Fc ) * if (none of the schemes in result contains  ) result= result  (, ) ; if (none of the schemes in result contains a candidate key for R ) result= result  any candidate key for R; * Loop on the fd’s of Fc in descending order of their size

17 נירמול באמצעות תלויות רב-ערכיות
BC = (loan-number, customer-name, street, customer- city) customer-name  street, customer-city יחס חוקי על התבנית BC יחס לא חוקי על התבנית BC

18 הגדרה פורמלית תהי R תבנית יחסים ויהיו  ו  קבוצות כלשהן של תכונות מR. התלות הרב ערכית    מתקיימת על R אם לכל יחס חוקי r(R) לכל זוג nיות t1,t2r המקיים t1[]=t2[] קיימות nיות t3,t4r כך ש t1[]=t2[] = t3[]=t4[] t3[]=t1[] t3[R-]=t2[R-] t4[]=t2[] t4[R-]=t1[R-] (ניתן להתעלם מהדרישות על t4 שכן ניתן לקבלן מהחלפת t1 ו t2)    is a trivial MVD if    or if  =R

19 כללי הסק לתלויות רב-ערכיות
Complementation rule: if    holds, then   R-- holds. Multivalued augmentation rule: if    holds and R and  , then    holds Multivalued transitivity rule: if    holds and    holds, then   - holds. Replication rule: if    holds, then    holds. Coalescence rule: if    holds and  and there is a  such that R and  and   , then    holds. rules (together with armstrong rules) - complete and sound.

20 כללי הסק נוספים ניתנים להוכחה מהכללים לעיל (+כללי ארמסטרונג)
Multivalued union rule: If    holds and    holds, then    holds . Intersection rule: If    holds and    holds, then     holds Difference rule: if    holds and    holds, then   - holds.

21 4NF תבנית יחסים R היא ב 4NF ביחס לקבוצה D של תלויות פונקציונליות ותלויות רב-ערכיות אם כל תלות רב-ערכית   השייכת ל +D כאשר , R מקיימת לפחות אחד מהתנאים:   היא תלות רב-ערכית טריביאלית  הוא מפתח על של R . בסיס נתונים הוא ב 4NF, אם כל התבניות בו הן ב 4NF

22 משפט הפירוק (Fagin) תהי R תבנית יחסים ו D קבוצה של תלויות פונקציונליות ורב-ערכיות החלות עליה. יהיו R1 וR2 פירוק של R . פירוק זה מהווה פירוק משמר מידע אם ורק אם אחת מהתלויות הרב ערכיות הבאות שייכת ל +D R1  R2  R1 R1  R2  R2

23 אלגוריתם לפירוק משמר מידע ב 4NF
result={R}; while ( result contains a scheme Ri that is not in 4NF) { let  be a nontrivial MVD that holds on Ri such that Ri is not in F+ and = ; result= (result- {Ri})  {(Ri - ) , (, )} ; }


Download ppt "תיכון בסיס-נתונים יחסי"

Similar presentations


Ads by Google