Статьи

Технология ORM

В предыдущих постах мы рассказывали о парадигме ООП и работе с SQL базами данных (ознакомьтесь, чтобы лучше понимать контекст), а сегодня рассмотрим тему, связывающую две вышеупомянутых. ORM — технология, которая позволяет вашим ООП приложениям видеть базу данных как объектный набор, а не реляционную базу данных (работать с сущностями базы данных и связями как с объектами, а не как с таблицами). Технология ORM позволяет создавать, обновлять, читать и удалять данные из базы данных напрямую из объектно-ориентированного языка программирования. Это облегчает работу с базами данных, поскольку вам не требуется использовать SQL (или иные) запросы к базам данных. Вместо этого они могут использовать более удобные объектно-ориентированные методы и взаимодействовать с моделями. ORM также помогает избегать ошибок, которые могут возникнуть при ручном написании SQL-запросов. Например, ORM автоматически экранирует входные данные, что помогает предотвратить атаки SQL-инъекции.

Вот некоторые основные принципы ORM:

  • Абстракция: ORM предоставляет высокоуровневую абстракцию базы данных, что позволяет программистам не задумываться о конкретных деталях SQL СУБД и сосредоточиться на бизнес-логике.

  • Независимость от базы данных: ORM часто предоставляет способ взаимодействовать с различными базами данных без необходимости изменять код приложения. Это достигается за счет использования общего набора команд, которые затем переводятся в конкретный SQL автоматически для выбранной базы данных.

  • Объектная модель: Основная идея ORM состоит в том, чтобы сделать модели данных приложения ближе к его объектно-ориентированной структуре. Это означает, что строки в таблицах базы данных представлены как объекты в программном коде.

  • Доступ к данным: С помощью ORM можно легко выполнять CRUD-операции с объектами в вашем коде, а система ORM будет автоматически преобразовывать эти операции в соответствующие SQL-запросы.

Несмотря на все преимущества, ORM также имеет и недостатки. Одним из наиболее часто упоминаемых является «проблема импедансного сопротивления», которая возникает из-за различий между структурой объектно-ориентированных систем и структурой реляционных баз данных. Также использование ORM может быть вредно для производительности, когда вам требуется вытаскивать лишь определенные поля объектов с большим количеством связанных сущностей, и в этом случае приходится писать raw SQL. Как и любая другая технология, ORM накладывает свои ограничения, но предоставляет массу удобных функций. Тем не менее на сегодняшний день это самый распространенный стандарт работы ООП приложений с базами данных.
Основы программирования