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

34
1 236363 םםםםםם םםםם םםםםםם2 . םםםםםםםםם םםםםםם םםםםםERD )םםםםם םם םםםםםם םם םםםם םםםם(

description

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

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

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

1

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

ERD. דיאגראמות ישויות קשרים 2

)מבוסס על השקפים של אלדר פישר(

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

2

(ERמודל הישויות והקשרים )

מאפשר לנו לנתח את דרישות )ER )Entity-Relationshipמודל המערכת ולייצג את סוגי הישויות שנרצה לשמור לגביהם מידע,

את סוגי הקשרים בין הישויות וכן אילוצים שונים.

מהווה )ER )ERD – Entity-Relationship-Diagramתרשים תיאור ויזואלי בעזרת דיאגרמה של המערכת המיוצגת במודל.

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

תופסים אותה.

בשל היותו כללי ותיאורטי, למודל מגבלות. למשל, אין פירוט של תחומי הערכים האפשריים עבור תכונות הישויות.

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

סימונים, אולם ERקיימות מספר גישות לאופן השרטוט של תרשימי

העקרונות הלוגים המנחים משותפים לכולן.

אנו נשתמש בגישה ובסימונים המתוארים בספר

Ullman and Widom, First Course in Database Systems

3

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

4

(Attributeתכונה )

יחידת המידע הבסיסית ביותר המייצגת פריט מידע על אובייקט

מסוג מסויים.

בייצוג קבוצת כל הישויות מטיפוס נתון כטבלה, כל תכונה תתאים

לעמודה בטבלה. במושגים של מערכת הקבצים: בכל רשומה

המתאימה לישות מטיפוס נתון, יהיה שדה עבור כל תכונה של

הטיפוס.

סימון: אליפסה ובתוכה שם התכונה.

שם ת. לידה

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

(Entityישות )אובייקט מסוג מסוים שלגביו נרצה לשמור מידע במערכת.

בייצוג בטבלה או בקובץ, לרוב הישות מתבטאת ברשומה.

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

דיאגרמת ישויות קשרים אינה כוללת ייצוג של ישויות. מדוע?

5

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

6

(Entity Setטיפוס ישויות ) הוא קבוצה של ישויות מסוג מסוים. טיפוס ישויות

למשל, שחקני קולנוע.

לכל טיפוס ישויות משויכות תכונות שמתארות ומגדירות את הישויות מטיפוס זה.

בייצוג ע"י טבלה, טיפוס הישויות יהיה שם הטבלה, והתכונות המשויכות לטיפוס הישויות תהיינה שמות עמודות הטבלה.

אין לשייך לטיפוס ישויות שתי תכונות בעלות שם זהה.

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

7

סימון ─טיפוס ישויות , טיפוס ישויות יסומן ע"י מלבן ובתוכו שם הטיפוס;ERבתרשים

התכונות המתאימות ייוצגו ע"י אליפסות המחוברות למלבן זה.

כל תכונה בתרשים מחוברת לטיפוס ישויות אחד או לטיפוס

