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

בהנדסת תוכנה מודל ישויות-קשרים (באנגלית: Entity–relationship model) הוא דרך להציג מידע. הצגה כזאת מאפשרת תכנון מלמעלה-למטה של מערכות מסדי נתונים יחסיות. המודל אינו מתחשב בארכיטקטורת המחשב עליו יורץ מסד הנתונים אלא רק במבנה הלוגי הרצוי של מסד הנתונים באופן שיאפשר נוחות ויעילות בגישה למידע.

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

עקרונות 

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

ישויות

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

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

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

בהצגה גרפית נהוג לסמן ישות באמצעות מלבן ואת מאפייניה באמצעות אליפסות המחוברים אליה.

קשרים

קשר הוא חיבור בין שתי ישויות או יותר.

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

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

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

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

לקריאה נוספת
רז הייפרמן, בסיסי נתונים טבלאיים ושפת SQL - עקרונות ועיצוב, הוצאת הוד-עמי, 2000
The Relational Model for Database Management: Version 2, Codd E. F., Addison-Wesley, 1990
Chen P.P., The entity-relationship model: toward a unified view of data, ACM Transactions on Database Systems, 1:1, pp. 9-36, 1966
 Abraham Silberschatz, Henry F. Korth & S.Sudarshan, Database System Concepts, McGraw-HILL International Edition, Fifth Edition(2006).

קישורים חיצוניים

מסדי נתונים