1 / 17

תכנון סכמות רלציוניות

תכנון סכמות רלציוניות. Customer. Ordered. איזה תכנון טוב יותר?. CustOrders. תכנון – כללי (השוואה). חסרונות התכנון עם טבלה אחת: כפילות אשר גורמת ל: בזבוז מקום בזיכרון – השם והפקולטה של כל לקוח נשמרים פעמים אחדות (כמספר הספרים שהוא הזמין).

donal
Télécharger la présentation

תכנון סכמות רלציוניות

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. תכנון סכמות רלציוניות Customer Ordered איזה תכנון טוב יותר? CustOrders 236363- DBMS, תכנון סכמות, Design

  2. תכנון – כללי (השוואה) • חסרונות התכנון עם טבלה אחת: • כפילות אשר גורמת ל: • בזבוז מקום בזיכרון – השם והפקולטה של כל לקוח נשמרים פעמים אחדות (כמספר הספרים שהוא הזמין). • עדכון יותר קשה – עדכון הפקולטה של הלקוח (צריך לעדכן אותה בכל הספרים שהוא הזמין). • אם עודכנו רק חלק מהרשומות, המסד לא עקבי. • קשה לייצג לקוח שלא הזמין אף ספר. 236363- DBMS, תכנון סכמות, Design

  3. תכנון – כללי (המשך) • תכנון טוב: • מונע כפילויות. • מאפשר עדכונים יעילים. • פשוט ככל האפשר. • בלי יותר מדי טבלאות. • כלי אחד לתכנון – בניית מודל ישויות-קשרים (ERD). • כלי נוסף – תלויות פונקציונליות. 236363- DBMS, תכנון סכמות, Design

  4. תלויות פונקציונליות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

  5. תלויות – הגדרות (המשך) • הגדרה: תהי 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

  6. תלויות – הגדרות (המשך) • הגדרה: תהי 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

  7. אקסיומות ארמסטרונג • מטרה: לבנות מערכת הוכחה פורמלית לתלויות פונקציונליות. • אקסיומות ארמסטרונג: (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

  8. הוכחות פורמליות • באמצעות אקסיומות ארמסטרונג ניתן לכתוב הוכחות פורמליות. • הוכחה פורמלית היא סידרה של שורות, שבכל אחת מהן רשומה טענה (תלות פונקציונלית). • כל שורה ממוספרת, ומנומקת ע"י התייחסות לשורות קודמות ולכלל ההיסק המתאים. • הגדרה: תהי F קבוצה של תלויות פונקציונליות ותהי f תלות פונקציונלית. מ-Fניתן להוכיח את f (סימון:F  f) אם אפשר להסיק את f מ-F באמצעות אקסיומות ארמסטרונג. 236363- DBMS, תכנון סכמות, Design

  9. הוכחות פורמליות - המשך • דוגמה: נתון 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

  10. הוכחות פורמליות - המשך • שימו לב: • " " מבטא "ניתן להוכחה"(לפי המערכת של ארמסטרונג). • "  " מבטא "נובע" (במובן של קיום התלויות ע"י כל הרלציות האפשריות המתאימות). • משפט: לכל תלות פונקציונליתf וקבוצת תלויות פונקציונלית F, מתקיים: F  f אם ורק אם F  f. • במילים אחרות: אקסיומות ארמסטרונג הן נאותות ושלמות: • שלמות: אפשר להוכיח באמצעותן כל דבר נכון. • נאותות: אפשר להוכיח באמצעותן רק דברים נכונים. 236363- DBMS, תכנון סכמות, Design

  11. כללי היסק נוספים • כללי היסק נוספים: • איחוד: אם X  Y ו- X  Z אז X  Y⋃Z. • פרוק: אם X  Y ו- Z  Y אז X  Z. • טרנזיטיביות למחצה: אם X  Y ו- W⋃YZ אז W⋃XZ. • אפשר להשתמש בכללים הנוספים כדי לקצר הוכחות פורמליות. • כל אחד מהכללים מחליף סידרה של צעדי היסק המשתמשים רק באקסיומות ארמסטרונג. 236363- DBMS, תכנון סכמות, Design

  12. כללי היסק - דוגמה • דוגמה: את כלל האיחוד אפשר להחליף בסדרת הצעדים הבאה: • X  Yנתון • X  X⋃Y 1, A2 • X  Zנתון • X⋃Y  Y⋃Z 3, A2 • X  Y⋃Z 2, 4, A3 236363- DBMS, תכנון סכמות, Design

  13. AB BC תלויות – הגדרות (המשך) • הגדרה: תהי 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

  14. מפתחות • הגדרה: תהי R סכמה רלציונית (קבוצת אטריביוטים), תהי X תת-קבוצה של R, ותהי F קבוצת תלויות פונקציונליות. X הוא על-מפתח של R אם F  XR. • במילים אחרות, X הוא על-מפתח של R אם X  R  F+. • בגלל הוכחת הנאותות והשלמות של אקסיומות ארמסטרונג, X הוא על-מפתח של R אם ורק אם R= XF+ 236363- DBMS, תכנון סכמות, Design

  15. מפתחות - המשך • דוגמה: נתון: 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

  16. דוגמה • נתון: 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

  17. AC CE דוגמה-המשך • חישוב A+F : {A} {A, C} {A, C, E} קל לראות כי {E,C,A} = A+F ≠ R = {E,D,C,B,A} • דוגמה נגדית: למשל הרלציה הבאה מפריכה את A  R: 236363- DBMS, תכנון סכמות, Design

More Related