Presentation is loading. Please wait.

Presentation is loading. Please wait.

2. דיאגראמות ישויות קשרים ERD (מבוסס על השקפים של אלדר פישר)

Similar presentations


Presentation on theme: "2. דיאגראמות ישויות קשרים ERD (מבוסס על השקפים של אלדר פישר)"— Presentation transcript:

1 2. דיאגראמות ישויות קשרים ERD (מבוסס על השקפים של אלדר פישר)
מערכות מסדי נתונים 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 דוגמא מסכמת נראה תרשים ER עבור מפעיל רכבות: Arrives Platform A_Time
D_Time Station Height S_Name S_Type Train T_Num Days Serves Km Service Gives Food Class T_Category Line Direction L_Num L_Type

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


Download ppt "2. דיאגראמות ישויות קשרים ERD (מבוסס על השקפים של אלדר פישר)"

Similar presentations


Ads by Google