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

Slides:



Advertisements
Similar presentations
Completeness and Expressiveness. תזכורת למערכת ההוכחה של לוגיקה מסדר ראשון : אקסיומות 1. ) ) (( 2. )) ) (( )) ( ) ((( 3. ))) F( F( ( 4. ) v) ( ) v ((
Advertisements

ממיבחניםC שאלות ++.
תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
מבוא למדעי המחשב לתעשייה וניהול
1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
תרשימי DFD ד"ר אבי רוזנפלד. Kendall & Kendall © 2005 Pearson Prentice Hall 7-2 הסימנים הבסיסיים.
מערכות מסדי נתונים 3. אלגברה רלציונית שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה.
1 Formal Specifications for Complex Systems (236368) Tutorial #2 Z introduction and notation (contd.); Birthday book example (Chapter 1 in the book); Z.
אקסס מבוא למערכות מידע.
תוכנית דעת, שנה"ל תשס"ז, מרצה יהודה הופמן מערכות מידע ארגוניות מערכות מידע ארגוניות הרצאה מס' 10: מסדי נתונים.
מתמטיקה בדידה תרגול 3.
3½ . דוגמאות נוספות ל-ERD ואלגברה רלציונית עריכה: אמיר שפילקה
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
תרגול חזרה. מבנה האובייקט תאר את מבנה האובייקט כולל מבנה טבלאות הפונקציות הוירטואליות עבור התכנית הבאה struct A { int x; virtual void a() {}; }; struct.
עיבוד תמונות ואותות במחשב אלכסנדר ברנגולץ דואר אלקטרוני : שיטות קידוד שיטות קידוד אורך מלת קוד ואנטרופיה אורך מלת קוד ואנטרופיה קידוד.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית X היא ניתנת למניה אם יש התאמה חד-חד ערכית בין X לבין .
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site : T.A. :Emilia Katz.
קורס מסדי נתונים (Database Systems)
מסדי נתונים תשס " ג 1 More on SQL קורס מסדי נתונים.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
5. תלויות פונקציונליות שקפים: אלדר פישר
2. תרשימי ER שקפים: אלדר פישר עריכה ותוספות: אמיר שפילקה
3. אלגברה רלציונית שקפים: אלדר פישר
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
משטר דינמי – © Dima Elenbogen :14. הגדרת cd ו -pd cd - הזמן שעובר בין הרגע שראשון אותות הכניסה יוצא מתחום לוגי עד אשר אות המוצא יוצא מתחום.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
מתמטיקה בדידה תרגול 2.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
מערכות מסדי נתונים 1. הקדמה שקפים: אלדר פישר.
מערכות בסיסי נתונים הצגה של הסטודנטים את עצמם, הרקע שלהם, ציפיותיהם מהקורס. הצגת ציפיותיי, מדיניות הקורס, מטלות, וכו'.
מערכות מסדי נתונים 1. הקדמה שקפים: אלדר פישר עריכה ותוספות: אמיר שפילקה.
1 Formal Specifications for Complex Systems (236368) Tutorial #3 Z introduction and notation (contd.); Birthday book example (Chapter 1 in the book)
תרשים המחלקות ותרשים העצמים 1. חלק שלישי: ניתוח ועיצוב מערכות מידע באמצעות שימוש ב-UML ומתודולוגיית ה-Unified Process (UP) E1 3 E2 2.
Presentation by Gil Perry Supervised by Amos Fiat 1.
מטא-מודלים Metamodels. מטא-מודל - דגשים לפתרון לקרוא את הכל – זה ארוך אבל הכל נמצא בפנים ! להסתכל על התרשימים הויזואליים ולראות מה מזהים. לקשר בין התמונה.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
תכנות אסינכרוני, תקשורת ופיתוח אפליקציות ל- Windows 8.1 ואפליקציות ל- Windows Phone 8 Control (Part II)
1 תרגול 11: Design Patterns ומחלקות פנימיות אסף זריצקי ומתי שמרת 1 תוכנה 1.
Tirgul 12 Trees 1.
Structured Query Language
Formal Specifications for Complex Systems (236368) Tutorial #1
סמן נכון/לא נכון: יכולים להיות 2 חתולים (type)עם אותו שם (name)
מבוא למדעי המחשב סיבוכיות.
4 July 2007 נרמול מסד הנתונים.
SQL בסיסי – הגדרה אינדוקטיבית
מערכות ניהול בסיסי נתונים
עבודה עם נתונים באמצעות ADO.NET
סיכום השיעור הקודם חומרה – קלט/פלט, יחידות אחסון, CPU
תכנות מכוון עצמים בשפת JAVA
פרוקטוז, C6H12O6 , חד-סוכר מיוחד
ממשקים - interfaces איך לאפשר "הורשה מרובה".
מערכות מסדי נתונים 1. הקדמה.
פרק 3: מודל הנתונים.
מבוא ל - SQL מטרות הקורס: להבין מהו בסיס נתונים (או מסד נתונים)?
Marina Kogan Sadetsky –
ניתוח מערכות מידע תכנות ב C#
תכנות מכוון עצמים ושפת JAVA
תכנות מכוון עצמים ושפת JAVA
מבוא למערכות מידע פרק 1.
מודל הישויות והקשרים – יותר לעומק
בסיסי נתונים ושפת SQL הרצאה #6
מבוא למערכות מידע בשילוב ACCESS
Presentation transcript:

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

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

סימונים קיימות מספר גישות לאופן השרטוט של תרשימי ER, אולם העקרונות הלוגים המנחים משותפים לכולן. אנו נשתמש בגישה ובסימונים המתוארים בספר Ullman and Widom, First Course in Database Systems

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

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

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

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

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

קשר (Relationship) מייצג קשר בין ישויות. למשל, הקשר בין השחקנית נטלי פורטמן והסרט לאון מייצג השתתפות של השחקנית בסרט. קשר בינארי – קשר בין שתי ישויות ולכן מבוטא כזוג ישויות. קשר טרינארי – קשר בין שלוש ישויות ולכן מבוטא כשלשה. ... קשר n-ארי - קשר בין n ישויות ולכן מבוטא כ-n-יה של ישויות. לרוב, קשרים ייוצגו בטבלה או בקובץ על ידי רשומה מתאימה המכילה את המפתחות הראשיים של הישויות המשתתפות. האם נייצג קשרים בדיאגרמת ישויות קשרים?

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

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

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

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

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

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

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

מה ההבדל? השתתף מספר קורס קורס מרצה שם מספר זהות סטודנט השתתף

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

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

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

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

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

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

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

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

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

האם זהו ייצוג נאמן של המציאות? הוספת אילוצים – דוגמה מספר זהות שם צאצא אדם הורה הורה האם זהו ייצוג נאמן של המציאות? מה ניתן לשפר?

האם זהו ייצוג נאמן של המציאות? הוספת אילוצים – דוגמה מספר זהות שם צאצא צאצא אמהות אדם אבהות הורה הורה האם זהו ייצוג נאמן של המציאות? מה ניתן לשפר?

האם זהו ייצוג נאמן של המציאות? דוגמה מספר זהות שם צאצא אמהות אדם צאצא אבהות הורה הורה ISA ISA אשה גבר האם זהו ייצוג נאמן של המציאות? מה ניתן לשפר?

דוגמא מסכמת נראה תרשים 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

אלו טבלאות יתקבלו מהתרשים ? אלו עמודות יהיו בטבלה עבור טיפוס היחס 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.

שפת ODL (תילמד בקריאה עצמית) השפה ODL (Object Definition Language) היא שפת הגדרת נתונים (DDL) שיכולה לשמש מסדי נתונים רלציונים ומסדי נתונים מונחי אובייקטים. כמו תרשימי ER, גם ביטויי ODL ניתנים לתרגום לסכמות רלציוניות. ניתן לתרגם תרשים ER לביטוי ODL ולהיפך, אולם התרגום לא תמיד יהיה "טבעי", ויהיה איבוד של מידע. המבנה של ביטוי ODL מזכיר מבנה של שפות מונחות אובייקטים, כגון C++ ו- Java.

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

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 בהצלחה !