Из Википедии, бесплатной энциклопедии
  (Перенаправлено из объектно-реляционной базы данных )
Перейти к навигации Перейти к поиску

Объектно -реляционная база данных ( ORD ) или система управления объектно-реляционной базой данных ( ORDBMS ) - это система управления базой данных (СУБД), аналогичная реляционной базе данных , но с объектно-ориентированной моделью базы данных : объекты, классы и наследование напрямую связаны поддерживается в схемах баз данных и на языке запросов . Кроме того, как и в случае с чисто реляционными системами, он поддерживает расширение модели данных с помощью настраиваемых типов данных и методов .

Пример объектно-ориентированной модели базы данных [1]

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

Обзор [ править ]

Основная потребность в объектно-реляционной базе данных возникает из-за того, что и реляционная, и объектная база данных имеют свои индивидуальные преимущества и недостатки. Изоморфизм системы реляционных баз данных с математическим соотношением позволяет использовать многие полезные методы и теоремы из теории множеств. Но эти типы баз данных не оптимальны для определенных типов приложений. Объектно-ориентированная модель базы данных позволяет использовать такие контейнеры, как наборы и списки, произвольные пользовательские типы данных, а также вложенные объекты. Это обеспечивает общность между системами типов приложений и системами типов баз данных, что устраняет любую проблему несоответствия импеданса. Но объектные базы данных, в отличие от реляционных, не предоставляют математической основы для их глубокого анализа. [2] [3]

Основная цель объектно-реляционной базы данных - преодолеть разрыв между реляционными базами данных и методами объектно-ориентированного моделирования, используемыми в таких языках программирования, как Java , C ++ , Visual Basic .NET или C # . Однако более популярной альтернативой для достижения такого моста является использование стандартных систем реляционных баз данных с некоторой формой программного обеспечения объектно-реляционного сопоставления (ORM). В то время как традиционные СУБД или продукты SQL-DBMS, ориентированные на эффективное управление данными, полученными из ограниченного набора типов данных (определенных соответствующими языковыми стандартами), объектно-реляционная СУБД позволяет разработчикам программного обеспечения интегрировать свои собственные типы и методы, которые к ним применяются в СУБД.

ORDBMS (например, ODBMS или OODBMS ) интегрирована с объектно-ориентированным языком программирования . Характерные свойства ORDBMS: 1) сложные данные, 2) наследование типов и 3) поведение объекта. Создание сложных данных в большинстве СУБД SQL основано на предварительном определении схемы через определяемый пользователем тип (UDT). Иерархия в структурированных сложных данных предлагает дополнительное свойство - наследование типов . То есть структурированный тип может иметь подтипы, которые повторно используют все его атрибуты и содержат дополнительные атрибуты, специфичные для этого подтипа. Еще одно преимущество - поведение объекта., связано с доступом к программным объектам. Такие программные объекты должны быть сохраняемыми и переносными для обработки базы данных, поэтому они обычно называются постоянными объектами . Внутри базы данных все отношения с постоянным программным объектом являются отношениями с его идентификатором объекта (OID) . Все эти моменты могут быть решены в соответствующей реляционной системе, хотя стандарт SQL и его реализации налагают произвольные ограничения и дополнительную сложность [4] [ требуется страница ]

В объектно-ориентированном программировании (ООП) поведение объекта описывается с помощью методов (объектных функций). Методы, обозначаемые одним именем, различаются по типу своих параметров и типу объектов, к которым они прикреплены ( сигнатура метода ). В языках ООП это называется принципом полиморфизма , который кратко определяется как «один интерфейс, множество реализаций». Другие принципы ООП, наследование и инкапсуляция , связаны как с методами, так и с атрибутами. Наследование методов включено в наследование типов. Инкапсуляция в ООП является степень видимости объявлена, например, через public, privateи protected модификаторы доступа .

История [ править ]

Системы управления объектно-реляционными базами данных выросли из исследований, проведенных в начале 1990-х годов. Это исследование расширило существующие концепции реляционных баз данных, добавив концепции объектов . Исследователи стремились сохранить декларативный язык запросов, основанный на исчислении предикатов, в качестве центрального компонента архитектуры. Вероятно, самый известный исследовательский проект, Postgres (Калифорнийский университет в Беркли), породил два продукта, восходящих к этому исследованию: Illustra и PostgreSQL .

В середине 1990-х появились первые коммерческие продукты. К ним относятся Illustra [5] (Illustra Information Systems, приобретенная Informix Software , которая, в свою очередь, была приобретена IBM ), Omniscience (Omniscience Corporation, приобретенная Oracle Corporation и ставшая первоначальным Oracle Lite) и UniSQL (UniSQL, Inc., приобретена KCOMS ). Украинский разработчик Руслан Засухин, основатель Paradigma Software, Inc. , разработал и поставил первую версию базы данных Valentina в середине 1990-х годов в виде C ++ SDK.. К следующему десятилетию PostgreSQL превратилась в коммерчески жизнеспособную базу данных и стала основой для нескольких текущих продуктов, поддерживающих ее функции ORDBMS.

