236363 מערכות מסדי נתונים
description
Transcript of 236363 מערכות מסדי נתונים
1
236363מערכות מסדי נתונים
ERD. דיאגראמות ישויות קשרים 2
)מבוסס על השקפים של אלדר פישר(
2
(ERמודל הישויות והקשרים )
מאפשר לנו לנתח את דרישות )ER )Entity-Relationshipמודל המערכת ולייצג את סוגי הישויות שנרצה לשמור לגביהם מידע,
את סוגי הקשרים בין הישויות וכן אילוצים שונים.
מהווה )ER )ERD – Entity-Relationship-Diagramתרשים תיאור ויזואלי בעזרת דיאגרמה של המערכת המיוצגת במודל.
התרשים מקל על תהליך הגדרת הרמה הלוגית של מודל הנתונים )למשל, הגדרת סכמות של מסד טבלאי(. לפיכך הוא משמש מתווך טוב בין הרמה הלוגית לבין המציאות כפי שאנו
תופסים אותה.
בשל היותו כללי ותיאורטי, למודל מגבלות. למשל, אין פירוט של תחומי הערכים האפשריים עבור תכונות הישויות.
סימונים, אולם ERקיימות מספר גישות לאופן השרטוט של תרשימי
העקרונות הלוגים המנחים משותפים לכולן.
אנו נשתמש בגישה ובסימונים המתוארים בספר
Ullman and Widom, First Course in Database Systems
3
4
(Attributeתכונה )
יחידת המידע הבסיסית ביותר המייצגת פריט מידע על אובייקט
מסוג מסויים.
בייצוג קבוצת כל הישויות מטיפוס נתון כטבלה, כל תכונה תתאים
לעמודה בטבלה. במושגים של מערכת הקבצים: בכל רשומה
המתאימה לישות מטיפוס נתון, יהיה שדה עבור כל תכונה של
הטיפוס.
סימון: אליפסה ובתוכה שם התכונה.
שם ת. לידה
(Entityישות )אובייקט מסוג מסוים שלגביו נרצה לשמור מידע במערכת.
בייצוג בטבלה או בקובץ, לרוב הישות מתבטאת ברשומה.
למשל, במסד נתונים על סרטי קולנוע, עשויה להיות ישות המייצגת את שחקן הקולנוע כריסטופר ריב.
דיאגרמת ישויות קשרים אינה כוללת ייצוג של ישויות. מדוע?
5
6
(Entity Setטיפוס ישויות ) הוא קבוצה של ישויות מסוג מסוים. טיפוס ישויות
למשל, שחקני קולנוע.
לכל טיפוס ישויות משויכות תכונות שמתארות ומגדירות את הישויות מטיפוס זה.
בייצוג ע"י טבלה, טיפוס הישויות יהיה שם הטבלה, והתכונות המשויכות לטיפוס הישויות תהיינה שמות עמודות הטבלה.
אין לשייך לטיפוס ישויות שתי תכונות בעלות שם זהה.
7
סימון ─טיפוס ישויות , טיפוס ישויות יסומן ע"י מלבן ובתוכו שם הטיפוס;ERבתרשים
התכונות המתאימות ייוצגו ע"י אליפסות המחוברות למלבן זה.
כל תכונה בתרשים מחוברת לטיפוס ישויות אחד או לטיפוס
קשרים )ראו בהמשך( אחד בדיוק.
המפתח מתחת לשמן מהוות את קו תחתי קבוצת התכונות עם.הראשי
כל מלבן מייצג טיפוס ישויות שונה, ולכן אין ERבתרשים להשתמש בשם של טיפוס ישויות יותר מפעם אחת בתרשים.
שחקן קולנוע
תמונה ת. לידה שם
8
תכונות מורכבות ורב ערכיותאפשר גם לציין תכונות עם סוגי ערכים מורכבים יותר.
תכונה המקבלת את תכונה מורכבת:ערכיה מערכים של תתי תכונות.
תתי התכונות המרכיבים את סימון:התכונה המורכבת יחוברו אליה.
מקבלת קבוצהתכונה רב ערכית:של ערכים עבור האובייקט המתאים.
אליפסה כפולהסימון:כאן מאפשרים לאחסן מספר תמונות לכל שחקן.
תאריך
שנה חודש יום
שחקן קולנוע
תמונה ת. לידה שם
(Relationshipקשר )מייצג קשר בין ישויות.
למשל, הקשר בין השחקנית נטלי פורטמן והסרט לאון מייצג השתתפות של השחקנית בסרט.
קשר בינארי – קשר בין שתי ישויות ולכן מבוטא כזוג ישויות.
קשר טרינארי – קשר בין שלוש ישויות ולכן מבוטא כשלשה.
...
-יה של ישויות.n ישויות ולכן מבוטא כ-n-ארי - קשר בין nקשר
לרוב, קשרים ייוצגו בטבלה או בקובץ על ידי רשומה מתאימה המכילה את המפתחות הראשיים של הישויות המשתתפות.
האם נייצג קשרים בדיאגרמת ישויות קשרים?9
10
(Relationship Setטיפוס קשרים )( מקשר בין טיפוסי ישויות - שניים או יותר, טיפוס יחס )או טיפוס קשרים
ומייצג קבוצה של קשרים בין ישויות מטיפוסי הישויות המקושרים.בצורתו הכללית, לכל קומבינציה של ישות אחת מכל טיפוס ישויות
המקושר ע"י טיפוס הקשרים, יתכן ויהיה בין הישויות האלו קשר מטיפוס הקשרים הנ"ל, ויתכן שלא יהיה קשר כזה.
סימון: מעוין ובתוכו שם הקשר, מחובר לטיפוסי הישות המתאימים.
בדוגמה זו, יתכנו שחקנים עם יותר מסרט אחד, או סרטים עם יותר משחקן אחד. יתכנו גם סרטים ללא שחקנים )למשל סרטי אנימציה(,
או שחקנים ללא סרטים.
שחקן קולנוע
תמונה ת. לידה שם
סרט
ז'אנר שנה שם הסרט
שיחק
טיפוס קשרים עם תכונותניתן גם לקשר תכונות באופן ישיר לטיפוסי קשרים.
במקרה זה, לכל קשר מטיפוס הקשרים תהיה התכונה המצורפת.
בדוגמה כאן לכל שחקן ולכל סרט בו שיחק, נדע באיזה תפקיד ( שיחק השחקן בסרט.יחיד)
ברמת תכנון המסד, נייצג יחס זה ע"י טבלה שעמודותיה מתאימות לתכונות המפתח של טיפוסי הישות המשתתפים,
בנוסף לתכונות טיפוס הקשרים עצמו.
שחקן קולנוע
תמונה ת. לידה שם
סרט
ז'אנר שנה שם הסרט
שיחק
תפקיד
טיפוס קשרים עם תכונות מפתחמה יקרה בהוספת תכונה שהיא חלק מהמפתח לטיפוס קשרים?
במקרה כזה יתכנו מספר קשרים שונים עבור אותו זוג של ישויות, כאשר הקשרים השונים נבדלים ביניהם בערכים בתכונת המפתח של טיפוס הקשרים. כיצד נייצג זאת בטבלאות?
בדוגמא כאן, כל שחקן יכול עתה להופיע באותו סרט במספר תפקידים שונים.
שחקן קולנוע
תמונה ת. לידה שם
סרט
ז'אנר שנה שם הסרט
שיחק
תפקיד
13
השתתפות מלאהלפעמים עבור טיפוס ישויות המחובר לטיפוס קשרים נתון, נדרוש
שכל ישות מטיפוס הישויות תשתתף בלפחות קשר אחד מטיפוס הקשרים.
סימון: קו כפול בחיבור של טיפוס הישויות לטיפוס הקשרים.
בדוגמה זו, אילוץ ההשתתפות מתיר רק ייצוג של שחקני קולנוע שהוא( בסרט אחד לפחות. ששיחקו )בתפקיד כל
שחקן קולנוע
תמונה ת. לידה שם
סרט
ז'אנר שנה שם הסרט
שיחק
תפקיד
14
מידת הריבוי של השתתפות בקשריםאילוץ המחייב כל ישות מטיפוס מסויים להיות קשורה לישות אחת
בלבד )אם בכלל( מהטיפוס האחר המשתתף בטיפוס הקשרים.
סימון: חץ בחיבור של טיפוס הקשרים לטיפוס הישויות.
בדוגמה כאן לכל סרט יתכן כוכב אחד בלבד )ובאחד התפקידים(. יתכנו גם סרטים ללא כוכבים כלל.
שחקן קולנוע
תמונה ת. לידה שם
סרט
ז'אנר שנה שם הסרט
כוכב
תפקיד
מידות ריבוי
15
שחקןסרט R
עובדמנהל R
פקולטהדיקן R
רבים לרבים
יחיד לרבים
יחיד ליחיד
16
─קשר בין שלושה טיפוסי ישויות דוגמה
אפשר לשמור במאגר כאן רק פרס שהוענק לפחות פעם אחת לסרט כל שהוא בתאריך כל שהוא.
לא יתכן שאותו פרס יוענק לאותו סרט בשני תאריכים שונים,או שאותו פרס יוענק באותו תאריך לשני סרטים שונים.
פרס
שם הפרס
סרט
ז'אנר שנה שם הסרט
הוענק
סכום כסף
תאריךתאריך
מה ההבדל?
17
קורסמרצה השתתף
סטודנט
קורסמרצה השתתף
השתתףסטודנט השתתף
מספר קורסשם
מספר זהות
שם
מספר זהות
מספר קורס
18
(Rolesתפקידים )יתכנו מקרים שבהם טיפוס קשר יקושר מספר פעמים לאותו
טיפוס ישות.
כדי להבדיל בין שני הקישורים אפשר לציין תפקידים על הקשתות.
החץ על הקשת עם התפקיד "מקור" מציין שלכל סרט יכול להיות לכל היותר סרט מקור אחד.
סרט
ז'אנר שנה שם הסרט
המשך
המשך
מקור
19
(Aggregationהקבצה ) מאפשרת להשתמש בטיפוס קשרים כאילו הוא טיפוס ישויות.הקבצה
תכונות ההקבצה הן כל תכונות הטיפוסים המשתתפים )הקשר והישויות(. לכל קומבינציה של ישויות המקושרות ע"י הקשר, תהיה
ישות אחת בהקבצה.
─ברמת המימוש לא צריך לתחזק טבלה עבור ההקבצה עצמה היא תוסק מהטבלאות עבור הטיפוסים המרכיבים אותה.
שחקן קולנוע
תמונה ת. לידה שם
סרט
ז'אנר שנה שם הסרט
שיחק
תפקיד
פרס הוענקשם הפרס
מה ההבדל?
20
שחקן קולנוע
תמונה ת. לידה שם
סרט
ז'אנר שנה שם הסרט
שיחק
תפקיד
פרס הוענקשם הפרס
שחקן קולנוע
תמונה ת. לידה שם
סרט
ז'אנר שנה שם הסרט
שיחק
תפקיד
פרס הוענקשם הפרס
טיפוס ישויות חלשטיפוס ישויות חלש הוא טיפוס ישויות שהמפתח שלו הוא צירוף
של מפתח חלש שלו ומפתח של טיפוס ישויות )או טיפוסי ישויות( שבו הוא תלוי.
סימון: טיפוס הישויות וטיפוס הקשרים מסומנים בקו כפול.
21
מספר גדודגדוד
אות
ג-פ
פלוגה
מספר מחלקה
פ-מ
מהם האילוצים הנדרשים לגבי
מידות ריבוי?
מה לגבי השתתפות
מלאה?
22
ISAקשר ייצוג תת-טיפוסים על ידי הכללה. מאפשר ISAטיפוס קשרים מסוג
( "יורשים" את תכונות טיפוס subclassesטיפוסי הישויות המוכללים )(.superclassהישויות המכליל )
אם לטיפוס הישויות המכליל יש מפתח אזי יתכן כי לטיפוסי הישויות המוכללים אין מפתח )הם יורשים את המפתח מהמכליל(.
לכל טיפוס ישויות מוכלל יתכנו תכונות או קשרים ייחודיים לו.
עבור כל ישות מהטיפוס המוכלל תהיה קיימת ישות מהטיפוס המכליל, שערכי תכונותיה הן ה"צמצום" המתאים.
יסומן בעזרת משולש המצביע על טיפוס הישויות ISAסימון: קשר )שימו לב, בחלק מן הספרים הסימון הוא הפוך!(המכליל.
דוגמה
23
סרט
ז'אנר שנה שם הסרט
סרט מצויר
מאייר
ISA
סרט טבע
היכן צולם
ISAקולות
תפקיד
שחקן
שם השחקן
הכללה ללא חיתוךאם רוצים שישות מהטיפוס המכליל לא תופיע בשני הטיפוסים
יחיד.ISAהמוכללים, אז משתמשים ביחס
24
סרט
ז'אנר שנה שם הסרט
סרט מצויר
מאייר
ISA
סרט טבע
היכן צולם
קולות
תפקיד
שחקן
שם השחקן
הכללה מלאהאם רוצים שלכל ישות מהטיפוס המכליל יהיו ישויות מוכללות, אז
משתמשים בקווים עבים.
25
סרט
ז'אנר שנה שם הסרט
סרט מצויר
מאייר
ISA
סרט טבע
היכן צולם
קולות
תפקיד
שחקן
שם השחקן
לטבלאותISAהמרת קשר
טבלה עבור טיפוס הישויות המכליל ובה רשומה אפשרות א':עבור כל ישות מטיפוס זה. טבלה עבור כל טיפוס ישויות מוכלל אך בה לא יכללו תכונות טיפוס הישויות המכליל, פרט למפתח.
טבלאות רק עבור טיפוסי הישויות המוכללים. איחוד אפשרות ב':הטבלאות יכלול את כל תכונות טיפוס הישויות המכליל.
מתי נרצה להשתמש באפשרות א' ומתי באפשרות ב'?
26
הוספת אילוצים – דוגמה
27
אדם
שם מספר זהות
הורה
צאצא
הורה
האם זהו ייצוג נאמן של המציאות?
מה ניתן לשפר?
הוספת אילוצים – דוגמה
28
אדם
שם מספר זהות
אבהות
צאצא
הורה
האם זהו ייצוג נאמן של המציאות?
מה ניתן לשפר?
אמהות
צאצא
הורה
דוגמה
29
אדם
שם מספר זהות
אבהות
האם זהו ייצוג נאמן של המציאות?
מה ניתן לשפר?
אמהות
צאצא
הורה
אשהגבר
הורה
צאצא
ISA ISA
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
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.
32
)תילמד בקריאה עצמית(ODLשפת
היא שפת הגדרת )ODL )Object Definition Languageהשפה
( שיכולה לשמש מסדי נתונים רלציונים ומסדי DDLנתונים )
נתונים מונחי אובייקטים.
ניתנים לתרגום לסכמות ODL, גם ביטויי ERכמו תרשימי
רלציוניות.
ולהיפך, אולם התרגום לא ODL לביטוי ERניתן לתרגם תרשים
תמיד יהיה "טבעי", ויהיה איבוד של מידע.
מזכיר מבנה של שפות מונחות ODLהמבנה של ביטוי
.Java ו- ++Cאובייקטים, כגון
33
ODL ─קווים כללים (classמחלקה ) הגדרה של ODLעבור כל טיפוס ישות תיכתב ב-
מתאימה. התכונות יוגדרו בתוך הגדרת המחלקה.
)דו צדדיים וחסרי תכונות בלבד( יוגדרו כחלק מהגדרת קשרים
עבור טיפוס קשר יהיו הגדרות ─המחלקות המתאימות
מתאימות במחלקות משני "צדדיו".
רבי קבוצות, סדרות( ─ פרט לקבוצות )למשל מבנים מרוכבים
. הדבר נכון גם לגבי ODLגם ניתנים להגדרה באופן טבעי ב-
נתונים של סטודנטים שיש להם מספר ─תכונות )לדוגמא
כתובות, לפי סדר עדיפות( וגם לגבי קשרים )למשל, ניתן
לאפשר ריבוי ביחס "סטודנט-לקח-קורס", על מנת ODLב-
לציין קורס שנלקח מספר פעמים ע"י אותו סטודנט(.
34
ODL ─חומר קריאה
, ועל שפת השאילתות ODLחומר הקריאה על שפת הגדרת המידע
, נמצא בצורת שקפים באתר הקורס, וכן בספר:OQLהנלווית לה
J.D. Ullman and J. Widom, A First Course in Database Systems
בהצלחה !