170 likes | 469 Views
תכנון סכמות רלציוניות. Customer. Ordered. איזה תכנון טוב יותר?. CustOrders. תכנון – כללי (השוואה). חסרונות התכנון עם טבלה אחת: כפילות אשר גורמת ל: בזבוז מקום בזיכרון – השם והפקולטה של כל לקוח נשמרים פעמים אחדות (כמספר הספרים שהוא הזמין).
E N D
תכנון סכמות רלציוניות Customer Ordered איזה תכנון טוב יותר? CustOrders 236363- DBMS, תכנון סכמות, Design
תכנון – כללי (השוואה) • חסרונות התכנון עם טבלה אחת: • כפילות אשר גורמת ל: • בזבוז מקום בזיכרון – השם והפקולטה של כל לקוח נשמרים פעמים אחדות (כמספר הספרים שהוא הזמין). • עדכון יותר קשה – עדכון הפקולטה של הלקוח (צריך לעדכן אותה בכל הספרים שהוא הזמין). • אם עודכנו רק חלק מהרשומות, המסד לא עקבי. • קשה לייצג לקוח שלא הזמין אף ספר. 236363- DBMS, תכנון סכמות, Design
תכנון – כללי (המשך) • תכנון טוב: • מונע כפילויות. • מאפשר עדכונים יעילים. • פשוט ככל האפשר. • בלי יותר מדי טבלאות. • כלי אחד לתכנון – בניית מודל ישויות-קשרים (ERD). • כלי נוסף – תלויות פונקציונליות. 236363- DBMS, תכנון סכמות, Design
תלויות פונקציונליותFunctional Dependency • תלויות פונקציונליות: הכלי הבסיסי בתכנון סכמות רלציוניות. • אינטואיציה: תלויות מבטאות את העובדה שלא כל צרוף של ערכים הוא חוקי והגיוני במסד הנתונים. • הגדרה: תהי R(A1,…,An) סכמה רלציונית, תהי r רלציה מעל הסכמה R, ויהיו X, Y R קבוצות אטריביוטים. רלציה rמקיימת את התלות הפונקציונאלית X Y (סימון: r X Y) אם לכל שתי n-יות t1, t2 r כך ש- t1[X] = t2[X] מתקיים t1[Y] = t2[Y]. 236363- DBMS, תכנון סכמות, Design
תלויות – הגדרות (המשך) • הגדרה: תהי R(A1,…,An) סכמה רלציונית, תהי r רלציה מעל R, ותהי F קבוצה של תלויות פונקציונליות מעל R. רלציה rמקיימת את F(סימון: r F) אם לכל תלות פונקציונלית f F מתקייםr f. • הגדרה: תהי R(A1,…,An) סכמה רלציונית, תהי F קבוצה של תלויות פונקציונליות מעל R, ותהי f תלות פונקציונלית מעל R. תלות פונקציונלית fנובעת מ- F(סימון: F f) אם לכל רלציה r מעל הסכמה Rשמקיימת r F, מתקיים r f (r F r f). 236363- DBMS, תכנון סכמות, Design
תלויות – הגדרות (המשך) • הגדרה: תהי F קבוצת תלויות פונקציונליות. הסגור של F (סימון: F+) הוא: {X Y | F X Y}. • דוגמה: R(A, B, C), F = {A B, B C} ב- F+ יהיו התלויות הפונקציונליות הבאות: A C, AB C, AC C, B B, A B, C , , … 236363- DBMS, תכנון סכמות, Design
אקסיומות ארמסטרונג • מטרה: לבנות מערכת הוכחה פורמלית לתלויות פונקציונליות. • אקסיומות ארמסטרונג: (A1) רפליקסיביות: אם Y X R אז X Y (A2) הכללה: אם X Y ו- Z R אז X⋃Z Y⋃Z (A3) טרנזיטיביות: אם X Y ו- Y Z אז X Z 236363- DBMS, תכנון סכמות, Design
הוכחות פורמליות • באמצעות אקסיומות ארמסטרונג ניתן לכתוב הוכחות פורמליות. • הוכחה פורמלית היא סידרה של שורות, שבכל אחת מהן רשומה טענה (תלות פונקציונלית). • כל שורה ממוספרת, ומנומקת ע"י התייחסות לשורות קודמות ולכלל ההיסק המתאים. • הגדרה: תהי F קבוצה של תלויות פונקציונליות ותהי f תלות פונקציונלית. מ-Fניתן להוכיח את f (סימון:F f) אם אפשר להסיק את f מ-F באמצעות אקסיומות ארמסטרונג. 236363- DBMS, תכנון סכמות, Design
הוכחות פורמליות - המשך • דוגמה: נתון F = {A B, B C}, R(A, B, C). נראה ש- F A BC: • B C F • B BC 1, A2 • A B F • A BC 3, 2, A3 236363- DBMS, תכנון סכמות, Design
הוכחות פורמליות - המשך • שימו לב: • " " מבטא "ניתן להוכחה"(לפי המערכת של ארמסטרונג). • " " מבטא "נובע" (במובן של קיום התלויות ע"י כל הרלציות האפשריות המתאימות). • משפט: לכל תלות פונקציונליתf וקבוצת תלויות פונקציונלית F, מתקיים: F f אם ורק אם F f. • במילים אחרות: אקסיומות ארמסטרונג הן נאותות ושלמות: • שלמות: אפשר להוכיח באמצעותן כל דבר נכון. • נאותות: אפשר להוכיח באמצעותן רק דברים נכונים. 236363- DBMS, תכנון סכמות, Design
כללי היסק נוספים • כללי היסק נוספים: • איחוד: אם X Y ו- X Z אז X Y⋃Z. • פרוק: אם X Y ו- Z Y אז X Z. • טרנזיטיביות למחצה: אם X Y ו- W⋃YZ אז W⋃XZ. • אפשר להשתמש בכללים הנוספים כדי לקצר הוכחות פורמליות. • כל אחד מהכללים מחליף סידרה של צעדי היסק המשתמשים רק באקסיומות ארמסטרונג. 236363- DBMS, תכנון סכמות, Design
כללי היסק - דוגמה • דוגמה: את כלל האיחוד אפשר להחליף בסדרת הצעדים הבאה: • X Yנתון • X X⋃Y 1, A2 • X Zנתון • X⋃Y Y⋃Z 3, A2 • X Y⋃Z 2, 4, A3 236363- DBMS, תכנון סכמות, Design
AB BC תלויות – הגדרות (המשך) • הגדרה: תהי X קבוצת אטריביוטים ותהי F קבוצת תלויות פונקציונליות. הסגור של X בהינתן F (סימון: XF+) הוא {A | F X A}. • אלגוריתם לחישוב XF+: W X Repeat For each (Y Z) F If Y W then W W Z Until no more changes to W Output W = (XF+) • דוגמה: נתון F = {A B, B C}, R(A, B, C). נחשב את A+F: {A} {A, B} {A, B, C} 236363- DBMS, תכנון סכמות, Design
מפתחות • הגדרה: תהי R סכמה רלציונית (קבוצת אטריביוטים), תהי X תת-קבוצה של R, ותהי F קבוצת תלויות פונקציונליות. X הוא על-מפתח של R אם F XR. • במילים אחרות, X הוא על-מפתח של R אם X R F+. • בגלל הוכחת הנאותות והשלמות של אקסיומות ארמסטרונג, X הוא על-מפתח של R אם ורק אם R= XF+ 236363- DBMS, תכנון סכמות, Design
מפתחות - המשך • דוגמה: נתון: R(A, B, C, D), F = {A C, B D}. • ABC הוא על-מפתח של R, אך איננו העל-מפתח היחיד וגם לא המינימלי. • הגדרה: תהי R סכמה רלציונית (קבוצת אטריביוטים), תהי X תת-קבוצה של R, ותהי F קבוצת תלויות פונקציונליות. X הוא מפתח קביל של R אם הוא על-מפתח של R, ולא קיים Y X, כך ש-Y הוא גם על-מפתח של R. 236363- DBMS, תכנון סכמות, Design
דוגמה • נתון: R(A, B, C, D,E), F = {AB DE, C E, A C} • ABCאינו מפתח קביל של R, כי AB מוכל בו והוא על-מפתח. • AB הוא מפתח קביל: • קל להראות AB R. • כדי להראות ש-A ו-B בפני עצמם אינם מפתחות, נשתמש באחת השיטות הבאות: • ניתן לחשב את A+Fואת B+Fולהראות שהם אינם כל R. • או, למצוא דוגמה נגדית. ז"א למצוא רלציה שמספקת את F, אך לא מתקיים ש- A R. 236363- DBMS, תכנון סכמות, Design
AC CE דוגמה-המשך • חישוב A+F : {A} {A, C} {A, C, E} קל לראות כי {E,C,A} = A+F ≠ R = {E,D,C,B,A} • דוגמה נגדית: למשל הרלציה הבאה מפריכה את A R: 236363- DBMS, תכנון סכמות, Design