ORM – Object Relational Mapping

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

ORMObject Relational Mapping
מאת: ארז קלר

 
ORM הוא כינוי כללי לרכיבי תוכנה אשר ממירים ומתאמים בין מקורות תוכנה שונים ומציגים למתכנתים מודל אחיד.
משתמשים ב- ORM בשכבת המידע (DAL – Data Access Layer) המטפלת בכל הקשור למידע הנדרש לתוכנית.

במסד נתונים רילאציוני הטבלאות מקושרות ביניהם באמצעות קשרים,
בקבצי XML הנתונים הם במבנה עץ, ORM מתקשר עם כל מקורות המידע וממיר אותם למבנה אחיד שמותאם ל-OOP.

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

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

תכנון וכתיבת רכיב ORM הוא אתגר מעניין אשר, בין השאר, דורש היכרות טובה עם מספר טכנולוגיות כמו: ADO.NET , XML ובעיקר OOP.
קיימים בשוק מספר רכיבי ORM מקובלים וטובים אשר מבצעים את המיפוי בצורה אוטומטית, ביניהם ניתן למצוא את Entity Framework ואת nHibernate.

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

במערכת ה-ORM שנכתוב בדוגמה זו קיימים שלושה מרכיבים:
מקורות מידע חיצוניים – מסד נתונים חיצוני, קבצי XML, לכל אחד מהם מתאפיין בייצוג מידע במבנה שונה.
מסד הנתונים הוא רילאציוני, מוגדרות בו מספר טבלאות המקושרות ביניהם במערכת קשרים של יחיד- לרבים או רבים-לרבים.
בקבצי ה- XML המידע מיוצג במבנה עץ, אלמנט אב מכיל אלמנט בן אחד או יותר.
מחלקות מודל – מחלקות המכילות את המידע המגיע ממקורות המידע החיצוניים השונים במבנה OOP.
מחלקות המודל הם מחלקות רגילות ב-C# המהוות "מחלקות מראה" לטבלאות המוגדרות במסד הנתונים, התכונות המוגדרות בהן יהיו זהות לתכונות המוגדרות בטבלאות (או בקבצי ה- XML), בנוסף הן מממשות את הקשרים בין הטבלאות באמצעות יחסי הכלה בין אובייקטים המחליפים את היחסים בין הטבלאות או את קשרי אב-בן בקבצי XML.
ניתן להגדיר בהן מאפיינים המייצגים שדות חישוביים, לדוגמה: אם בטבלה קיים שדה המייצג תאריך לידה של אדם, במחלקה יהיה שדה מתאים ובנוסף ניתן להגדיר מאפיין הנקרא Age המחשב את הגיל.
 מחלקות מיפוי – מחלקות אשר ניגשות למקורות המידע וממירות אותו לאובייקטים ולמבנה של OOP.
מחלקות המיפוי ידעו גם לעדכן את מסד הנתונים בשינויים שהתרחשו המידע הנמצא במחלקות המודל.
מקורות המידע החיצוניים (מסד נתונים וקבצי XML) שנשתמש בהם בדוגמה הן ימוקמו בשכבה פיסית (Tier) נפרד.
מחלקות המודל ומחלקות המיפוי שנבנה הן שכבות לוגיות שישבו בשכבה פיסית שניה (מחשב שונה) . 




 



 
 



כל הזכויות שמורות למחבר ©