Баннер мобильный (3) Пройти тест

ORM

Глоссарий

7 августа 2024

Поделиться

Скопировано

Содержание

    ORM (Object Relational Mapping, объектно-реляционное отображение) — это технология, которая позволяет работать с базами данных так, как если бы это были объекты из языков программирования

    Обычно с базами данных работают с помощью СУБД и языка запросов SQL. У него свои принципы, и они отличаются от привычной программистам объектно-ориентированной структуры. Чтобы работать с базой было удобнее, появилось ORM — как бы прослойка между базой данных и языками программирования. С ним можно сделать объект внутри программы и записать в базу или, наоборот, получить данные из базы и работать с ними как с объектом.

    Для чего нужно ORM

    ORM призвано решить задачу мэппинга данных — сопоставления между информацией из базы и сущностями из программирования. С его помощью можно:

    • представить информацию из базы как объекты, с которыми может работать язык программирования;
    • без ошибок сопоставить поля из базы данных и свойства полученных объектов друг с другом;
    • избавиться от необходимости использовать SQL;
    • создать интерфейс, который позволит выполнять задачи CRUD — к ним относятся создание, чтение, модификация и удаление данных из базы.

    Без использования ORM работать с базами данных сложнее. Базы обычно реляционные, то есть состоят из связанных друг с другом таблиц. Но такое представление сложно перенести в язык программирования и работать с ним: языки работают не с таблицами, а с классами и объектами. Приходится постоянно переводить информацию из базы в «понятный» для языков программирования вид и наоборот. Это неудобно и порой неэффективно.

    ORM помогает обойтись без ручных трансформаций данных, снимает нагрузку с разработчика и позволяет вообще не использовать SQL, а вести работу с базами через привычные языки программирования.

    Как это работает

    Поговорим о том, что такое ORM изнутри. Если разработчик не пользуется этой технологией, он работает с базой непосредственно с помощью SQL или переводит данные из базы в «объектный» вид вручную.

    ORM преобразует данные самостоятельно. Разработчик пишет запрос на выбранном языке программирования, ORM сопоставляет свойства объекта и поля базы — и формирует запрос на SQL. В итоге разработчику вообще не нужно писать SQL-запрос и переводить данные, потому что ORM делает это всё за него.

    Фактически ORM — это тот же самый «перевод» данных из одного вида в другой. Просто автоматизированный и снимающий с программиста лишнюю нагрузку.

    Как реализуют ORM на практике

    Чтобы реализовать эту технологию, разработчики создают и поддерживают специальные библиотеки и фреймворки для языков программирования. Если кто-то хочет внедрить у себя ORM, он устанавливает нужный фреймворк и дальше работает с ним. Реализации бывают как свободные, принадлежащие сообществу, так и проприетарные — у них есть четко определенный владелец и условия использования. 

    Вот несколько примеров реализаций ORM:

    Преимущества использования ORM

    Возможность писать на любом языке. Частый язык для работы с ORM — Python. На нём же написаны многие ORM-библиотеки. Но технически можно применять и другие языки — такие, которые удобны конкретному разработчику или используются в проекте. Не нужно постоянно «переключаться» между SQL и более привычными языками. Можно просто писать запросы с ORM.

    Ускорение разработки. Разработчику не приходится писать много лишнего кода для перевода записей базы данных в сущности, понятные языку программирования, — и наоборот. Мэппинг, то есть сопоставление, происходит за счет ORM.

    Независимость от СУБД. Идея ORM — чтобы разработчику вообще не приходилось думать о базе и системе управления, он мог просто брать данные и работать с ними. Кроме того, ORM обычно поддерживает разные СУБД: MySQL, SQLite, PostgreSQL и так далее. Поэтому переходить с одной СУБД на другую довольно легко — выбранное ORM-решение может поддерживать обе системы.

    Широкие возможности. ORM реализует большинство функций, нужных разработчику при взаимодействии с базой. Кроме стандартных CRUD-задач, ORM поддерживает транзакции, миграции и другие полезные возможности.

    Недостатки ORM

    Сложная первоначальная настройка. Чаще всего недостаточно просто скачать ORM-фреймворк, чтобы он работал «из коробки». Его нужно подключить и настроить, а это дополнительная работа, время и возможные сложности.

    Неэффективность в некоторых ситуациях. Иногда писать SQL-запросы вручную оказывается эффективнее: они срабатывают быстрее и используют меньше ресурсов компьютера. Это не всегда критично — порой скорость работы программиста важнее. Но эту особенность нужно учитывать, если для программы важна эффективность.

    Меньшая прозрачность. При работе с ORM у разработчика меньше понимания, что происходит в базе на самом деле. Если он до этого не имел дела с SQL и базами данных, то в нештатной ситуации может просто запутаться из-за непонимания, как что работает. Поэтому рекомендуется всё же изучать теорию работы с базами, чтобы иметь представление, что происходит «внутри».

    Как начать работать с ORM

    Чтобы изучать ORM-фреймворки, нужно иметь представление, как работает объектно-ориентированное программирование, что такое база данных и как она связывается с программой. Переходить к этой теме стоит уже после того, как вы разберетесь в основных понятиях. Технологию обычно используют в профессиональной разработке — в учебниках по информатике вряд ли можно найти ее упоминания. 

    При изучении можно пользоваться:

    • гайдами для разработчиков по внедрению и работе с ORM;
    • официальной документацией выбранных фреймворков или библиотек;
    • курсами и обучающими материалами.

    Что касается самой установки и настройки ORM — подробные инструкции обычно есть на официальных страницах того или иного фреймворка. А синтаксис ORM-запросов зависит от выбранного языка и библиотеки.

    Поделиться

    Скопировано

    0 комментариев

    Комментарии