מבוא לתכנון הסכמה – חלק א

27
הההה הההההה ההההה – 'ההה הAn Introduction to Schema Design – Part 1 1

Upload: melodie-clay

Post on 31-Dec-2015

49 views

Category:

Documents


0 download

DESCRIPTION

מבוא לתכנון הסכמה – חלק א'. An Introduction to Schema Design – Part 1. המטרה: "התאמת העולם למודל". כשאנחנו מעצבים בסיס נתונים במודל היחסים, אנחנו בעצם דוחסים את העולם הממשי לתוך טבלאות. דרישות הלקוח. תכנון סכמה. תכנון ברמה גבוהה. אפשר להתחיל ישירות להגדיר טבלאות, אבל: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: מבוא לתכנון הסכמה – חלק א

'מבוא לתכנון הסכמה – חלק א

An Introduction to Schema Design – Part 1

1

Page 2: מבוא לתכנון הסכמה – חלק א

אפשר להתחיל ישירות להגדיר טבלאות, אבל:

האם הבנו את הדרישותנכון?

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

אנחנו צריכים כלי עזרל:דו-שיח יעיל עם הלקוח תהליך דחיסת העולם

הממשי לתוך טבלאות

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

המטרה: "התאמת העולם למודל"

דרישות הלקוח

סכמה במודלהיחסים

תכנון סכמה

דיאגראמהבמודל הישויות

והקשרים

תכנון ברמה גבוהה

2

Page 3: מבוא לתכנון הסכמה – חלק א

ביקורמבקר חולה

אב מש'

מחלה

אםאבחולה

מוצרמומלץ

בתוכו

תרופה

מאורז

אריזה

סותרת

הפניה

סניףבדיקה מבוצע

תלונהאבחנהרופא

מוגשתנראהאצל

רגיש

אבבן

דוגמה להמחשה: דיאגראמה עבור פרויקט בשנת תשע"ב

3

Page 4: מבוא לתכנון הסכמה – חלק א

מודל הישויות והקשריםThe Entity-Relationship Model

4

Page 5: מבוא לתכנון הסכמה – חלק א

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

:באנגליתEntity-Relationship Model נכתוב "מודל(ER)"

לדיאגרמה במודלER קוראים ERD.:הערה: בזמן האחרון התפרסמו גם מודלים אחרים

Unified Modeling Language (UML)Object Description Language (ODL) מודלER הינו המודל הקלסי

במודלER העולם מורכב מישויות וקשרים בין ,הישויות

דוגמאות של ישויות: סטודנט, קורס, מרצה דוגמאות של קשרים: קשר בין קורס לסטודנט, קשר בין

קורס למרצה5

מודל הישויות והקשרים

Page 6: מבוא לתכנון הסכמה – חלק א

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

'שם, כתובת, תאריך לידה, שם האב, מספר זהות וכד

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

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