קשרים )ראו בהמשך( אחד בדיוק.

המפתח מתחת לשמן מהוות את קו תחתי קבוצת התכונות עם.הראשי

כל מלבן מייצג טיפוס ישויות שונה, ולכן אין ERבתרשים להשתמש בשם של טיפוס ישויות יותר מפעם אחת בתרשים.

שחקן קולנוע

תמונה ת. לידה שם

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

8

תכונות מורכבות ורב ערכיותאפשר גם לציין תכונות עם סוגי ערכים מורכבים יותר.

תכונה המקבלת את תכונה מורכבת:ערכיה מערכים של תתי תכונות.

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

מקבלת קבוצהתכונה רב ערכית:של ערכים עבור האובייקט המתאים.

אליפסה כפולהסימון:כאן מאפשרים לאחסן מספר תמונות לכל שחקן.

תאריך

שנה חודש יום

שחקן קולנוע

תמונה ת. לידה שם

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

(Relationshipקשר )מייצג קשר בין ישויות.

למשל, הקשר בין השחקנית נטלי פורטמן והסרט לאון מייצג השתתפות של השחקנית בסרט.

קשר בינארי – קשר בין שתי ישויות ולכן מבוטא כזוג ישויות.

קשר טרינארי – קשר בין שלוש ישויות ולכן מבוטא כשלשה.

...

-יה של ישויות.n ישויות ולכן מבוטא כ-n-ארי - קשר בין nקשר

לרוב, קשרים ייוצגו בטבלה או בקובץ על ידי רשומה מתאימה המכילה את המפתחות הראשיים של הישויות המשתתפות.

האם נייצג קשרים בדיאגרמת ישויות קשרים?9

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

10

(Relationship Setטיפוס קשרים )( מקשר בין טיפוסי ישויות - שניים או יותר, טיפוס יחס )או טיפוס קשרים

ומייצג קבוצה של קשרים בין ישויות מטיפוסי הישויות המקושרים.בצורתו הכללית, לכל קומבינציה של ישות אחת מכל טיפוס ישויות

המקושר ע"י טיפוס הקשרים, יתכן ויהיה בין הישויות האלו קשר מטיפוס הקשרים הנ"ל, ויתכן שלא יהיה קשר כזה.

סימון: מעוין ובתוכו שם הקשר, מחובר לטיפוסי הישות המתאימים.

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

או שחקנים ללא סרטים.

שחקן קולנוע

תמונה ת. לידה שם

סרט

ז'אנר שנה שם הסרט

שיחק

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

טיפוס קשרים עם תכונותניתן גם לקשר תכונות באופן ישיר לטיפוסי קשרים.

במקרה זה, לכל קשר מטיפוס הקשרים תהיה התכונה המצורפת.

בדוגמה כאן לכל שחקן ולכל סרט בו שיחק, נדע באיזה תפקיד ( שיחק השחקן בסרט.יחיד)

ברמת תכנון המסד, נייצג יחס זה ע"י טבלה שעמודותיה מתאימות לתכונות המפתח של טיפוסי הישות המשתתפים,

בנוסף לתכונות טיפוס הקשרים עצמו.

שחקן קולנוע

תמונה ת. לידה שם

סרט

ז'אנר שנה שם הסרט

שיחק

תפקיד

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

טיפוס קשרים עם תכונות מפתחמה יקרה בהוספת תכונה שהיא חלק מהמפתח לטיפוס קשרים?

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

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

שחקן קולנוע

תמונה ת. לידה שם

סרט

ז'אנר שנה שם הסרט

שיחק

תפקיד

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

13

השתתפות מלאהלפעמים עבור טיפוס ישויות המחובר לטיפוס קשרים נתון, נדרוש

שכל ישות מטיפוס הישויות תשתתף בלפחות קשר אחד מטיפוס הקשרים.

סימון: קו כפול בחיבור של טיפוס הישויות לטיפוס הקשרים.

בדוגמה זו, אילוץ ההשתתפות מתיר רק ייצוג של שחקני קולנוע שהוא( בסרט אחד לפחות. ששיחקו )בתפקיד כל

שחקן קולנוע

תמונה ת. לידה שם

סרט

ז'אנר שנה שם הסרט

שיחק

תפקיד

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

14

מידת הריבוי של השתתפות בקשריםאילוץ המחייב כל ישות מטיפוס מסויים להיות קשורה לישות אחת

בלבד )אם בכלל( מהטיפוס האחר המשתתף בטיפוס הקשרים.

סימון: חץ בחיבור של טיפוס הקשרים לטיפוס הישויות.

בדוגמה כאן לכל סרט יתכן כוכב אחד בלבד )ובאחד התפקידים(. יתכנו גם סרטים ללא כוכבים כלל.

שחקן קולנוע

תמונה ת. לידה שם

סרט

ז'אנר שנה שם הסרט

כוכב

תפקיד

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

מידות ריבוי

15

שחקןסרט R

עובדמנהל R

פקולטהדיקן R

רבים לרבים

יחיד לרבים

יחיד ליחיד

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

16

─קשר בין שלושה טיפוסי ישויות דוגמה

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

לא יתכן שאותו פרס יוענק לאותו סרט בשני תאריכים שונים,או שאותו פרס יוענק באותו תאריך לשני סרטים שונים.

פרס

שם הפרס

סרט

ז'אנר שנה שם הסרט

הוענק

סכום כסף

תאריךתאריך

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

מה ההבדל?

17

קורסמרצה השתתף

סטודנט

קורסמרצה השתתף

השתתףסטודנט השתתף

מספר קורסשם

מספר זהות

שם

מספר זהות

מספר קורס

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

18

(Rolesתפקידים )יתכנו מקרים שבהם טיפוס קשר יקושר מספר פעמים לאותו

טיפוס ישות.

כדי להבדיל בין שני הקישורים אפשר לציין תפקידים על הקשתות.

החץ על הקשת עם התפקיד "מקור" מציין שלכל סרט יכול להיות לכל היותר סרט מקור אחד.

סרט

ז'אנר שנה שם הסרט

המשך

המשך

מקור

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

19

(Aggregationהקבצה ) מאפשרת להשתמש בטיפוס קשרים כאילו הוא טיפוס ישויות.הקבצה

תכונות ההקבצה הן כל תכונות הטיפוסים המשתתפים )הקשר והישויות(. לכל קומבינציה של ישויות המקושרות ע"י הקשר, תהיה

ישות אחת בהקבצה.

─ברמת המימוש לא צריך לתחזק טבלה עבור ההקבצה עצמה היא תוסק מהטבלאות עבור הטיפוסים המרכיבים אותה.

שחקן קולנוע

תמונה ת. לידה שם

סרט

ז'אנר שנה שם הסרט

שיחק

תפקיד

פרס הוענקשם הפרס

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

מה ההבדל?

20

שחקן קולנוע

תמונה ת. לידה שם

סרט

ז'אנר שנה שם הסרט

שיחק

תפקיד

פרס הוענקשם הפרס

שחקן קולנוע

תמונה ת. לידה שם

סרט

ז'אנר שנה שם הסרט

שיחק

תפקיד

פרס הוענקשם הפרס

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

טיפוס ישויות חלשטיפוס ישויות חלש הוא טיפוס ישויות שהמפתח שלו הוא צירוף

של מפתח חלש שלו ומפתח של טיפוס ישויות )או טיפוסי ישויות( שבו הוא תלוי.

סימון: טיפוס הישויות וטיפוס הקשרים מסומנים בקו כפול.

21

מספר גדודגדוד

אות

ג-פ

פלוגה

מספר מחלקה

פ-מ

מהם האילוצים הנדרשים לגבי

מידות ריבוי?

מה לגבי השתתפות

מלאה?

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

22

ISAקשר ייצוג תת-טיפוסים על ידי הכללה. מאפשר ISAטיפוס קשרים מסוג

( "יורשים" את תכונות טיפוס subclassesטיפוסי הישויות המוכללים )(.superclassהישויות המכליל )

אם לטיפוס הישויות המכליל יש מפתח אזי יתכן כי לטיפוסי הישויות המוכללים אין מפתח )הם יורשים את המפתח מהמכליל(.

לכל טיפוס ישויות מוכלל יתכנו תכונות או קשרים ייחודיים לו.

עבור כל ישות מהטיפוס המוכלל תהיה קיימת ישות מהטיפוס המכליל, שערכי תכונותיה הן ה"צמצום" המתאים.

יסומן בעזרת משולש המצביע על טיפוס הישויות ISAסימון: קשר )שימו לב, בחלק מן הספרים הסימון הוא הפוך!(המכליל.

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

דוגמה

23

סרט

ז'אנר שנה שם הסרט

סרט מצויר

מאייר

ISA

סרט טבע

היכן צולם

ISAקולות

תפקיד

שחקן

שם השחקן

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

הכללה ללא חיתוךאם רוצים שישות מהטיפוס המכליל לא תופיע בשני הטיפוסים

יחיד.ISAהמוכללים, אז משתמשים ביחס

24

סרט

ז'אנר שנה שם הסרט

סרט מצויר

מאייר

ISA

סרט טבע

היכן צולם

קולות

תפקיד

שחקן

שם השחקן

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

הכללה מלאהאם רוצים שלכל ישות מהטיפוס המכליל יהיו ישויות מוכללות, אז

משתמשים בקווים עבים.

25

סרט

ז'אנר שנה שם הסרט

סרט מצויר

מאייר

ISA

סרט טבע

היכן צולם

קולות

תפקיד

שחקן

שם השחקן

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

לטבלאותISAהמרת קשר

טבלה עבור טיפוס הישויות המכליל ובה רשומה אפשרות א':עבור כל ישות מטיפוס זה. טבלה עבור כל טיפוס ישויות מוכלל אך בה לא יכללו תכונות טיפוס הישויות המכליל, פרט למפתח.

טבלאות רק עבור טיפוסי הישויות המוכללים. איחוד אפשרות ב':הטבלאות יכלול את כל תכונות טיפוס הישויות המכליל.

מתי נרצה להשתמש באפשרות א' ומתי באפשרות ב'?

26

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

הוספת אילוצים – דוגמה

27

אדם

שם מספר זהות

הורה

צאצא

הורה

האם זהו ייצוג נאמן של המציאות?

מה ניתן לשפר?

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

הוספת אילוצים – דוגמה

28

אדם

שם מספר זהות

אבהות

צאצא

הורה

האם זהו ייצוג נאמן של המציאות?

מה ניתן לשפר?

אמהות

צאצא

הורה

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

דוגמה

29

אדם

שם מספר זהות

אבהות

האם זהו ייצוג נאמן של המציאות?

מה ניתן לשפר?

אמהות

צאצא

הורה

אשהגבר

הורה

צאצא

ISA ISA

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

30

Arrives

Platform

A_Time D_Time

דוגמא מסכמת עבור מפעיל רכבות:ERנראה תרשים

Station

Height

S_Name

S_Type

ServesKm

Line

Direction

L_Num

L_Type

Train

T_Num

Days

Service

Gives

Food

Class

T_Category

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

31

אלו טבלאות יתקבלו מהתרשים ? ?Servesאלו עמודות יהיו בטבלה עבור טיפוס היחס

(Station )של טיפוס הישות S_Nameהמפתח •(Line )של Direction, L_Numתכונות המפתח •

.Servesשלושת העמודות הנ"ל ישמשו כמפתח של ─.Kmבנוסף תהיה עמודה עבור תכונת היחס, •

?Arrivesאלו עמודות יהיו בטבלה עבור טיפוס היחס .Train של טיפוס הישות T_Numהמפתח • אלו הם ─ Servesתכונות המפתח של היחס )המקובץ( •

Direction, L_Num, S_Name. ,Platform ─ בעצמו Arrivesשלושת התכונות של טיפוס היחס •

D_Time, A_Time.

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

32

)תילמד בקריאה עצמית(ODLשפת

היא שפת הגדרת )ODL )Object Definition Languageהשפה

