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

Preview:

Citation preview

1

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

ER. תרשימי 2

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

2

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

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

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

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

אותה.

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

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

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

3

(Attributeתכונה )

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

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

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

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

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

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

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

שם ת. לידה

4

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

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

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

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

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

5

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

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

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

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

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

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

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

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

שחקן קולנוע

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

6

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

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

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

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

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

תאריך

שנה חודש יום

שחקן קולנוע

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

7

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

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

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

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

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

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

שחקן קולנוע

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

סרט

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

שיחק

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

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

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

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

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

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

שחקן קולנוע

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

סרט

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

שיחק

תפקיד

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

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

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

שחקן קולנוע

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

סרט

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

שיחק

תפקיד

10

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

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

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

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

שחקן קולנוע

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

סרט

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

שיחק

תפקיד

11

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

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

חלק ממפתח(.

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

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

שחקן קולנוע

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

סרט

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

כוכב

תפקיד

12

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

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

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

פרס

שם הפרס

סרט

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

הוענק

סכום כסף

תאריךתאריך

13

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

טיפוס ישות.

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

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

סרט

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

המשך

המשך

מקור

14

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

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

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

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

שחקן קולנוע

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

סרט

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

שיחק

תפקיד

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

15

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

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

המחובר אליו.

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

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

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

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

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

שחקן קולנוע

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

ISA

שחקן אופי

אופי

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

יחיד(.

סרט

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

ISA

סרט מדובב

שפה

אחראידיבוב

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

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

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

17

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

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

המחובר אליו.

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

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

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

בדיוק(.

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

סרט

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

ID

סרט פילם

פורמט

סרט

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

ISA

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

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

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

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

שחקן קולנוע

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

ISA

שחקן דיבוב

הקלטה

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

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

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

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

שחקן קולנוע

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

סרט

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

שיחק

תפקיד

שחקן קולנוע

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

סרט

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

שיחק

תפקיד

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

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.

22

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

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

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

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

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

רלציוניות.

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

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

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

.++Cכגון

23

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

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

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

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

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

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

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

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

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

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

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

24

ODLחומר קריאה ─

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

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

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

J.D. Ullman and J. Widom,

A First Course in Database Systems

בהצלחה !

Recommended