orm چیست

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/09/10
  • تعداد بازدید: 13

ORM یا Object Relational Mapping روشی است که به شما اجازه می‌دهد با دیتابیس به صورت شی‌ءگرایانه کار کنید. به جای نوشتن مستقیم کوئری‌های SQL، شما با کلاس‌ها، آبجکت‌ها و متدها کار می‌کنید و ORM خودش آن‌ها را به دستورات SQL تبدیل می‌کند.

در SQLAlchemy، ORM لایه‌ای بالاتر نسبت به Core است و تمرکز آن روی مدل‌سازی داده‌ها با استفاده از کلاس‌های Python است.

مزایای ORM:

  • کاهش نیاز به نوشتن کوئری‌های خام SQL
  • مدیریت ساده‌تر مدل‌ها و روابط
  • قابلیت استفاده مجدد از مدل‌ها در کل پروژه
  • ایمنی بیشتر در برابر خطاهای سینتکسی SQL
  • ادغام راحت با ساختارهای شی‌ءگرای پایتون

معایب ORM:

  • سرعت کمتر نسبت به SQL خام در برخی عملیات‌های سنگین
  • مخفی کردن منطق SQL که ممکن است برای بهینه‌سازی لازم باشد
  • نیاز به یادگیری قواعد ORM علاوه بر SQL

تفاوت ORM با ساختارهای اصلی برای Query (مثل SQLAlchemy Core یا SQL خام):

ویژگی ORM SQL خام / SQLAlchemy Core
نحوه کار کار با کلاس‌ها و آبجکت‌ها نوشتن مستقیم کوئری یا استفاده از ساختارهای صریح SQL
سطح کنترل کنترل کمتر روی دیتابیس کنترل کامل روی کوئری‌ها و عملیات
مناسب برای پروژه‌های بزرگ با نیاز به مدل‌سازی و نگهداری راحت کوئری‌های بسیار پیچیده یا عملکرد محور
سرعت معمولاً کندتر سریع‌تر و بهینه‌تر
یادگیری نیاز به یادگیری الگوهای ORM آشنایی با SQL کافی است

نمونه مقایسه:

ساخت یک ردیف جدید با ORM:


user = User(name="Ali", age=28)
session.add(user)
session.commit()

همان عملیات با SQL خام:


INSERT INTO users (name, age) VALUES ('Ali', 28);

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد
0/600

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.