Специалисты по информатике стали называть эти продукты «системами управления объектно-реляционными базами данных» или ORDBMS. [6]

Многие идеи ранних попыток создания объектно-реляционных баз данных во многом вошли в SQL: 1999 через структурированные типы . Фактически, любой продукт, который соответствует объектно-ориентированным аспектам SQL: 1999, может быть описан как продукт для управления объектно-реляционными базами данных. Например, IBM DB2 , база данных Oracle и Microsoft SQL Server заявляют о поддержке этой технологии и делают это с разной степенью успеха.

Сравнение с СУБД [ править ]

РСУБД обычно может включать в себя такие операторы SQL :

 CREATE  TABLE  Customers  (  Id  CHAR ( 12 )  NOT  NULL  PRIMARY  KEY ,  фамилия  VARCHAR ( 32 )  NOT  NULL ,  имя  VARCHAR ( 32 )  NOT  NULL ,  DOB  DATE  NOT  NULL  # DOB: Дата рождения  );  ВЫБЕРИТЕ  InitCap ( Фамилия )  ||  ','  ||  InitCap ( FirstName )  ОТ  Заказчиков ГДЕ  Месяц ( DOB )  =  Месяц ( getdate ())  И  День ( DOB )  =  День ( getdate ())

Большинство современных баз данных SQL позволяют создавать пользовательские функции , которые позволят запросу выглядеть как:

 ВЫБРАТЬ  Официальный ( Id )  ОТ  клиентов,  ГДЕ  День рождения ( DOB )  =  Сегодня ()

В объектно-реляционной базе данных можно увидеть что-то вроде этого с определяемыми пользователем типами данных и выражениями, такими как BirthDay():

 CREATE  TABLE  клиентов  (  Id  CUST_ID  NOT  NULL  PRIMARY  KEY ,  имя  PersonName  NOT  NULL ,  DOB  DATE  NOT  NULL  );  ВЫБОР  Формальная (  C . Id  )  FROM  Клиенты  С  ГДЕ  День рождения  (  С . DOB  )  =  СЕГОДНЯ ;

Объектно-реляционная модель может предложить еще одно преимущество в том, что база данных может использовать отношения между данными для простого сбора связанных записей. В приложении адресной книги к приведенным выше таблицам будет добавлена ​​дополнительная таблица, в которой будет храниться ноль или более адресов для каждого клиента. При использовании традиционной СУБД для сбора информации как для пользователя, так и для его адреса требуется «соединение»:

 ВЫБОР  InitCap ( С . Фамилия )  ||  ','  ||  InitCap ( С . FirstName ),  . город FROM Клиенты C присоединиться Адреса ON A . Cust_id = С . Id - объединение WHERE A . city = "Нью-Йорк"           

Тот же запрос в объектно-реляционной базе данных выглядит проще:

 ВЫБРАТЬ  Формальный (  C . Имя  )  FROM  Клиентов  C  ГДЕ  C . адрес . city = "New York"  - связь "понимается" ORDB

См. Также [ править ]

  • Документно-ориентированная база данных
  • SQL
  • Сравнение объектно-реляционных систем управления базами данных
  • Структурированный тип
  • База данных объектов
  • Объектно-реляционное отображение
  • Реляционная модель
  • LINQ
  • ADO.NET Entity Framework

Ссылки [ править ]

  1. ^ Интеграция данных Глоссарий (PDF) , США: Министерство транспорта, август 2001 г., в архиве с оригинала (PDF) на 2016-09-24 , извлекаются 2014-03-08
  2. ^ Франк Стаджано (1995), Нежное введение в реляционные и объектно-ориентированные базы данных (PDF)
  3. ^ Naman Sogani (2015), Технический обзор бумаги (PDF) , в архиве от оригинала (PDF) на 2016-03-04 , извлекаются 2015-10-05
  4. ^ Дата, Кристофер «Крис» J ; Дарвен, Хью , Третий манифест
  5. ^ Stonebraker ,. Майкл с Муром, Дороти. Объектно-реляционные СУБД: следующая большая волна . Издатели Morgan Kaufmann, 1996. ISBN 1-55860-397-2 . 
  6. ^ В то время возник спор, был ли этот термин придуман Майклом Стоунбрейкером из Illustra или Вон Кимом из UniSQL.

Внешние ссылки [ править ]

  • Савушкин, Сергей (2003), Точка зрения на ОРСУБД , заархивировано из оригинала 01.03.2012 , получено 21.07.2012.
  • Тест производительности JPA - сравнение продуктов Java JPA ORM (Hibernate, EclipseLink, OpenJPA, DataNucleus).
  • PolePosition Benchmark - показывает компромиссы производительности для решений в контексте несоответствия объектно-реляционного импеданса .