Коли ми працюємо з базами даних, зазвичай доводиться писати SQL-запити - вибірки, вставки, оновлення даних тощо. Але коли проєкт зростає, цих запитів стає сотні, і підтримувати їх стає важко.
Саме тут у гру вступає ORM (Object-Relational Mapping) - технологія, яка дозволяє працювати з базою даних через об’єкти мови програмування.
ORM “перекладає” дані з таблиць у базі даних у вигляді об’єктів, з якими можна працювати у коді.
Наприклад, замість того щоб писати:
SELECT * FROM users WHERE id = 1;
у Ruby on Rails ми просто робимо:
user = User.find(1)
і отримуємо об’єкт User, який має методи, властивості та поведінку, як звичайний Ruby-клас.
Переваги ORM
- Мінімум SQL - більшість запитів генерується автоматично.
- Менше помилок - ORM перевіряє типи, зв’язки, валідації.
- Швидша розробка - CRUD-операції (create, read, update, delete) пишуться у кілька рядків.
- Портативність - легко змінити СУБД (наприклад, з PostgreSQL на MySQL) без переписування запитів.
- Зручна робота зі зв’язками - has_many, belongs_to, has_one тощо.
Недоліки ORM
- Продуктивність - іноді ORM генерує “важкі” запити, які треба оптимізувати вручну.
- Чорна скринька - складно зрозуміти, що відбувається під капотом.
- Не для всього - складні SQL-запити або аналітичні вибірки краще писати вручну.
Приклади ORM
- Ruby - ActiveRecord
- Python - SQLAlchemy, Django ORM
- JavaScript - Sequelize, Prisma
- PHP - Eloquent (Laravel)
Якщо коротко. ORM - це міст між світом об’єктів і таблиць. Він дозволяє розробникам менше думати про SQL і більше - про логіку бізнесу. Але як і будь-який інструмент, ORM варто розуміти, щоб не перетворити зручність на пастку продуктивності.
Цей допис поки що не має жодних доповнень від автора/ки.