شئ گرایی و مدل سازی شئ گرا
مدل های داده ای که اغلب بر اساس سیستم های مدیریت پایگاه داده امروزی پایه ریزی شده اند نشان داده اند که در حوزه ی سیستم های اطلاعات جغرافیایی چندان کارآمد نیستند. در مقابل مدل های شئ گرا ابزارهای مفیدی برای ایجاد ساختارهای داده ارائه کرده اند که علاوه بر تقویت ابزارهای موجود برخی از کمبودهای ذاتی مدل هایی نظیر مدل رابطه ای را جبران کرده اند.
ایده ی اصلی شئ گرایی مشاهده ای است که طی آن دنیای واقعی متشکل از اشیاء درک می شود که این اشیاء به شکل های گوناگون یا یکدیگر تعامل دارند. این تعامل میتواند به شکل تعاملات فیزیکی و یا حتی تعاملات دستوری و پیام داده شده به شئ باشد. در حقیقت در نگاه شئ گرایی، ما هر سیستم را به صورت مجموعه ای از بخش های مجزا از هم در نظر می گیریم که هر بخش ویژگی ها و رفتار خاصی دارد و فرآیند ویژهای را انجام می دهد و در عین حال این اجزای مستقل، امکان ترکیب و تعامل با یکدیگر را نیز دارند.
در بحث مدل سازی شئ گرا هدف مدل سازی ساختار پدیده های موجود در دنیای واقعی به همراه رفتارها و عکس العمل های این پدیده ها است. در چنین مدل سازی قرار است هر پدیده به صورت یک شئ یا مجموعه ای از اشیاء با ویژگی و صفات مخصوص به خود درک شوند؛ به زبان ساده تر یعنی همه چیز از شئ شروع می شود. در تعریف شئ باید این چنین بگوییم که؛ هر موجودیت مستقل با هر ساختار و پیچیدگی ای دقیقاً به وسیله ی یک شئ مشخص می شود. هیچ تجزیه ای روی این شئ صورت نمی گیرد و به قسمت های کوچکتر نیز تقسیم نمی شود. شئ در دامنه مسئله نقش تعریف شده ای دارد و دارای حالت، رفتار و شناسه خاص خودش است.
شئ می تواند یک ساختار، نقش، مکان و … باشد؛ شئ داده و رفتار را در خود کپسوله می کند و از دسترسی اشیاء دیگر به داده های خود جلوگیری می کند و همچنین تاثیر تغییرات محیطی بر این داده ها را کاهش می دهد، و تنها راه دسترسی به این داده ها استفاده از اعمال یا سرویس های خود شئ است.
با تعریف کردن اشیاء موجود در سیستم از نوع یک کلاس خاص، این اشیاء همه صفات، اعمال و روابط کلاس مربوطه را به ارث می برند. یک کلاس مافوق شامل ویژگی های مشترک (صفات و اعمال) جمعی از کلاس هاست و زیرکلاس یک حالت خاص از کلاس مافوق است که به آن تخصیص نیز گفته می شود. این تعاریف از وجود یک سلسله مراتب خبر می دهد که در آن کلاس های تخصیص (زیرکلاس) وارث کلاس های مافوق هستند. ممکن است که هر کدام از کلاس های تخصیص دارای یک سری صفات و اعمال اختصاصی اضافی دیگر نیز باشند.
مکانیزم های انتزاعی شئ گرا
مدل سازی شئ گرا بر اساس ۴ مفهوم انتزاعی اساسی شکل می گیرد:
- کلاس بندی [۱]: قرار دادن چندین شئ در یک کلاس مشترک کلاسبندی نام دارد. هر شئ نمونه ای از یک کلاس است و حداقل در یک کلاس قرار گرفته است. تمام اشیای یک کلاس دارای ویژگی ها و رفتارهای مشابه هستند. داده های شئ تحت عنوان صفات در کلاس شناخته می شوند و مقادیر این صفات است که شئ را از دیگر اشیای همنوع متمایز می نمایند.
- تعمیم [۲]: اگر بتوانیم چندین کلاس از اشیاء را به یک کلاس کلی تر، عمومیتر گروه بندی کنیم، تعمیم انجام داده ایم. واژه کلاس مافوق به چنین کلاس ایجاد شده ای اختصاص داده می شود و کلاس های گروه شده به عنوان زیرکلاس یک کلاس مافوق در نظر گرفته می شوند.
- پیوند[۳]: یک پیوند بین دو یا چند شئ مستقل رابطه برقرار میکند و رابطه ی بین این اشیاء به عنوان یک مجموعه شئ سطح بالا در نظر گرفته می شود.
- تجمع [۴]: مکانیزمی است که اشیاء مرکب؛ یعنی اشیایی که از چند شئ دیگر تشکیل یافته است را مدل می کند.
وراثت
با نگاهی کلی تر به موضوع سلسله مراتبی درمی یابیم که ویژگی ها و متدهای زیرکلاسها به ساختار و ویژگی کلاس های مافوق بستگی دارند. وراثت متدی است برای تعیین یک کلاس بر حسب یک یا چند کلاس دیگر و یا کلاس های عمومی تر. ویژگی هایی که در یک کلاس و زیرکلاس مشترک هستند یک بار تعریف می گردند و به تمامی اشیای زیرکلاسها ارث می رسند. زیرکلاس ممکن است ویژگی داشته باشد که آن را با کلاس مافوق به اشتراک نگذاشته است اما یک زیرکلاس تمام خصوصیات کلاس مافوق را دارد. اعمال کلاس مافوق با اشیای کلاس مافوق و تمام زیرکلاس هایش سازگار است. هر عمل روی یک شئ از کلاس مافوق روی زیرکلاس هایش قابل اجرا است. وراثت انتقالی است یعنی ویژگی ها از کلاس های مافوق به زیرکلاسها می رسند. این مطلب بسیار مهم و کاربردی است چرا که باعث کاهش افزونگی داده می شود و یکپارچگی را حفظ می کند. ویژگی ها یک بار تعریف می گردند و بعد از انتقال، در تمامی روابط مورد نیاز حضور پیدا می کنند.
تک وراثتی و چند وراثتی
تک وراثتی همانند یک سلسله مراتبی کامل است که صفات و رفتارها از بالا به پایین انتقال می یابند و به ارث می رسند. اما اغلب، ساختارهای تک وراثتی در مدل کردن دنیای واقعی به تنهایی کارآمد نیستند و به ساختارهایی نیاز خواهیم داشت که به بیش از یک کلاس مافوق تعلق دارند. در اینجا مفهوم چند وراثتی مطرح می شود که امکان عبور ویژگی از یک کلاس با سطح بالاتر را به کلاس های دیگر می دهد. در ساده ترین شکل چند وراثتی، یک زیرکلاس ویژگی ها را از دو کلاس مافوق مجزا به ارث می برد. در سیستم اطلاعات جغرافیایی نیز ما متناسب با اهداف و نوع سیستم به تعریف کلاس ها، رابطه ها و چگونگی وراثت آنها می پردازیم.
[۱] Classification
[۲] Generalization
[۳] Association
[۴] Aggregation
[۵] Inheritance