1 / 27

מבוא לתכנון הסכמה – חלק א'

מבוא לתכנון הסכמה – חלק א'. An Introduction to Schema Design – Part 1. המטרה: "התאמת העולם למודל". כשאנחנו מעצבים בסיס נתונים במודל היחסים, אנחנו בעצם דוחסים את העולם הממשי לתוך טבלאות. דרישות הלקוח. תכנון סכמה. תכנון ברמה גבוהה. אפשר להתחיל ישירות להגדיר טבלאות, אבל:

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. מבוא לתכנון הסכמה – חלק א' An Introduction to Schema Design – Part 1

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

  3. דוגמה להמחשה: דיאגראמה עבור פרויקט בשנת תשע"ב סותרת מבוצע מחלה סניף בדיקה תרופה אם אב חולה הפניה בתוכו מומלץ מבקר מוצר ביקור חולה אב בן אב מש' נראה מוגשת אצל מאורז אריזה אבחנה רופא תלונה רגיש

  4. מודל הישויות והקשרים The Entity-Relationship Model

  5. מודל הישויות והקשרים • מודל הישויות והקשרים הינו מודל שמתאים במיוחד לתכנון גרפי של סכמה עבור מודל היחסים • באנגלית: Entity-Relationship Model(נכתוב "מודל ER") • לדיאגרמה במודל ER קוראים ERD. • הערה: בזמן האחרון התפרסמו גם מודלים אחרים: • Unified Modeling Language (UML) • Object Description Language (ODL) • מודל ER הינו המודל הקלסי • במודל ER, העולם מורכב מישויות וקשרים בין הישויות • דוגמאות של ישויות: סטודנט, קורס, מרצה • דוגמאות של קשרים: קשר בין קורס לסטודנט, קשר בין קורס למרצה

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

  7. קשר ת.ז. ישות ספר ישות קורא קשר השאלה • קשרמביע אינטראקציה בין שתי ישויות או יותר. דוגמאות: • קורא יכול להיות בקשר של השאלה עם ספר • סטודנט יכול להיות בקשר של הרשמה עם קורס • לקשר יש אטריבוטים המאפיינות את הקשר. דוגמאות: • תאריך החזרה של הספר מאפיין את הקשר בין קורא לספר • ציון הינו תוצאה של הקשר בין סטודנט לקורס, ולכן אנחנו יכולים לראות אותו כמאפיין את הקשר הרשמה מס' שם משפחה שם תאריך החזרה

  8. כמה קשרים בין אותם ישויות ת.ז. ישות ספר ישות קורא • ייתכן שקיימים שניים או יותר קשרים בין אותן הישויות מס' קשר השאלה שם משפחה שם תאריך החזרה קשר תרומה שם לע"נ

  9. קבוצת ישויות קבוצת ישויות "קורא" ת.ז. קבוצת ישויות ת.ז. • כל הישויות מאותו סוג נמצאות בקבוצת ישויותאחת. דוגמאות: • קבוצת הישויות של קוראים • קבוצת הישויות של סטודנטים • סימון ב ERD: מלבן • לכל הישויות בקבוצה יש אותם אטריבוטים ואותו מפתח • בסוף המצגת ניראה יוצאים מכלל זה קורא שם משפחה שם משפחה

  10. קבוצת קשרים קבוצת קשרים "השאלה" קבוצת קשרים • כל הקשרים מאותו סוג נמצאים בקבוצת קשרים אחת. דוגמאות: • קבוצת קשרים של השאלה בין קוראים לספרים • קבוצת קשרים של הרשמה בין סטודנטים לקורסים • סימון ב ERD: מעוין • לכול הקשרים בקבוצה יש את אותם אטריבוטים השאלה תאריך החזרה תאריך החזרה

  11. סיכום של סימונים בסיסיים ב-ERD מס' ת.ז. אטריבוט קבוצת ישויות קבוצת ישויות שם שם משפחה קבוצת קשרים אטריבוט תאריך החזרה השאלה ספר קורא אטריבוט

  12. הערה חשובה על קבוצת קשרים מס' ת.ז. • ב "קבוצה" במובן המתמטי אין משמעות לשתי דברים זהים. לדוגמה: • {1, 4, 7} הינה קבוצה של שלושה מספרים • {1, 4, 7, 1}הינה אותה קבוצה של שלושה מספרים כי כפילויות לא נחשבות • קבוצת קשרים הינה קבוצה במובן המתמטי • לכן, קשר בין אותם ישויות לא יכול להופיע בקבוצה פעמיים • בדוגמה עם קבוצת הקשרים השאלה: • אם בספריה מסוימת נהוג שקורא לא יכול לשאול אותו ספר יותר מפעם אחת (לפחות בתקופה שעבורה אנחנו שומרים נתונים), אז ה ERD שלנו בסדר, אבל • אם קורא יכול לשאול אותו ספר יותר מפעם אחת, אז קבוצת הקשרים השאלה לא יביע את המצב האמתי באופן נכון שם שם משפחה תאריך החזרה השאלה ספר קורא

  13. דיאגראמת הישויות והקשרים ER (Entity-Relationship) Diagram

  14. קשר רבים לרבים מס' ת.ז. שם מרצה קורס לימד שם משפחה מרצה לימד קורס

  15. קשר יחיד לרבים מס' • משמעות האילוץ: כל ישות של קורס יכול להיות בקשר עם לכל היותר ישות אחת של מרצה ת.ז. שם מרצה קורס לימד שם משפחה מרצה לימד קורס

  16. קשר יחיד ליחיד מס' ת.ז. שם מרצה קורס לימד שם משפחה מרצה לימד קורס

  17. קשר רקורסיבי • למה צריך לציין תפקיד? • אם קיים קשר בין שתי ישויות או יותר, אז לכל ישות יש תפקיד בקשר • למשל: בקשר הרשמה שבין סטודנט לקורס התפקיד של הסטודנט הוא להירשם והתפקיד של הקורס הוא שאליו נרשמים • בקשר לא רקורסיבי ברור משם קבוצת הקשרים ושמות קבוצות הישויות מה הוא התפקיד של כל ישות בקשר • אבל בקשר רקורסיבי לא ברור משמות אלו מה הוא התפקיד של כל ישות בקשר. ת.ז. מנהל שכיר מנהלפרויקט תפקיד של ישות בקשר שם כתובת עובד

  18. קשר רקורסיבי יחיד לרבים • לכיוון איזה תפקיד צריך להיות החץ? אבא ת.ז. אבא של בן אדם ילד שם גיל

  19. בחירת סוג הקשר • בחירת סוג הקשר (יחיד לרבים או רבים לרבים) תלוי בחוקי הארגון שעבורו מעצבים בסיס הנתונים • למשל: איזה סוג קשר יש בין מרצים לקורסים? • תלוי אם יכולים להיות כמה מרצים באותו קורס (כגון כמה קבוצות)

  20. קשר משולש מס' • נתבונן בתכנון ERDעבור הדוגמה הבאה: • ייתכנו כמה מתרגלים בקורס • בכל קורס שסטודנט לומד, הוא נותן ציון לכל מתרגל ת.ז. שם משפחה שם ת.ז. תרגול סטודנט קורס מתרגל שם משפחה ציון למתרגל

  21. קשר משולש עם אילוץ מס' • נתבונן בתכנון ERDעבור הדוגמה הבאה: • יש לכל היותר מתרגל אחד בקורס • בכל קורס שסטודנט לומד, הוא נותן ציון למתרגל • משמעות הקשר: בהינתן סטודנט וקורס מסוימים, יש קשר עם רק מתרגל אחד לכל היותר ת.ז. מתרגל שם משפחה שם ת.ז. תרגול סטודנט קורס שם משפחה ציון למתרגל

  22. קשר משולש עם רקורסיה • נתבונן בתכנון ERD עבור דוגמה הבאה: • ייתכן כמה מתרגלים בקורס • בכל קורס שסטודנט לומד, הוא נותן ציון לכל מתרגל • מתרגלים הם גם סטודנטים סטודנט מס' סטודנט ת.ז. תרגול קורס שם שם משפחה מתרגל ציון למתרגל שימו לב שצריך לציין תפקידים!

  23. שיקול צורך לקשר נוסף מס' • האם אנחנו צריכים להוסיף קשר בין קורס למתרגל? • תלוי! • אם המתרגל יכול להיות קשור לקורס רק דרך הוראה לסטודנטים הרשומים לקורס, אז לא. • אבל אם, לדוגמה, רוצים לשמור רשימת מתרגלים המעוניינים ללמד קורס מסוים, אז כן. ת.ז. מתרגל שם משפחה קשר נוסף שם ת.ז. תרגול סטודנט קורס שם משפחה ציון למתרגל

  24. קשר מיוחד: ISA שם ת.ז. תאריך התחלה • לפעמים יש ישויות בקבוצה עם אטריבוטים מיוחדים • דוגמה: בין חברי סגל יש אלו המתמקדים במחקר ויש להם אטריבוט "תחום מחקר" • קשר ISA מיועד להבעת מצבים כאלו חבר סגל isa חוקר מרצה תחום המחקר isa

  25. קשר משולש עם רקורסיה • נחזור לתכנוןERD עבור הדוגמה: • ייתכן כמה מתרגלים בקורס • בכל קורס שסטודנט לומד, הוא נותן ציון לכל מתרגל • מתרגלים נבחרים מתוך סטודנטים סטודנט מס' סטודנט ת.ז. תרגול קורס שם שם משפחה מתרגל ציון למתרגל מה אם למתרגל יש אטריבוטים שאין אותם לסטודנט רגיל?

  26. קשר משולש עם רקורסיה ו-ISA מס' שנות ניסיון • תכנון ERD עבור הדוגמה: • ייתכן כמה מתרגלים בקורס • בכל קורס שסטודנט לומד, הוא נותן ציון לכל מתרגל • מתרגלים נבחרים מתוך סטודנטים • עבור כל מתרגל נשמר מספר שנות ניסיון שם ת.ז. מתרגל תרגול סטודנט קורס isa שם משפחה ציון למתרגל

  27. תבנית בשביל תרגיל ישויות ישויות חלשות קשרים קשרים חלשים ISA 27

More Related