1 / 34

236363 מערכות מסדי נתונים

236363 מערכות מסדי נתונים. 2 . דיאגראמות ישויות קשרים ERD (מבוסס על השקפים של אלדר פישר). מודל הישויות והקשרים ( ER ). מודל ER ( Entity-Relationship ) מאפשר לנו לנתח את דרישות המערכת ולייצג את סוגי הישויות שנרצה לשמור לגביהם מידע, את סוגי הקשרים בין הישויות וכן אילוצים שונים.

kacy
Download Presentation

236363 מערכות מסדי נתונים

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. 236363מערכות מסדי נתונים 2. דיאגראמות ישויות קשרים ERD (מבוסס על השקפים של אלדר פישר)

  2. מודל הישויות והקשרים (ER) • מודל ER (Entity-Relationship) מאפשר לנו לנתח את דרישות המערכת ולייצג את סוגי הישויות שנרצה לשמור לגביהם מידע, את סוגי הקשרים בין הישויות וכן אילוצים שונים. • תרשים ER (ERD – Entity-Relationship-Diagram) מהווה תיאור ויזואלי בעזרת דיאגרמה של המערכת המיוצגת במודל. התרשים מקל על תהליך הגדרת הרמה הלוגית של מודל הנתונים (למשל, הגדרת סכמות של מסד טבלאי). לפיכך הוא משמש מתווך טוב בין הרמה הלוגית לבין המציאות כפי שאנו תופסים אותה. • בשל היותו כללי ותיאורטי, למודל מגבלות. למשל, אין פירוט של תחומי הערכים האפשריים עבור תכונות הישויות.

  3. סימונים • קיימות מספר גישות לאופן השרטוט של תרשימי ER, אולם העקרונות הלוגים המנחים משותפים לכולן. • אנו נשתמש בגישה ובסימונים המתוארים בספר • Ullman and Widom, First Course in Database Systems

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

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

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

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

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

  9. קשר (Relationship) • מייצג קשר בין ישויות. • למשל, הקשר בין השחקנית נטלי פורטמן והסרט לאון מייצג השתתפות של השחקנית בסרט. • קשר בינארי – קשר בין שתי ישויות ולכן מבוטא כזוג ישויות. • קשר טרינארי – קשר בין שלוש ישויות ולכן מבוטא כשלשה. • ... • קשר n-ארי - קשר בין n ישויות ולכן מבוטא כ-n-יה של ישויות. • לרוב, קשרים ייוצגו בטבלה או בקובץ על ידי רשומה מתאימה המכילה את המפתחות הראשיים של הישויות המשתתפות. • האם נייצג קשרים בדיאגרמת ישויות קשרים?

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

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

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

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

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

  15. מידות ריבוי R רבים לרבים סרט שחקן R יחיד לרבים מנהל עובד R יחיד ליחיד דיקן פקולטה

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

  17. מה ההבדל? השתתף מספר קורס שם מרצה קורס מספר זהות סטודנט השתתף מספר קורס שם מרצה קורס השתתף השתתף סטודנט מספר זהות

  18. ז'אנר שנה שם הסרט המשך סרט תפקידים (Roles) • יתכנו מקרים שבהם טיפוס קשר יקושר מספר פעמים לאותו טיפוס ישות. • כדי להבדיל בין שני הקישורים אפשר לציין תפקידים על הקשתות. • החץ על הקשת עם התפקיד "מקור" מציין שלכל סרט יכול להיות לכל היותר סרט מקור אחד. המשך מקור

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

  20. הוענק הוענק תפקיד תמונה תמונה ת. לידה ת. לידה שם שם תפקיד ז'אנר ז'אנר שנה שנה שם הסרט שם הסרט שם הפרס שם הפרס פרס פרס שיחק שיחק שחקן קולנוע שחקן קולנוע סרט סרט מה ההבדל?

  21. טיפוס ישויות חלש • טיפוס ישויות חלש הוא טיפוס ישויות שהמפתח שלו הוא צירוף של מפתח חלש שלו ומפתח של טיפוס ישויות (או טיפוסי ישויות) שבו הוא תלוי. • סימון: טיפוס הישויות וטיפוס הקשרים מסומנים בקו כפול. גדוד מספר גדוד מהם האילוצים הנדרשים לגבי מידות ריבוי? מה לגבי השתתפות מלאה? ג-פ פלוגה אות פ-מ מחלקה מספר

  22. קשר ISA • טיפוס קשרים מסוג ISAמאפשר ייצוג תת-טיפוסים על ידי הכללה. טיפוסי הישויות המוכללים (subclasses) "יורשים" את תכונות טיפוס הישויות המכליל (superclass). • אם לטיפוס הישויות המכליל יש מפתח אזי יתכן כי לטיפוסי הישויות המוכללים אין מפתח (הם יורשים את המפתח מהמכליל). • לכל טיפוס ישויות מוכלל יתכנו תכונות או קשרים ייחודיים לו. • עבור כל ישות מהטיפוס המוכלל תהיה קיימת ישות מהטיפוס המכליל, שערכי תכונותיה הן ה"צמצום" המתאים. • סימון: קשר ISA יסומן בעזרת משולש המצביע על טיפוס הישויות המכליל. (שימו לב, בחלק מן הספרים הסימון הוא הפוך!)

  23. דוגמה שם השחקן ז'אנר שנה שם הסרט שחקן סרט תפקיד קולות ISA ISA סרט טבע סרט מצויר מאייר היכן צולם

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

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

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

  27. הוספת אילוצים – דוגמה מספר זהות שם צאצא הורה אדם הורה האם זהו ייצוג נאמן של המציאות? מה ניתן לשפר?

  28. הוספת אילוצים – דוגמה מספר זהות שם צאצא צאצא אדם אמהות אבהות הורה הורה האם זהו ייצוג נאמן של המציאות? מה ניתן לשפר?

  29. דוגמה מספר זהות שם צאצא אדם אמהות צאצא אבהות הורה הורה ISA ISA אשה גבר האם זהו ייצוג נאמן של המציאות? מה ניתן לשפר?

  30. S_Name T_Num A_Time D_Time Days S_Type Height Arrives Station Train Serves Gives Km Platform Line Service L_Type Direction T_Category Food L_Num Class דוגמא מסכמת • נראה תרשים ER עבור מפעיל רכבות:

  31. אלו טבלאות יתקבלו מהתרשים ? • אלו עמודות יהיו בטבלה עבור טיפוס היחס Serves ? • המפתח S_Name (של טיפוס הישות Station) • תכונות המפתח Direction, L_Num (של Line) • שלושת העמודות הנ"ל ישמשו כמפתח של Serves. • בנוסף תהיה עמודה עבור תכונת היחס, Km. • אלו עמודות יהיו בטבלה עבור טיפוס היחס Arrives ? • המפתח T_Num של טיפוס הישות Train. • תכונות המפתח של היחס (המקובץ) Serves─ אלו הם Direction, L_Num, S_Name. • שלושת התכונות של טיפוס היחס Arrives בעצמו ─Platform, D_Time, A_Time.

  32. שפת ODL (תילמד בקריאה עצמית) • השפה ODL (Object Definition Language) היא שפת הגדרת נתונים (DDL) שיכולה לשמש מסדי נתונים רלציונים ומסדי נתונים מונחי אובייקטים. • כמו תרשימי ER, גם ביטויי ODL ניתנים לתרגום לסכמות רלציוניות. • ניתן לתרגם תרשים ER לביטוי ODL ולהיפך, אולם התרגום לא תמיד יהיה "טבעי", ויהיה איבוד של מידע. • המבנה של ביטוי ODL מזכיר מבנה של שפות מונחות אובייקטים, כגון C++ ו- Java.

  33. ODL─ קווים כללים • עבור כל טיפוס ישות תיכתב ב-ODL הגדרה של מחלקה (class) מתאימה. התכונות יוגדרו בתוך הגדרת המחלקה. • קשרים (דו צדדיים וחסרי תכונות בלבד) יוגדרו כחלק מהגדרת המחלקות המתאימות ─ עבור טיפוס קשר יהיו הגדרות מתאימות במחלקות משני "צדדיו". • מבנים מרוכבים פרט לקבוצות (למשל ─ רבי קבוצות, סדרות) גם ניתנים להגדרה באופן טבעי ב-ODL. הדבר נכון גם לגבי תכונות (לדוגמא ─ נתונים של סטודנטים שיש להם מספר כתובות, לפי סדר עדיפות) וגם לגבי קשרים (למשל, ניתן ב-ODL לאפשר ריבוי ביחס "סטודנט-לקח-קורס", על מנת לציין קורס שנלקח מספר פעמים ע"י אותו סטודנט).

  34. ODL─ חומר קריאה • חומר הקריאה על שפת הגדרת המידע ODL, ועל שפת השאילתות הנלווית לה OQL, נמצא בצורת שקפים באתר הקורס, וכן בספר: • J.D. Ullman and J. Widom,A First Course in Database Systems • בהצלחה !

More Related