אטריבוט או קבוצת אטריבוטים שמזהים את הישותשל הישותמפתח נקרא)ת(

6 בוחרים מפתח אחד ומסמנים אותו על ידי קו תחתון

ישות ת.ז.

שם משפחה

שם

מס'ישות ספרישות קורא

Page 7: מבוא לתכנון הסכמה – חלק א

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

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

לראות אותו כמאפיין את הקשר הרשמה7

קשרת.ז.

שם משפחה

שם

מס'ישות ספרישות קורא

קשר השאלה

תאריך החזרה

Page 8: מבוא לתכנון הסכמה – חלק א

ייתכן שקיימים שניים או יותר קשרים בין אותן הישויות

8

כמה קשרים בין אותם ישויות

ת.ז.

שם משפחה

שם

מס'ישות ספרישות קורא

קשר השאלה

תאריך החזרה

קשר תרומה

שם לע"נ

Page 9: מבוא לתכנון הסכמה – חלק א

אחת. קבוצת ישויותכל הישויות מאותו סוג נמצאות בדוגמאות:

קבוצת הישויות של קוראיםקבוצת הישויות של סטודנטים

סימון בERDמלבן :

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

בסוף המצגת ניראה יוצאים מכלל זה 9

קבוצת ישויותת.ז.

שם משפחה

קבוצת ישויות "קורא"

קורא

ת.ז.

שם משפחה

קבוצת ישויות

Page 10: מבוא לתכנון הסכמה – חלק א

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

סימון בERDמעוין :

לכול הקשרים בקבוצה יש את אותם אטריבוטים

10

קבוצת קשרים

תאריך החזרה

קבוצת קשרים קבוצת קשרים"השאלה"

השאלה

תאריך החזרה

Page 11: מבוא לתכנון הסכמה – חלק א

ERDסיכום של סימונים בסיסיים ב-

קבוצת קשרים

קבוצת ישויותאטריבוטאטריבוט

קבוצת ישויות

אטריבוט

ספרהשאל

הקורא

תאריך החזרה

ת.ז.

שםשם משפחה

מס'

11

Page 12: מבוא לתכנון הסכמה – חלק א

:ב "קבוצה" במובן המתמטי אין משמעות לשתי דברים זהים. לדוגמה{1 ,4 ,7הינה קבוצה של שלושה מספרים }{1 ,4 ,7 ,1הינה אותה קבוצה של שלושה מספרים כי כפילויות לא נחשבות }

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

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

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

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

הערה חשובה על קבוצת קשרים

ספר השאלה קורא

תאריך החזרה

ת.ז.

שםשם משפחה

מס'

Page 13: מבוא לתכנון הסכמה – חלק א

דיאגראמת הישויות והקשרים

ER (Entity-Relationship) Diagram

13

Page 14: מבוא לתכנון הסכמה – חלק א

14

קשר רבים לרבים

מרצה לימד קורס

מרצה

ת.ז.

שם משפחה

לימד קורס

שם

מס'

Page 15: מבוא לתכנון הסכמה – חלק א

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

15

קשר יחיד לרבים

מרצה

ת.ז.

שם משפחה

לימד קורס

מרצה לימד קורס

שם

מס'

Page 16: מבוא לתכנון הסכמה – חלק א

16

קשר יחיד ליחיד

מרצה לימד קורס

מרצה

ת.ז.

שם משפחה

לימד

קורס

שם

מס'

Page 17: מבוא לתכנון הסכמה – חלק א

?למה צריך לציין תפקיד אם קיים קשר בין שתי ישויות או יותר, אז לכל ישות יש תפקיד

בקשר שבין סטודנט לקורס התפקיד של הסטודנט הוא הרשמה למשל: בקשר

להירשם והתפקיד של הקורס הוא שאליו נרשמים בקשר לא רקורסיבי ברור משם קבוצת הקשרים ושמות קבוצות

הישויות מה הוא התפקיד של כל ישות בקשר אבל בקשר רקורסיבי לא ברור משמות אלו מה הוא התפקיד של כל

17 ישות בקשר.

קשר רקורסיבי

שכיר.ת.ז

שם

כתובת

מנהל

פרויקט מנהל

עובד

תפקיד של ישות בקשר

Page 18: מבוא לתכנון הסכמה – חלק א

?לכיוון איזה תפקיד צריך להיות החץ

18

קשר רקורסיבי יחיד לרבים

בן אדם.ת.ז

שם

גיל

אבא של

אבא

ילד

Page 19: מבוא לתכנון הסכמה – חלק א

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

?למשל: איזה סוג קשר יש בין מרצים לקורסים תלוי אם יכולים להיות כמה מרצים באותו קורס )כגון כמה

קבוצות(

19

בחירת סוג הקשר

Page 20: מבוא לתכנון הסכמה – חלק א

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

20

קשר משולש

סטודנטת.ז.

שם משפחהתרגול קורס

מתרגלת.ז.שם משפחה

שם

מס'

ציון למתרגל

Page 21: מבוא לתכנון הסכמה – חלק א

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

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

21

קשר משולש עם אילוץ

סטודנטת.ז.

שם משפחהתרגול קורס

מתרגל ת.ז.שם משפחה

שם

מס'

ציון למתרגל

Page 22: מבוא לתכנון הסכמה – חלק א

22

קשר משולש עם רקורסיה

סטודנטת.ז.

שם משפחהתרגול קורס

ציון למתרגל

שם

מס'סטודנט

מתרגל

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

שימו לב שצריך לציין תפקידים!

Page 23: מבוא לתכנון הסכמה – חלק א

?האם אנחנו צריכים להוסיף קשר בין קורס למתרגל

!תלוי אם המתרגל יכול להיות קשור לקורס רק דרך הוראה לסטודנטים

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

ללמד קורס מסוים, אז כן.

23

שיקול צורך לקשר נוסף

קשר נוסף

סטודנטת.ז.

שם משפחהתרגול קורס

מתרגל ת.ז.שם משפחה

שם

מס'

ציון למתרגל

Page 24: מבוא לתכנון הסכמה – חלק א

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

אטריבוט "תחום מחקר"

קשרISAמיועד להבעת מצבים כאלו

24

ISAקשר מיוחד:

חבר סגל

מרצה

שםת.ז.

isa

תחום המחקרחוקר

תאריך התחלה

isa

Page 25: מבוא לתכנון הסכמה – חלק א

25

קשר משולש עם רקורסיה

סטודנטת.ז.

שם משפחהתרגול קורס

ציון למתרגל

שם

מס'סטודנט

מתרגל

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

מה אם למתרגל יש אטריבוטים שאין אותם לסטודנט רגיל?

Page 26: מבוא לתכנון הסכמה – חלק א

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

26

ISAקשר משולש עם רקורסיה ו-

סטודנטת.ז.

שם משפחהתרגול קורס

מתרגל שנות ניסיון

שם

מס'

ציון למתרגל

isa

Page 27: מבוא לתכנון הסכמה – חלק א

תבנית בשביל תרגיל

27

ישויות

ישויות חלשות

קשרים

קשרים חלשים

ISA