1 / 29

תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 2

תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 2. Design Theory for Relational Databases Part 2. חזרה על מושג הגרירה. ת"פ X → Y מתקיימת ביחס r אם כל שתי רשומות ששוות על X הנן שוות גם על Y קבוצת ת"פ F גוררת ת"פ X → Y אם כל יחס שמקיים את F מקיים גם את X → Y

dahlia
Download Presentation

תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 2

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. תיאוריית תכנון סכמות למסדי נתונים יחסייםחלק 2 Design Theory for Relational Databases Part 2

  2. חזרה על מושג הגרירה • ת"פ X → Yמתקיימת ביחס r אם כל שתי רשומות ששוות על X הנן שוות גם על Y • קבוצת ת"פ Fגוררת ת"פ X → Y אם כל יחס שמקיים את F מקיים גם את X → Y • הסימון של גרירה: F ⊨ X → Y • אם אין גרירה, אז יש דוגמה נגדית, כלומר יחס שמקיים את F ואינו מקיים את X → Y

  3. דוגמה של דוגמה נגדית • היחס • הוא דוגמה נגדית לגרירה A → B, B → C ⊨ C → A

  4. עוד דוגמה של דוגמה נגדית • היחס • הוא דוגמה נגדית לגרירה A → B, C → B ⊨ C → A

  5. השימושים של ת"פ • ת"פ מבטאות אילוצים (constraints) • צריך לדאוג לכך שהנתונים האגורים במסד הנתונים יקיימו את האילוצים • בנוסף לכך, הת"פ (וגם אילוצים מסוגים אחרים) מאפשרות לזהות סכמות בעייתיות

  6. סכמה המאפשרת שכפול מידע הנה סכמה בעייתית • דוגמה • למחלקה יש רק מנהל אחד אבל יש הרבה סטודנטים • לכן המידע על מנהל המחלקה נשמר עבור כל סטודנט השייך למחלקה Student Department Head

  7. מדוע קיים שכפול מידע? • למחלקה יש רק מנהל אחד אבל יש הרבה סטודנטים • כלומר, הת"פ D → H מתקיימת, אבל הת"פ D → S אינה מתקיימת Student Department Head

  8. במילים אחרות... • בדוגמה הקודמת מקור הבעיה הוא הת"פ D → H • זוהי ת"פ שאמורה להתקיים ביחס, אבל צידה השמאלי איננו מפתח של היחס (כלומר, D אינו קובע את כל שאר האטריביוטים, אלא רק את H)

  9. מדוע חשוב לדעת מתי יש גרירה? • נתונה לנו סכמה R, קרי קבוצת אטריביוטים • ונתונה קבוצה של ת"פ F שהיחסים האפשריים עבור R צריכים לקיים • האם היחסים עבור R מקיימים ת"פ X → Y לא טריוויאלית, שצידה השמאלי אינו קובע את כל האטריביוטים של R? אם כן, הסכמה בעייתית • באופן פורמלי, האם קיימים X ו- Yכך ש- Y ⊊ X,F ⊨ X → Y ו- F ⊭ X → R

  10. הגדרה של מפתח ומפתח-על • בעזרת המושג של גרירה ניתן להגדיר באופן פורמלי מפתח (key) ומפתח-על (superkey) • בהינתן סכמה R וקבוצת ת"פ F, מפתח-על של R הוא קבוצת אטריביוטים X ⊆ R, כך ש- F ⊨ X → R • X הוא מפתחאם F ⊨ X → R ואם אין Z ⊊ X כך ש- F ⊨ Z → R • מפתח הוא גם מפתח-על, אבל לא להפך

  11. אפיון סכמה בעייתית (שנית) • נתונה לנו סכמה R, קרי קבוצת אטריביוטים • ונתונה קבוצה של ת"פ F שהיחסים עבור R צריכים לקיים • הסכמה בעייתית אם קימת ת"פ X → Y לא טריוויאלית (קרי, Y ⊊ X) כך ש- • F ⊨ X → Y • ו- X אינו מפתח-על

  12. דוגמה :1 סכמה בעייתית • היחסים עבור הסכמה SDH מקיימים שתי ת"פ D → H ו- S → D • S → D, D → H ⊭ D → S • לכן D אינו מפתח-על של הסכמה Student Department Head

  13. דוגמה :2 סכמה בעייתית נוספת • עבור הסכמה SCT קיימת הת"פ C → T • C אינו מפתח, כי C → T ⊭ C → S Student Course Teacher

  14. איך נבדוק מתי יש גרירה? • יש גרירה F ⊨ X → Y אם אין דוגמה נגדית • לפיכך, נחפש דוגמה נגדית • יש אינסוף יחסים אפשריים עבור סכמה נתונה (בהנחה שהתחום של הערכים המופיעים בעמודות הנו אינסופי) • לפיכך, חיפוש דוגמה נגדית הוא תהליך שאיננו בהכרח עוצר

  15. האקסיומות של ארמסטרונג • רפלקסיביות: אם אז • אוגמנטציה (הוספה): אם אז • טרנזיטיביות: אם ו- אז

  16. אקסיומות נוספות • איחוד: אם ו- , אז • פירוק: אם , אז וגם • פסודו-טרנזיטיביות: אם ו- , אז

  17. גזירה של ת"פ • בהינתן קבוצה F של ת"פ, ניתן לגזור מהן ת"פ נוספות בעזרת האקסיומות, לדוגמה תהי: • להלן גזירה של מ- F 1. (נתון ב- F) 2. (אוגמנטציה של 1 עם AB) 3. (נתון ב- F) 4. (אוגמנטציה של 3 עם ABC) 5. (טרנזיטיביות של 2 ו- 4)

  18. הגדרה של גזירה • גזירה של ת"פ מקבוצה Fשל ת"פ היא סדרה סופית של ת"פ, שמקיימת את שני הדברים הבאים: • כל ת"פ בסדרה שייכת ל- F, נובעת מרפלקסיביות או נובעת מת"פ קודמות בסדרה, לפי אוגמנטציה או טרנזיטיביות • בנוסף, הסדרה מסתיימת בת"פ

  19. נאותות ושלמות של האקסיומות • F ⊢ X → Y פירושו שיש גזירה של X → Y מ- F • F ⊨ X → Y פירושו שיש גרירה של X → Y מ- F • האקסיומות של ארמסטרונג הנן נאותות ושלמות, כלומר F ⊨ X → Y ⇔ F ⊢ X → Y

  20. איך נבדוק האם יש גזירה? • המושגים של גרירה וגזירה הנם שקולים, ולכן במקום לבדוק האם יש גרירה אפשר לבדוק האם יש גזירה • יש מספר סופי של ת"פ שניתן לרשום בעזרת קבוצה סופית של אטריביוטים • ולכן, בהינתן קבוצה של ת"פ, יש מספר סופי של גזירות (בגזירה אין צורך לחזור על אותה ת"פ פעמיים)

  21. אלגוריתם לבדיקה F ⊢ X → Y • נייצר את כל הסדרות האפשריות (ללא חזרות) של ת"פ, תוך שימוש באטריביוטים המופיעים ב- F • נבדוק עבור כל סדרה האם היא גזירה של X → Y מ- F • עדיין יש מספר אקספוננציאלי של גזירות אפשריות

  22. סגור של קבוצת אטריביוטים • הסגור של קבוצת אטריביוטים ביחס לקבוצת ת"פ , סימון , הוא כלומר, קבוצת כל האטריביוטים כך שניתן לגזור את מ- • אם ברור מההקשר, אז מסמנים

  23. הלמה של הסגור • למה: גזיר מ- אם ורק אם • הוכחה: הלמה נובעת מההגדרה של הסגור ומהאקסיומות של האיחוד והפירוק.

  24. דוגמה 3 • F = {A → C, B → D, DE → H, DK → G} • נבדוק האם F ⊢ ABK → HG ע"י חישוב הסגור (ABK)+ • אם הצד השמאלי של ת"פ מוכל בסגור, אז גם הצד הימני מוכל בסגור • נתחיל עם ABK • בגלל A → C נוסיף את C לסגור, ונקבל ABKC

  25. דוגמה 3 (המשך) • F = {A → C, B → D, DE → H, DK → G} • נתחיל עם ABK • בגלל A → C נוסיף את C לסגור, ונקבל ABKC • בגלל B → D נוסיף את D לסגור, ונקבל ABKCD • בגלל DK → G נוסיף את G לסגור, ונקבל ABKCDG

  26. דוגמה 3 (המשך) • אין ב- F אף ת"פ נוספת שצידה השמאלי מוכל בסגור, אבל צידה הימני עדיין אינו מוכל בסגור • לפיכך, הסגור הוא ABKCDG • מסקנה: הת"פ ABK → G נגזרת מ- F, אבל ABK → H איננה נגזרת מ- F • לכן, ABK → HG איננה נגזרת מ- F

  27. אלגוריתם לחישוב הסגור • נתונה קבוצה של ת"פ F וקבוצת אטריביוטים X ורוצים לחשב את X+ • V:=X • כל זמן שיש ב- F ת"פ Y → Z, כך ש- Y ⊆ V, אז מוסיפים את Z ל- V, כלומר V := V ∪ Z • זמן ריצה ריבועי • בעזרת מבנה נתונים מתאים, זמן ריצה לינארי

  28. הוכחת נכונות של האלגוריתם • ראשית מראים שהאלגוריתם נאות, כלומר אם האלגוריתם מוסיף אטריביוט A לסגור, אז F ⊢ X → A • מראים זאת באינדוקציה על מספר האיטרציה שבה מתווסף A לסגור, תוך שימוש באקסיומות

  29. הוכחת נכונות (המשך) • הוכחה סינטקטית • מראים שאם יש גזירה של X → Y מ-F אז האלגוריתם מוסיף את כל האטריביוטים של Y לסגור • ההוכחה באינדוקציה על אורך הגזירה • הוכחה סמנטית • מראים שאם בסיום האלגוריתם, Y אינו מוכל בסגור, אז יש דוגמה נגדית לגרירה F ⊨ X → Y

More Related