1 / 34

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

תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 5. Design Theory for Relational Databases Part 5. מגבלות התיאוריה לתכנון סכמות למסדי נתונים יחסיים. תזכורת: סכמה בעייתית: הסכמה גורמת לשכפול מידע. היחס הסכמה היא SCT ומתקיימת הת"פ C → T מפרקים לשתי סכמות: SC ו- CT. Student Course

moanna
Download Presentation

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

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

  2. מגבלות התיאוריה לתכנון סכמות למסדי נתונים יחסיים

  3. תזכורת: סכמה בעייתית:הסכמה גורמת לשכפול מידע • היחס • הסכמה היא SCT ומתקיימת הת"פ C → T • מפרקים לשתי סכמות: SC ו- CT Student Course Teacher

  4. הפירוק מונע שכפול מידע וגם • מאפשר לשמור מידע חלקי • בסכמה SC אפשר לשמור מידע על סטודנט שלוקח קורס גם אם המורה של הקורס טרם נקבע • בסכמה CT אפשר לשמור מידע על מורה של קורס לפני שהחלה הרשמת התלמידים • בסכמה המקורית SCT היינו צריכים להשתמש בערכי NULL כדי לשמור מידע חלקי

  5. הבעיות של שימוש בערכי NULLבסכמה המקורית SCT • ניסוח שאילתות עשוי להשתנות כאשר יש ערכי NULL • מקשה על המשתמש • אי אפשר לשמור ערך NULL במפתח • S הוא חלק ממפתח של הסכמה SCT ולפיכך אי אפשר לשמור מידע חלקי על קורס ומורה לפני שהחלה הרשמת התלמידים

  6. לסיכום • לפירוק SC ו- CT יש שני יתרונות בהשוואה לסכמה המקורית SCT • הפירוק מונע כפילויות • הפירוק מאפשר שמירת מידע חלקי • אבל שמירת מידע חלקי גורמת לכך שהיחסים במסד אינם הטלות של יחס אחד מעל הסכמה המקורית

  7. דוגמה: אין עדיין מורה ל- OS. לכן,אין יחס r ללא NULLS עבור SCT, כך שהיחסים עבור SC ו-CT הם הטלות של r

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

  9. דוגמה נוספת Employee, Department, Project, Manager • R=EDPM ו- F = {E → D, E → P, D → M, P → M} • אפשר לגזור את E → M מהת“פ • E → D ו- D → M • המשמעות היא "מנהל המחלקה של העובד" • אפשר לגזור את E → M מהת“פ • E → P ו- P → M • המשמעות היא "מנהל הפרויקט של העובד"

  10. מסקנה • R=EDPM ו- F = {E → D, E → P, D → M, P → M} • לכן אם אלה אומנם הת"פ הנכונות, אז חייב להתקיים שאותו אדם הוא גם מנהל המחלקה וגם מנהל הפרויקט של העובד • אם אין הדבר כך, אז חייבים לבצע שינוי שם של האטריביוט M

  11. שינוי שם • נחליף את M בשני אטריביוטים חדשים • מנהל מחלקה MD • מנהל פרויקט MP • R=EDPMDMPו- F = {E → D, E → P, D → MD, P → MP}

  12. איך מקיימים את E → Mכשאין צורך לשנות שם? • R=EDPM ו- F = {E → D, E → P, D → M, P → M} • מקבלים את הפירוק • R1=ED ו- F1 = {E → D} • R2=EP ו- F2 = {E → P} • R3=DM ו- F3 = {D → M} • R4=PM ו- F4 = {P → M} • זהו פירוק שמשמר את הת"פ (וגם ללא אובדן)

  13. דוגמה שבה הת"פ E → Mאינה מתקיימת בין חלקי מידע המצויים ביחסים שונים • כל יחס מקיים את הת"פ שלו • הפירוק משמר את הת"פ ומשמעות הדבר שהצירוף הטבעי של כל היחסים מקיים את כל הת"פ • הצירוף הטבעי של כל היחסים ריק – חלקי המידע הסותרים את הת"פ נעלמים כשלוקחים את הצירוף

  14. צירוף מינימלי ללא אובדן הכולל קבוצת אטריביוטים נתונה • הצירוף של כל היחסים הנו ללא אובדן ED ⋈ DM ⋈ EP ⋈ PM • נתבונן בצירופים הבאים • ED ⋈ DM • EP ⋈ PM • אלה צירופים ללא אובדן שמכילים את EM • כ"א מהצירופים האלה הנו מינימלי במובן שאי אפשר להשמיט את אחד היחסים מהצירוף ועדיין לקבל צירוף ללא אובדן שמכיל את EM

  15. איך נקבל את כל המידע על EM? • ניקח את כל הצירופים המינימליים ללא אובדן שכוללים את האטריביוטים EM • נטיל כל אחד על EM • וניקח את האיחוד, כלומר ⋃ EM(ED ⋈ DM)(EP ⋈ PM)EM • בתוצאה הנ"ל נבדוק אם אין הפרה של הת"פ • כך גם נענה על שאילתה לגבי E ו- M

  16. Fi מציין את הת"פ שממנה נוצר Ri, אבל אינו בהכרח כיסוי של כל הת"פ המתקיימים ב- Ri נחזור לדוגמהקודמת • נתונה הסכמה R=ABC עם F = {AB → C, C → A} • נייצר את הסכמות: • סכמה R1=ABC עם F1 = {AB → C} • סכמה R2=AC עם F2 = {C → A} • למעשה ב- R1 מתקיימת גם הת"פ C → A אבל היא לא ניתנת באופן מפורש ע"י האלגוריתם, ואין צורך לדעת זאת כדי להראות שימור הת"פ

  17. אין טעם לשמור את שתי הסכמות – עדיף לשלב אותן לסכמה אחרת • נניח ששומרים את שתי סכמות • סכמה R1=ABC עם F1 = {AB → C} • סכמה R2=AC עם F2 = {C → A} • עדיין צריך לוודא שהתלות C → A מתקיימת ב- R1 • עדיף לחזור לסכמה המקורית • R=ABC ו- F = {AB → C, C → A} • במקרה הכללי, אם סכמה אחת מכילה את כל האטריביוטים של סכמה שניה, אז ממזגים את שתי הסכמות לסכמה אחת, שיש לה את הת"פ של שתי הסכמות

  18. נדון שוב במקרה שבו צריך לבצע שינוי שם • נחליף את M בשני אטריביוטים חדשים • מנהל מחלקה MD • מנהל פרויקט MP • R=EDPMDMPו- F = {E → D, E → P, D → MD, P → MP}

  19. אבל מה עם ה- ISA? • עדיין יש צורך באטריביוט M כדי לייצג את קבוצת כל המנהלים • isa MMD • MP isa M • R=EDPMDMPMו- F = {E → D, E → P, D → MD, P → MP, MD → M, MP → M} שוב יש שתי גזירות שונות של E → M והבעיה לא נפתרה

  20. פתרון אפשרי • נתעלם מהת"פ הנובעות מקשרי ISA, כלומר מהת"פ MD → M ו- MP → M • ניתן להתעלם מהת"פ האלה, כי אין צורך ביחס מיוחד המקשר בין M ל- MD או בין M ל- MP • ל- M, MD ו- MP ערכים מאותו התחום (למשל, מספר עובד)

  21. הדוגמה ביתר פירוט • R=EDPMDMPMS • Sמציין מזכיר של המנהל • הת"פ הנן F = {E → D, E → P, D → MD, P → MP, M → S} • Fאיננה כוללת את הת"פ הנובעות מקשרי ה- ISA • isa MMD • isa MMP • isa EM • Sisa E

  22. נפעיל את האלגוריתם למציאת פירוק ב- 3NF • מקבלים את הפירוק • R1=ED ו- F1 = {E → D} • R2=EP ו- F2 = {E → P} • R3=DMD ו- F3 = {D → MD} • R4=PMP ו- F4 = {P → MP} • R4=MS ו- F5 = {M → S} • אין צורך ביחסים עבור קשרי ה- ISA, כי הערכים בעמודות MD, MP, M, S ו- E באים כולם מהתחום של מספרי עובדים – לכן קשרי ה- ISA הם קשרי הזהות

  23. תלויות רב-ערכיותותלויות צירוף Multivalued Dependencies and Join Dependencies

  24. דוגמה לסכמה שניתנת לפירוק ללא אובדן • היחס • הסכמה היא SCT ומתקיימת הת"פ C → T • ניתן לפרק ל- SC ול- CT Student Course Teacher

  25. האם ייתכן שהסכמה ניתנת לפירוק גם אם אין אף ת"פ? • בין קורסים לסטודנטים קיים יחס של רבים לרבים • בין קורסים למורים תיתכנה מספר אפשרויות • לקורס יש תמיד יש מורה יחיד, כלומר מתקיימת הת"פ C → T ויש פירוק ללא אובדן • לקורס יש מספר מורים – נדון במקרה הזה בשקפים הבאים

  26. אפשרות א': כל תלמיד לומד אצל כל המורים • מספר מורים (אחד או יותר) מתחלקים ביניהם בהעברת הקורס • אם זה תמיד המצב, אז מהו בעצם ייצוג נכון של הנתונים ביחס עבור הסכמה SCT? • קל יותר לראות מה הייצוג הנכון ב- SC ו- CT

  27. כל תלמיד בקורס לומד אצל כל מורה של הקורס, לכן היחס מעל SCT שמייצג נכון את הנתונים הוא בדיוק הצירוף של SC ו- CT ⋈ =

  28. במקרה שתיארנו מתקיימת התלות הרב-ערכית C →→ T • התלות הרב-ערכית C →→ T פירושה שלכל קורס יש קבוצת מורים שאינה תלויה באטריביוטים האחרים, קרי בסטודנטים • באופן שקול, התלות הרב-ערכית מתקיימת בכל יחס שמקיים ⋈ CT(r) = r(r)SC • לכן אם היא מתקיימת (קרי, היחסים האפשריים הם רק אלה שמקיימים אותה), אז הפירוק של SCT ל-SC ול- CT הנו ללא אובדן

  29. אפשרות ב': אין חוקיות המקשרת בין סטודנט לבין קבוצת המורים שמלמדת אותו • האם יתכן שהפירוק של SCT ל- SC, CT ו- ST הנו ללא אובדן? • נתונות העובדות הבאות • משה מלמד את לוי (אפשרי שיש ללוי מורים נוספים) • לוי לומד ב- OS (וכמובן שהוא לומד גם בקורסים אחרים) • משה הוא אחד המורים של OS • משלושת העובדות האלה לא בהכרח נובע שמשה הוא מורה של לוי ב- OS • לכן, אין אפשרות לפרק את SCT

  30. אפשרות ג': יש חוקיות המקשרת בין מורה לסטודנט, אבל היא מצריכה הוספת אטריביוט • הקורס מחולק לקבוצות, כאשר כל סטודנט שייך לקבוצה אחת ולכל קבוצה מורה יחיד • צריך להוסיף אטריביוט G שמציין קבוצה • לכן R=SGCT ו- F = {G → C, G → T}

  31. סביר יותר ש- G היא ישות חלשה(המפתח שלה מורכב ממספר קבוצה וממספר קורס) • במקרה זה R=SGCT והתלויות הן F = {SC → G, CG → T} • פירוק ל- 3NF נותן • R1=SCG ו- F1 = {SC → G} • R2=CGT ו- F2 = {CG → T}

  32. תלויות צירוף • אפשר להכליל את המושג של תלות רב-ערכית באופן הבא • אם אפשר לפרק ללא אובדן את R למספר סכמות Rn,…,R2R1, (n≥1), אז אומרים שמתקיימת תלות הצירוף [ Rn ,…,R2R1,] ⋈ • מתי הדבר שימושי?

  33. באלגוריתם לפירוק ל- 3NF • בשלב האחרון, אם הפירוק שנוצר מהכיסוי אינו חסר אובדן, אז מוסיפים סכמה R שהיא מפתח של הסמכה המקורית • בסכמה R אין ת"פ, אבל ייתכן שניתן לפרק אותה למספר סכמות קטנות יותר, בגלל תלות רב-ערכית או תלות צירוף

  34. לדוגמה • נניח ש- S, C, ו- T הם חלק מהאטריביוטים, שכל אחד מייצג ישות אחרת ואין ביניהם ת"פ • יש אטריביוטים נוספים שמתארים את התכונות של ישויות אלה, לדוגמה S → Name • לכן, בפירוק ל- 3NF תהיינה שלוש סכמות, עבור שלושת הישויות, ובנוסף הסכמה SCT, שהיא מפתח • ניתן לפרק את SCT לפי תלות רב-ערכית ל- SC ו- CT

More Related