Download presentation
Presentation is loading. Please wait.
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= R1R2…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 : R1R2 R1 R1R2 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 בלבד. ניתן לבדוק ביעילות את אוסף הצמצומים. הפירוק לעיל הוא פירוק משמר תלויות אם מתקיים (F1F2…Fn)+=F+ (תמיד מתקיים (F1F2…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,t2r המקיים t1[]=t2[] קיימות nיות t3,t4r כך ש 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 - ) , (, )} ; }
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.