( שיכולה לשמש מסדי נתונים רלציונים ומסדי DDLנתונים )

נתונים מונחי אובייקטים.

ניתנים לתרגום לסכמות ODL, גם ביטויי ERכמו תרשימי

רלציוניות.

ולהיפך, אולם התרגום לא ODL לביטוי ERניתן לתרגם תרשים

תמיד יהיה "טבעי", ויהיה איבוד של מידע.

מזכיר מבנה של שפות מונחות ODLהמבנה של ביטוי

.Java ו- ++Cאובייקטים, כגון

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

33

ODL ─קווים כללים (classמחלקה ) הגדרה של ODLעבור כל טיפוס ישות תיכתב ב-

מתאימה. התכונות יוגדרו בתוך הגדרת המחלקה.

)דו צדדיים וחסרי תכונות בלבד( יוגדרו כחלק מהגדרת קשרים

עבור טיפוס קשר יהיו הגדרות ─המחלקות המתאימות

מתאימות במחלקות משני "צדדיו".

רבי קבוצות, סדרות( ─ פרט לקבוצות )למשל מבנים מרוכבים

. הדבר נכון גם לגבי ODLגם ניתנים להגדרה באופן טבעי ב-

נתונים של סטודנטים שיש להם מספר ─תכונות )לדוגמא

כתובות, לפי סדר עדיפות( וגם לגבי קשרים )למשל, ניתן

לאפשר ריבוי ביחס "סטודנט-לקח-קורס", על מנת ODLב-

לציין קורס שנלקח מספר פעמים ע"י אותו סטודנט(.

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

34

ODL ─חומר קריאה

, ועל שפת השאילתות ODLחומר הקריאה על שפת הגדרת המידע

, נמצא בצורת שקפים באתר הקורס, וכן בספר:OQLהנלווית לה

J.D. Ullman and J. Widom, A First Course in Database Systems

בהצלחה !