Учебники

NHibernate — ORM

Прежде чем мы действительно сможем начать использовать NHibernate, нам необходимо понять основы, на которых он построен. NHibernate — это технология персистентности, основанная на идее реляционного сопоставления объектов или ORM.

Что такое ORM?

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

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

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

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

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

  • Описывается метод анализа информации, используемый при моделировании базы данных.

Как вы уже знаете, реляционные базы данных обеспечивают хорошие средства хранения данных, а объектно-ориентированное программирование — хороший подход к созданию сложных приложений.

NHibernate и ORM в целом наиболее актуальны для приложений с нетривиальной бизнес-логикой, моделью предметной области и своего рода базой данных.

С ORM очень легко создать слой перевода, который может легко преобразовывать объекты в реляционные данные и обратно.

Сокращение ORM также может означать моделирование роли объекта, и этот термин был изобретен до того, как сопоставление объекта / реляции стало актуальным.

Описывается метод анализа информации, используемый при моделировании базы данных.

Почему ОРМ?

ORM — это структура, которая позволяет отображать мир объектов, найденных в объектно-ориентированных языках, в строки в реляционных таблицах, найденных в реляционных базах данных.

Чтобы понять эту концепцию, давайте взглянем на следующую диаграмму.

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

У нас есть столбец для идентификатора, который уникально идентифицирует каждого сотрудника.

Столбец для имени сотрудника, еще один столбец для даты их вступления и, наконец, столбец, в котором указан возраст сотрудника.

Если мы хотим написать код для хранения нового сотрудника в таблицах, это не так просто.

На приведенной выше диаграмме вы также можете видеть, что у нас есть объект сотрудника, в котором есть поля для идентификатора, имени, даты присоединения и возраста.

Без ORM мы должны преобразовать этот объект в несколько различных операторов SQL, которые будут вставлять данные о сотрудниках в таблицу сотрудников.

Таким образом, написание кода для создания SQL-кода для выполнения описанного выше сценария не так сложно, но это немного утомительно и легко ошибиться.

Используя ORM, такой как NHibernate, мы можем объявить, как определенные классы должны отображаться в реляционные таблицы, и позволить ORM или NHibernate справиться с сложной задачей создания SQL для вставки, обновления, удаления данных запроса в нашей таблице сотрудников.

Это позволяет нам сосредоточить наш код на использовании объектов и автоматически переводить эти объекты в реляционные таблицы.

Так что на самом деле ORM избавляет нас от необходимости вручную отображать объекты в таблицы.