logo

הכללה, התמחות ואגרגציה במודל ER

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

הַכלָלָה

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

הכללה התמחות ואגרגציה במודל ER' title=הַכלָלָה

דוּגמָה: ניתן להכליל סטודנט ופקולטה לישות ברמה גבוהה יותר בשם PERSON כפי שמוצג בתרשים למטה. במקרה זה, תכונות נפוצות כמו P_NAME ו-P_ADD הופכות לחלק מגבוה יֵשׁוּת (PERSON) ומתמחה תכונות כמו S_FEE הופכים לחלק מישות מיוחדת (STUDENT). 



הִתמַחוּת

בהתמחות ישות מחולקת לתתי ישויות על פי מאפייניה. זוהי גישה מלמעלה למטה שבה הישות ברמה הגבוהה יותר מתמחה בשניים או יותר ברמה נמוכה יותר ישויות .

הכללה התמחות ואגרגציה במודל ER' loading='lazy' title=הִתמַחוּת

דוּגמָה: ישות עובדת במערכת ניהול עובדים יכולה להתמקצע ב-DEVELOPER TESTER וכו'. במקרה זה תכונות נפוצות כמו E_NAME E_SAL וכו' הופכות לחלק מישות גבוהה יותר (EMPLOYEE) ותכונות מיוחדות כמו TES_TYPE הופכות לחלק מישות מתמחה (TESTER). 

יְרוּשָׁה

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

  1. תורשת תכונה: זה מאפשר לישויות ברמה נמוכה יותר לרשת את התכונות של ישויות ברמה גבוהה יותר ולהיפך. בתרשים ישות מכונית היא ירושה של ישות רכב כך שמכונית יכולה לרכוש תכונות של רכב. דוגמה: מכונית יכולה לקבל את תכונת הדגם של רכב.
  2. ירושה זוגית : ישויות משנה יורשות גם מערכות יחסים של ישות האם.
  3. עוקף ירושה : ישויות משנה יכולות לעקוף או להוסיף תכונות משלהן או התנהגויות שונות מההורה.
  4. ירושה השתתפות: הורשת השתתפות במודלים של ER מתייחסת להורשה של אילוצי השתתפות מיישות ברמה גבוהה יותר (סופר-class) לישות ברמה נמוכה יותר (subclass). זה מבטיח שתת-מחלקות דבקות באותם כללי השתתפות במערכות יחסים למרות שתכונות ויחסים עצמם עוברים בירושה אחרת.
הכללה התמחות ואגרגציה במודל ER' loading='lazy' title=דוגמה לקשר

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

צבירה

  • דיאגרמת ER אינה מסוגלת לייצג את הקשר בין ישות לקשר אשר עשוי להידרש בתרחישים מסוימים.
  • במקרים אלה מערכת יחסים עם הישויות התואמות לה מצטברת לישות ברמה גבוהה יותר.
  • אגרגציה היא הפשטה שדרכה אנו יכולים לייצג מערכות יחסים כקבוצות ישויות ברמה גבוהה יותר.
הכללה התמחות ואגרגציה במודל ER' loading='lazy' title=צבירה

דוּגמָה: עובד שעובד על פרויקט עשוי לדרוש מכונות מסוימות. אז יש צורך בקשר REQUIRE בין הקשר WORKS_FOR לבין הישות MACHINERY. שימוש ביחסי צבירה WORKS_FOR עם הישויות שלה EMPLOYEE ו-PROJECT נצברים לישות אחת ומערכת היחסים REQUIRE נוצרת בין הישות המצטברת לבין MACHINERY.

ייצוג צבירה באמצעות סכמה

כדי לייצג צבירה בסכימה יחסית, בצע את השלבים הבאים:

1. צור סכימה עבור הקשר המצטבר

  • זה יטופל כמו סט ישות.
  • הוא כולל את המפתחות הראשיים של הישויות המשתתפות ביחסי הבסיס.
  • זה כולל גם כל תכונות תיאוריות של קשר הבסיס.

2. צור סכימה עבור מערכת היחסים ברמה גבוהה יותר (צבירה)

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