دسته بندی : پایگاه داده - database

نوشته شده در 1396/03/22

در علوم کامپیوتر نگاشت شی-رابطه‌ای یا Object-relational mapping (ORM) یک روش برنامه‌نویسی برای تبدیل داده‌ها سیستم‌های ناسازگار نوع در زبان‌های برنامه‌نویسی شی‌گرا است. این روش باعث ایجاد یک پایگاه داده شی مجازی می‌شود که می‌تواند در زبان برنامه‌نویسی استفاده شود. برای انجام نگاشت شی-رابطه‌ای هم پکیج‌های تجاری و هم پکیج‌های رایگان وجود دارد، هرچند برخی از برنامه‌نویسان ساخت ابزار ORM مخصوص خود را انتخاب می‌کنند.

اساساً ORM اشیایی را (در برنامه‌نویسی شی‌گرا) تولید می‌کند که به طور مجازی به جداول پایگاه داده نگاشت می‌شود. سپس شما به عنوان برنامه‌نویس، از این اشیاء برای ارتباط با پایگاه داده استفاده خواهید کرد. بنابراین ایده اصلی بی‌نیازکردن برنامه‌نویس از نوشتن کدهای SQL بهینه است. اشیای تولیدشده ORM این کار را برای شما انجام خواهند داد.

Object-relational mapping

در زیر قطعه کدی به زبان C# برای تحویل یک کوئری با استفاده از SQL به یک موتور پایگاه داده مشاهده می‌کنید:

 String sql = "SELECT ... FROM persons WHERE id = 10"; DbCommand cmd = new DbCommand(connection, sql); Result res = cmd.Execute(); String name = res[0]["FIRST_NAME"];

در مقابل، کد زیر استفاده از یک ORM API را نشان می‌دهد که اجازه نوشتن کد با استفاده از ویژگی‌های زبان را می‌دهد:

 Person p = repository.GetPerson(10); String name = p.getFirstName();

مورد بالا استفاده از یک شی که نشان‌دهنده مخزن ذخیره‌سازی است و استفاده از متدهای آن شی را نشان می‌دهد. همان‌طور که در زیر می‌بینید، برخی از frameworkها ممکن است کدها را به صورت متدهای static فراهم کنند و با این حال متدهای دیگر ممکن است به هیچ وجه یک سیستم شی‌گرا را پیاده‌سازی نکنند.

 Person p = Person.Get(10);

معمولاً framework قابلیت‌هایی را برای کوئری فراهم می‌کند که اجازه می‌دهد تا زیرمجموعه‌ای از پایگاه داده قابل دسترسی و قابل تغییر باشد. کد زیر افرادی را که ID آن‌ها ۱۰ است، از پایگاه داده پرس‌وجو می‌کند.

 Person p = Person.Get(Person.Properties.Id == 10);

مقایسه با روش‌های معمولی (سنتی) دسترسی به داده‌ها

در مقایسه با روش‌های معمولی تبادل بین یک زبان شی‌گرا و یک پایگاه داده رابطه‌ای، ORM اغلب مقدار کدی که نیاز به نوشتن است را کاهش می‌دهد.

معایب ابزارهای ORM به طور کلی از سطح بالای انتزاع ناشی می‌شود که آن‌چه در واقع در کد پیاده‌سازی اتفاق می‌افتد را پنهان می‌کند. همچنین از وابستگی زیاد به نرم‌افزار ORM به عنوان یک عامل مهم در تولید پایگاه داده‌هایی با طراحی ضعیف، یاد شده است.

منابع:

killerphp.com

en.wikipedia.org

interviewquestionjava.blogspot.de

نظرات 0

ارسال نظر