Jump to content

Объектно-реляционная база данных

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

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

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

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

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

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

ORDBMS (например, ODBMS или OODBMS ) интегрирована с объектно-ориентированным языком программирования . Характерными свойствами ОРСУБД являются 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, приобретенная Oracle Corporation и ставшая исходной Oracle Lite) и UniSQL (UniSQL, Inc., приобретенная KCOMS ). Украинский разработчик Руслан Засухин, основатель Paradigma Software, Inc. , разработал и выпустил первую версию базы данных Valentina в середине 1990-х годов в виде C++ SDK . К следующему десятилетию PostgreSQL превратилась в коммерчески жизнеспособную базу данных и стала основой для нескольких текущих продуктов, поддерживающих ее функции ОРСУБД.

Ученые-компьютерщики стали называть эти продукты «объектно-реляционными системами управления базами данных» или ОРСУБД. [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  (  C.  Фамилия  )   ||   ', '   ||   InitCap  (  C  .  FirstName  )        FROM   Customers   C       WHERE   Месяц  (  C  .  DOB  )   =   Месяц  (  getdate  ())         И   День  (  C  .  DOB  )   =   День  (  getdate  ()) 

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

    ВЫБЕРИТЕ   Формальный  (  C.  День  Id  )        ОТ   Клиентов   C       WHERE   рождения  (  C.  =  DOB  )   (   Сегодня  ) 

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

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

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

     ВЫБЕРИТЕ   InitCap  (  C.  Фамилия  )   ||   ', '   ||   InitCap  (  C.  FirstName  ,   A.  )  город         ОТ   Клиентов   C   ПРИСОЕДИНЯЙТЕСЬ   Адреса   A   ON   A  .  Cust_Id  =  C  .  Id   соединение        WHERE   A.  город  =  "Нью-Йорк" 

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

    ВЫБЕРИТЕ   Формальный  (   C.  Имя   )        ИЗ   Клиентов   C       WHERE   C  .  адрес  .  city  ​​=  "Нью-Йорк"   - связь "понимается" ORDB 

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

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

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

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

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 8e23e394ce05a279d04fe1493e9185f8__1704172980
URL1:https://arc.ask3.ru/arc/aa/8e/f8/8e23e394ce05a279d04fe1493e9185f8.html
Заголовок, (Title) документа по адресу, URL1:
Object–relational database - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)