27/11/02

הערות לתרגיל 1:

 

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

 

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

 

התרגיל יתבצע בשלבים (מפורט במצגת "מסדי נתונים טבלאיים"):

  1. בניית רשימת ישויות.
  2. זיהוי רשימת תכונות לכל ישות מהסעיף הקודם, זיהוי המפתחות
  3. זיהוי ובניית רשימת קשרים
  4. שרטוט ERD

כאשר השלבים 1 עד 3, מבוצעים בשתי פעולות: בניית רשימה אפשרית וניפוי.

 

הנושאים העיקריים שעלו לדיון במפגש מורים היו:

1. האם בבניית ה- ERD לוקחים בחשבון שיקולי מימוש ואליהם נתייחס בהמשך.

2. איך מלמדים נושא כזה בכיתה

3. כיצד בונים תרגיל מסוג זה והאם התרגיל הספציפי הזה מתאים

4. התלבטויות הקשורות ישירות לתרגיל עצמו.

 

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

 

1. בנית רשימת ישויות

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

הישויות בהם התבלטו המורים היו:

·       חוות ה"כלבלב" – זו ישות אחת שאין צורך לשמור עליה מידע

·       בעל כלב -  האפשרויות: לבעל כלב יש כלב אחד ואז נתוני בעל הכלב הם תכונות של הישות "כלב", או שלבעל כלב יש יותר מכלב אחד ולכן רצוי שהוא יהיה ישות נפרדת . באירוע המתואר לא  מוגדר חד משמעית, לכן נניח שלבעל כלב יש כמה כלבים.

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

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

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

o      טיפול בסיום אירוע כרוך בהפקת תעודה ובכך דנו כבר.

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

o       התחלת אימון: מתבטא בהתאמת מטפל לכלב , ישות שהיא עובד חיצוני

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

 

בסיום הוסכמו שבאירוע זה קיימות הישויות הבאות:

בעל כלב, כלב – ישויות חוץ

מאלף – עובד

סוג אילוף - שירות

כלוב – ציוד

פ. התקדמות – מסמך, שירות

אילוף כלב - שירות

 

2. תיאור התכונות והמפתח של כל ישות

בעל כלב: תז. , שם, מס. טלפון

כלב: מס. רשיון, ת. לידה, גזע,

כלוב: מס' כלוב, תאריך, פנויכ/ל

מאלף: תז., שם

אילוף: סוג, מס. ימים, תכנית אימונים

אילוף כלב: מס. רשיון, סוג אילוף, ת. התחלה

 

בעיה שיש לדון בה: האם לישות "כלוב" ניתן לרשום את התכונות: מס. כלוב , פנוי כ/ל?

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

אחת ההצעות היתה לתאר את התכונות הבאות לישות "אילוף כלב":

 מס. רשיון, סוג אילוף, ת. התחלה, סוג אילוף מבוקש, אילוף אחרון שבוצע.

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

 

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

 

3. קשרים:

כלב   <--  שייך ל   ->>   בעל כלב  

כלב  <-  מבקש  ->>  אילוף כלב

אילוף כלב <- מתבצע -> אילוף (מסוג מסוים)

מאלף  <- מבצע ->> אילוף כלב

כלוב <-  מכיל   ->>  אילוף כלב

 אילוף כלב <-  מתאר ->>      פ. התקדמות

 

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

נקודות לדיון נוספות: האם הישויות "כלוב"  ו"מאלף" יכולים להיות נתוני מערכת קבועים ולהישמר לא כטבלאות אלא כקבועים? האם להתייחס לעובדה שיש רק 20 כלובים ו- 3 סוגי אילוף ו- 3 מאלפים?

 

האם האירוע טוב? באופן כללי הוא לא מורכב מדי, ועם זאת יש בו 6 ישויות. פתרון התרגיל לא היה טרויאלי והוא המחיש היטיב את הממד של המרת אירוע ל- ERD. הוא גם איפשר לדון בהיבטים  הבעיה שהוא דל בקשרים בין הישויות ורצוי לתאר אירוע כולל יותר קשרים. בנוסף לכך לא מיוצג באירוע קשר M:N ורצוי שיהיה כזה.