اصطلاحاتی در Entity Framework

قبل شروع مبحث Entityframework بهتر است ابتدا با معنای دقیق اصطلاحاتی که به کار می رود آشنا شوید که به درک عمیق مباحث کمک زیادی می کند.

ORM چیست؟

ORM یا Obejct Relational Mapper به مجموعه ای تکنیک های برنامه نویسی برای تبدیل داده ها بین سیستم های غیر شی گرا با محیط های برنامه نویسی شی گراست. به عبارت دیگر ، برای تطبیق بانک های اطلاعاتی رابطه ای (مثل SQL Server, MySQL و …) با زبان های برنامه نویسی شی گرا (مثل سی شارپ، جاوا و …) و استفاده از امکاناتی همچون Inheritance از ORM ها استفاده می کنیم. در واقع با استفاده از ORM ها و استفاده از ابزارهایی که ORM در اختیار شما قرار می دهد، شما ساختار رابطه ای بانک اطلاعاتی خود را به ساختار شی گرا برنامه نویسی خود متصل می نمایید و به این ترتیب پیچیدگی های مربوط به ذخیره سازی ، بازیابی و … در بانک اطلاعاتی را به عهده ORM می سپارید.

در پیاده سازی سیستم های بزرگ نرم افزاری معمولا بخشی از انرژی و وقت تیم به پیاده سازی لایه داده سیستم (DAL) که وظیفه اتصال به بانک اطلاعاتی و ذخیره و بازیابی داده از آن را دارد صرف می شود که با استفاده از یک ORM بخش قابل توجهی از این انرژی را می توان صرف صرفه جویی نمود.

Framework چیست؟

فریم ورک را می توان با یک اسکلت مقایسه کرد که احتیاج به گوشت دارد تا به آن بچسبد.این گوشت به صورت برنامه نویسی و توسط نرم افزار های مخصوصی به قسمت های مختلف اسکلت متصل می شود، بنابراین حفره ها و نقاط با استفاده از برنامه نویسی به هم متصل می شوند . در برنامه نویسی فریم ورک به برنامه نویسان اجازه می دهد بر روی وظایف واقعی خود تمرکز کنند و به اصطلاح چرخ را دوباره اختراع نکنند! . فریم ورک ها معمولا شامل مجموعه ای از توابع و کلاس های از پیش تعریف شده هستند و برنامه نویس نیاز نیست از محتویات آن با خبر باشد.

Platform چیست؟

پلتفرم ابزار های نرم افزاری و سخت افزاری که برنامه برای اجرا شدن به آن نیاز دارد را ارائه می دهد.که مستقل از فریم ورک است. برای مثال دات نت برای زبان سی شارپ فریم ورک است نه پلتفرم.

Entity به چه معناست؟

کلمه ی Entity را “موجودیت” ترجمه کرده اند که معنای اشتباهی است.به عنوان مثال در یک سیستم آموزشی صندلی یک موجودیت است ولی entity نیست.    هر چیزی که ما برای آن query داشته باشیم یک entity محسوب می شود.مثلا اگر برای صندلی ها query داشته باشیم پس تعداد صندلی ها و صندلی ها برای ما مهم است پس صندلی یک entity محسوب می شود.

توجه داشته باشید که ذخیره کردن تمام attribute های یک entity را ذخیره نمی کنیم.بنابراین attribute هایی برای ما مهم هستند که برای آن ها query داشته باشیم مثلا دانشجو که یک entity در سیستم آموزشی محسوب می شود ولی مثلا رنگ مو و قد و… برای ما مهم نیست. در اینجا ما از data هم صحبت می کنیم،حال data به چه معناست؟

پشت هر data یک entity وجود دارد به این معنی که وقتی در مورد یک data صحبت میکنیم باید اطلاعاتی در مورد یک entity در اختیار ما قرار دهد.ولی data یک logical entity است یعنی چی؟ مثلا کارگر شهرداری در شهر یک entity محسوب می شود و مثلا اطلاعات مربوط به حقوق و … هم یک data محسوب می شود ولی در سیستم آموزشی با اینکه یک entity است ولی یک logical entity محسوب نمی شود. تعریف علمی Data عبارت است از:

Data :a binary computer representation of stored logical entities

در این تعریف چند قسمت مشاهده می شود :