24
1 236363 םםםםםם םםםם םםםםםם2 . םםםםםםER םםםםם: םםםם םםםם םםםםם םםםםםםם: םםםם םםםםםם

1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

  • View
    280

  • Download
    8

Embed Size (px)

Citation preview

Page 1: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

1

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

ER. תרשימי 2

אלדר פישרשקפים:עריכה ותוספות: אמיר שפילקה

Page 2: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

2

)ישות-קשר(ERמודל מאפשר לנו לייצג (Entity-Relationship )ישות-קשר ─ ERמודל

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

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

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

אותה.

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

האובייקטים הקיימים במערכת.

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

Page 3: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

3

(Attributeתכונה )

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

נתון כטבלא, כל תכונה תתאים לעמודה בטבלא.

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

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

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

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

להשתמש באותו שם פעמיים באותו תרשים.

שם ת. לידה

Page 4: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

4

(Entity typeטיפוס ישות ) הוא קבוצה של תכונות, שיחדיו נותנות את התיאור טיפוס ישות

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

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

במושגים של מערכות קבצים, ישות תיוצג )בד"כ( ע"י רשומה בקובץ המתאים.

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

Page 5: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

5

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

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

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

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

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

ערכים זהים בכל התכונות הנ"ל.

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

במקומות רבים טיפוס ישות נקרא "קבוצת ישויות", או בפשטות .Elmasri+Navathe"ישות"; המינוח כאן הוא לפי הספר של

שחקן קולנוע

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

Page 6: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

6

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

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

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

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

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

תאריך

שנה חודש יום

שחקן קולנוע

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

Page 7: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

7

(Relation typeטיפוס קשר )( מקשר בין שני טיפוסים או יותר של ישויות.טיפוס יחס )או טיפוס קשר

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

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

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

יתכנו שחקנים עם יותר מסרט אחד, או סרטים עם יותר משחקן אחד.

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

שחקן קולנוע

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

סרט

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

שיחק

Page 8: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

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

תכונות כאלו נקראות גם תכונות יחס.

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

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

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

טיפוס הקשר עצמו.

שחקן קולנוע

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

סרט

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

שיחק

תפקיד

Page 9: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

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

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

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

שחקן קולנוע

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

סרט

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

שיחק

תפקיד

Page 10: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

10

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

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

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

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

שחקן קולנוע

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

סרט

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

שיחק

תפקיד

Page 11: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

11

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

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

חלק ממפתח(.

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

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

שחקן קולנוע

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

סרט

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

כוכב

תפקיד

Page 12: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

12

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

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

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

פרס

שם הפרס

סרט

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

הוענק

סכום כסף

תאריךתאריך

Page 13: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

13

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

טיפוס ישות.

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

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

סרט

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

המשך

המשך

מקור

Page 14: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

14

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

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

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

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

שחקן קולנוע

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

סרט

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

שיחק

תפקיד

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

Page 15: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

15

ISAישויות חלשות, קשר הוא טיפוס היורש את קבוצת התכונות של טיפוס טיפוס ישות חלש

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

המחובר אליו.

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

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

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

לישות אחת מהטיפוס החזק.

Page 16: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

(Specializationהפרדה ) יסומן במשולש.ISAטיפוס הישות החלש יסומן במלבן כפול, וטיפוס קשר ה-

שחקן קולנוע

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

ISA

שחקן אופי

אופי

כל שחקן קולנוע יכול להיות גם שחקן אופי )עם אופי

יחיד(.

סרט

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

ISA

סרט מדובב

שפה

אחראידיבוב

יתכנו מספר גרסאות מדובבות

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

אותה מתוך הטבלא עבור טיפוס הישות החלש.

Page 17: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

17

זיהוי, הכללה הוא טיפוס ישות חלש זיהוי

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

המחובר אליו.

חיבור בקווים עבים.סימון:

─ מספר (Generalizationהכללה )טיפוסי ישות חלשים, ה"חולקים"

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

בדיוק(.

קווים עבים, משולש אחד סימון:משותף.

סרט

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

ID

סרט פילם

פורמט

סרט

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

ISA

סרט תיעודי סרט עלילתי

Page 18: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

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

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

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

שחקן קולנוע

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

ISA

שחקן דיבוב

הקלטה

Page 19: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

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

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

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

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

שחקן קולנוע

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

סרט

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

שיחק

תפקיד

שחקן קולנוע

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

סרט

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

שיחק

תפקיד

Page 20: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

20

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 21: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

21

אלו טבלאות יתקבלו מהתרשים ? ?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 22: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

22

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

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

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

נתונים מבוססי עצמים.

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

רלציוניות.

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

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

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

.++Cכגון

Page 23: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

23

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

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

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

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

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

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

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

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

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

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

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

Page 24: 1 236363 מערכות מסדי נתונים 2. תרשימי ER שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה

24

ODLחומר קריאה ─

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

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

הקורס, וכן בספר:

J.D. Ullman and J. Widom,

A First Course in Database Systems

בהצלחה !