تبلیغات

ORM چیست؟! و چه کاربردی دارد؟!

ORM

ORM یا Object-Relational Mapping (نگاشت رابطه به شی/ او آر ام)، در علوم کامپیوتری، یک تکنیک برنامه‌نویسی برای کار با داده‌های ناسازگار مثل خواندن و نوشتن در دیتابیس، با استفاده از مدل شی گرایی می‌باشد. و در واقع ORM، روشی مدرن برای مدیریت اطلاعات است.

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

در روش ساده یا به عبارتی سنتی، برای دسترسی خواندن و نوشتن به داده‌های دیتابیس‌هایی مثل My SQL یا Sqlite و …، می‌بایست از دستورات SQL در میان کد خود استفاده کنیم؛ مثلا برای خواندن اطلاعات از یک جدول با نام notes، در حالت ساده به صورت زیر کوئری SQL خود را می‌نویسیم:

اما نوشتن کوئری‌ها یا دستورات دیتابیسی مثل SQL در میان کدهای زبان برنامه‌نویسی، مشکلاتی را به وجود می‌آوردکه به مهم‌ترین آن‌ها اشاره می‌کنیم:

  • طاقت فرسا بودن نوشتن کوئری‌های تخصصی و پیچیدگی زیاد آن‌ها
  • نیاز به تخصص لازم جهت بهینه سازی کوئری‌های سنگین
  • نیاز به دانش کافی در مورد دستورات SQL
  • تفاوت ساختار SQL در پایگاه داده‌های مختلفی مثل MySQL، SQL Server و …
  • نیاز به مدیریت دقیق و بهینه شده
  • ناخوانایی کدهای نوشته با پیچیده شدن دستورات

اما چه می‌شود اگر به صورت کلاس و آبجکت با دیتابیس در ارتباط باشیم و برای مثال هر جدول (موجودیت) در دیتابیس، به عنوان یک کلاس در زبان‌برنامه‌نویسی مورد استفاده‌ی ما تعریف شود تا از دستورات SQL و … خلاص شویم؟!

بنابراین برای حل این معضلات، تعریف جدیدی به نام ORM شکل گرفته است؛ به این صورت که این شیوه تلاش می‌کند تا با تبدیل داده‌های پایگاه داده‌ها به مدل‌های شی گرایی و آبجکت‌ها و بالعکس، کار را برایمان ساده‌تر و بهینه‌تر کند. و شما دیگر درگیر دستورات SQL نخواهید شد و به سادگی می‌‎توانید با استفاده از کلاس‌ها و مدل‌های ایجاد شده، با پایگاه‌داده‌ی خود تعامل داشته باشید.

برای مثال، دستور زیر در فریم ورک لاراول PHP، همان کد SQL نوشته شده در بالا می‌باشد:

همانطور که می‌‎بینید، کلاسی به نام User تعریف کرده‌ایم که متد all آن، تمامی رکوردهای داخل آن را برای ما برمیگرداند. و متغیر users در نهایت آرایه‌ای از آبجکت‌های User خواهد بود.

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

آیا همیشه می‌توان از ORM ها استفاده کرد؟

گرچه استفاده از ORM ها مزایای زیادی را به همراه خود دارد، اما این کار همیشه مقرون به صرفه نبوده و یا اینکه اصلا امکان‌پذیر نیست! چرا که در هنگام ایجاد ارتباط‌های بسیار پیچیده میان موجودیت‌های مختلف پایگاه‌داده‌ها، یا در هنگام مواجهه با حجم عظیمی از داده‌ها (کلان داده یا Big Data)، ممکن است استفاده از ORM گزینه‌ی مناسبی از نظر سرعت، بهنیه بودن و … نباشد.

تبلیغات
0
کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک گذاری اطلاعات در هر زمینه‌ای / برنامه‌نویس

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه