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

Post on 31-Dec-2015

49 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

An Introduction to Schema Design – Part 1

1

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

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

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

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

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

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

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

דרישות הלקוח

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

תכנון סכמה

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

והקשרים

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

2

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

אב מש'

מחלה

אםאבחולה

מוצרמומלץ

בתוכו

תרופה

מאורז

אריזה

סותרת

הפניה

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

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

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

רגיש

אבבן

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

3

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

4

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

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

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

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

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

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

קורס למרצה5

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

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

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

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

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

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

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

ישות ת.ז.

שם משפחה

שם

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

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

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

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

קשרת.ז.

שם משפחה

שם

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

קשר השאלה

תאריך החזרה

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

8

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

ת.ז.

שם משפחה

שם

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

קשר השאלה

תאריך החזרה

קשר תרומה

שם לע"נ

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

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

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

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

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

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

שם משפחה

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

קורא

ת.ז.

שם משפחה

קבוצת ישויות

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

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

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

10

קבוצת קשרים

תאריך החזרה

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

השאלה

תאריך החזרה

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

קבוצת קשרים

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

קבוצת ישויות

אטריבוט

ספרהשאל

הקורא

תאריך החזרה

ת.ז.

שםשם משפחה

מס'

11

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

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

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

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

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

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

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

תאריך החזרה

ת.ז.

שםשם משפחה

מס'

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

ER (Entity-Relationship) Diagram

13

14

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

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

מרצה

ת.ז.

שם משפחה

לימד קורס

שם

מס'

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

15

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

מרצה

ת.ז.

שם משפחה

לימד קורס

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

שם

מס'

16

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

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

מרצה

ת.ז.

שם משפחה

לימד

קורס

שם

מס'

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

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

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

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

17 ישות בקשר.

קשר רקורסיבי

שכיר.ת.ז

שם

כתובת

מנהל

פרויקט מנהל

עובד

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

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

18

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

בן אדם.ת.ז

שם

גיל

אבא של

אבא

ילד

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

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

קבוצות(

19

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

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

20

קשר משולש

סטודנטת.ז.

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

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

שם

מס'

ציון למתרגל

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

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

21

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

סטודנטת.ז.

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

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

שם

מס'

ציון למתרגל

22

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

סטודנטת.ז.

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

ציון למתרגל

שם

מס'סטודנט

מתרגל

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

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

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

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

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

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

23

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

קשר נוסף

סטודנטת.ז.

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

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

שם

מס'

ציון למתרגל

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

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

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

24

ISAקשר מיוחד:

חבר סגל

מרצה

שםת.ז.

isa

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

תאריך התחלה

isa

25

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

סטודנטת.ז.

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

ציון למתרגל

שם

מס'סטודנט

מתרגל

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

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

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

26

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

סטודנטת.ז.

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

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

שם

מס'

ציון למתרגל

isa

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

27

ישויות

ישויות חלשות

קשרים

קשרים חלשים

ISA

top related