Перейти к навигации П" />

Объектно-реляционное сопоставление

(перенаправлено от)

Перейти к навигации П
редактировать

Обзор

  • Специфичные для реализации детали драйверов хранения обычно заключены в API на используемом языке программирования, раскрывая методы для взаимодействия с носителем информации более простым способом и в соответствии с парадигмами окружающего кода.
  • Ниже приводится простой пример, написанный на коде C #
  • , для выполнения запроса, написанного на SQL, с использованием механизма базы данных..

    var sql = "ВЫБРАТЬ идентификатор, имя, фамилию, телефон, дату рождения, пол, возраст ОТ лиц, ГДЕ id = 10"; var result = context.Persons.FromSqlRaw (sql).ToList (); var name = result [0] ["first_name"]; - Object–relational mapping - ВикипедияДобро пожаловать в Википедию. Сейчас у нас 6749495 страниц.

    Объектно-реляционное сопоставление

    (перенаправлено от) Перейти к навигацииПерейти к поиску

  • Объектно-реляционное сопоставление (ORM , O / RM и инструмент отображения O / R ) в
  • информатике
  • - это метод программированиядля преобразования данных между несовместимыми системами типов
    .с использованием объектно-ориентированныхязыков программирования. По сути, это создает "виртуальную объектную базу данных", которую можно использовать изнутри языка программирования. Доступны как бесплатные, так и коммерческие пакеты, которые выполняют объектно-реляционное сопоставление, хотя некоторые программисты предпочитают создавать свои собственные инструменты ORM.
  • В объектно-ориентированном программировании
  • , задачи управления даннымивоздействуют на

    объекты, которые почти всегда не- скалярныеценности. Например, запись в адресной книге, которая представляет одного человека с нулем или более телефонными номерами и нулем или более адресами. Это можно было бы смоделировать в объектно-ориентированной реализации с помощью «объекта Person

    » с атрибутами / полямидля хранения каждого элемента данных, который содержит запись: имя человека, список телефонов. номера и список адресов. Список телефонных номеров сам будет содержать «объекты PhoneNumber» и так далее. Запись адресной книги рассматривается языком программирования как единый объект (например, на нее может ссылаться одна переменная, содержащая указатель на объект). С объектом могут быть связаны различные методы, такие как метод возврата предпочтительного номера телефона, домашнего адреса и т. Д.
  • Однако многие популярные продукты баз данных, такие как SQL
  • системы управления базами данных(СУБД), могут хранить и управлять только скалярнымизначениями, такими как целые числа и строки, организованные в таблицах. Программист должен либо преобразовать значения объекта в группы более простых значений для хранения в базе данных (и преобразовать их обратно при извлечении), либо использовать только простые скалярные значения в программе. Объектно-реляционное сопоставление реализует первый подход.
  • Суть проблемы заключается в переводе логического представления объектов в атомизированную форму, которая может храниться в базе данных, сохраняя при этом свойства объектов и их отношения, чтобы их можно было перезагрузить как объекты при необходимости. Если эта функция хранения и извлечения реализована, объекты называются
  • В отличие от этого, нижеследующее использует API задания ORM, позволяя писать код, который естественным образом использует возможности языка..

    var person = repository.GetPerson (10); var firstName = person.GetFirstName ();В приведенном выше случае используется объект, представляющий репозиторий хранилища и методы этого объекта. Другие платформы могут предоставлять код в виде статических методов, как показано ниже, а другие методы могут вообще не реализовывать объектно-ориентированную систему. Часто выбор парадигмы делается таким образом, чтобы ORM лучше всего соответствовал принципам проектирования окружающего языка..

    var person = Person.Get (10);Обычно платформа предоставляет некоторые функции фильтрации и запросов, позволяя получать доступ и изменять подмножества базы хранения. Приведенный ниже код запрашивает людей в базе данных, значение идентификатора которых равно «10»..

    var person = Person.Get (Person.Properties.Id == 10);

    Сравнение с традиционными методами доступа к данным

  • По сравнению с традиционными методами обмена между объектно-ориентированным языком и реляционной базой данных ORM часто сокращает объем кода, который необходимо написать.
  • Недостатки инструментов ORM обычно проистекают из высокого уровняабстракции
  • , скрывающей то, что на самом деле происходит в коде реализации. Кроме того, сильная зависимость от программного обеспечения ORM была названа основным фактором создания плохо спроектированных баз данных. Объектно-ориентированные базы данных
  • Другой подход - использовать объектно-ориентированное управление базами данных. системные
  • (OODBMS) или документно-ориентированные базы данных, такие как собственные XML-базы данных, которые обеспечивают большую гибкость в моделировании данных. OODBMS - это базы данных, разработанные специально для работы с объектно-ориентированными значениями. Использование OODBMS устраняет необходимость преобразования данных в форму SQL и обратно, поскольку данные хранятся в исходном объектном представлении, а отношения представляются напрямую, вместо того, чтобы требовать объединить таблицы/ операции. Эквиваленты ORM для документно-ориентированных баз данныхназываются преобразователями объект-документ (ODM).
  • Документно-ориентированные базы данных также не позволяют пользователю «разрезать» объекты на строки таблицы. Многие из этих систем также поддерживают язык запросов XQuery
  • для получения наборов данных.
  • Объектно-ориентированные базы данных обычно используются в сложных, нишевых приложениях. Одним из аргументов против использования OODBMS является то, что она не может выполнять специальные, независимые от приложений запросы. По этой причине многие программисты чувствуют себя более комфортно с системой отображения объект-SQL, хотя большинство объектно-ориентированных баз данных способны обрабатывать SQL-запросы в ограниченной степени. Другие ООСУБД обеспечивают репликацию в базы данных SQL как средство удовлетворения потребности в специальных запросах, сохраняя при этом хорошо известные шаблоны запросов. Проблемы
  • При рассмотрении того, как чтобы сопоставить объектную систему с реляционной базой данных. Эти трудности упоминаются как несоответствие объектно-реляционного импеданса

    Альтернативой реализации ORM является использование родных процедурных языков, предоставляемых каждой крупной базой данных. Их можно вызывать из клиента с помощью операторов SQL. Шаблон проектирования Объект доступа к данным
  • (DAO) используется для абстрагирования этих операторов и предлагает легкий объектно-ориентированный интерфейс для остальной части приложения. См. Также
  • Список объектов -программное обеспечение реляционного сопоставления
  • Сравнение программного обеспечения объектно-реляционного сопоставления
  • AutoFetch
  • - автоматическая настройка запросов

    Общая архитектура брокера объектных запросов(CORBA)

    База данных объектов
    Entity Framework

    Последняя правка сделана 2021-06-01 07:24:01
    Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
    Обратная связь: support@alphapedia.ru
    Соглашение
    О проекте