Введение

Система управления базами данных

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

Обзор

Основная потребность в объектно-реляционной базе данных обусловлена тем, что как реляционные, так и объектные базы данных имеют свои преимущества и недостатки. Изоморфизм реляционной системы баз данных с математическим отношением позволяет использовать множество полезных методов и теорем из теории множеств. Однако эти типы баз данных не оптимальны для определенных видов приложений. Модель объектно-ориентированной базы данных позволяет использовать контейнеры, такие как множества и списки, произвольные пользовательские типы данных, а также вложенные объекты. Это обеспечивает общность между типами приложений и типами данных в базе данных, устраняя проблему несовместимости. Но объектные базы данных, в отличие от реляционных, не имеют математической основы для глубокого анализа. Основная цель объектно-реляционной базы данных – преодолеть разрыв между реляционными базами данных и методами объектно-ориентированного моделирования, используемыми в языках программирования, таких как Java, C++, Visual Basic NET или C#. Однако более популярной альтернативой для достижения этой цели является использование стандартных реляционных систем баз данных с программным обеспечением для объектно-реляционного отображения (ORM). В то время как традиционные RDBMS или SQL DBMS ориентировались на эффективное управление данными, полученными из ограниченного набора типов данных (определенных соответствующими языковыми стандартами), объектно-реляционная DBMS позволяет разработчикам программного обеспечения интегрировать свои собственные типы и методы, применимые к ним, в СУБД. ORDBMS (как и ODBMS или OODBMS) интегрирована с объектно-ориентированным языком программирования. Характерными свойствами ORDBMS являются: 1) сложные данные, 2) наследование типов и 3) поведение объектов. Создание сложных данных в большинстве SQL ORDBMS основано на предварительном определении схемы с помощью пользовательского определенного типа (UDT). Иерархия в структурированных сложных данных предоставляет дополнительное свойство – наследование типа. То есть структурированный тип может иметь подтипы, которые повторно используют все его атрибуты и содержат дополнительные атрибуты, специфичные для подтипа. Еще одно преимущество – поведение объектов – связано с доступом к программным объектам. Такие программные объекты должны быть хранимыми и переносимыми для обработки в базе данных, поэтому их обычно называют постоянными объектами. Внутри базы данных все связи с постоянным программным объектом являются связями с его идентификатором объекта (OID). Все эти аспекты могут быть реализованы в корректной реляционной системе, хотя стандарт SQL и его реализации накладывают произвольные ограничения и добавляют сложность.

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

История

Системы управления объекто-реляционными базами данных выросли из исследований, проведенных в начале 1990-х годов. Эти исследования расширили существующие концепции реляционных баз данных, добавив объектные концепции. Исследователи стремились сохранить декларативный язык запросов, основанный на предикатном исчислении, как центральный компонент архитектуры. Вероятно, наиболее заметный исследовательский проект, Postgres (UC Berkeley), породил два продукта, чья родословная восходит к этим исследованиям: Illustra и PostgreSQL. В середине 1990-х годов появились первые коммерческие продукты, включая Illustra (Illustra Information Systems, приобретенная Informix Software, которая, в свою очередь, была приобретена IBM), Omniscience (Omniscience Corporation, приобретенная Oracle Corporation и ставшая основой для оригинального Oracle Lite) и UniSQL (UniSQL, Inc., приобретенная KCOMS). Украинский разработчик Руслан Засухин, основатель Paradigma Software, Inc., разработал и выпустил первую версию базы данных Valentina в середине 1990-х годов в виде SDK на C++. К следующему десятилетию PostgreSQL стала коммерчески жизнеспособной базой данных и является основой для нескольких современных продуктов, сохраняющих ее функции ORDBMS. Специалисты в области компьютерных наук стали называть эти продукты «объектно-реляционными системами управления базами данных» или ORDBMS. Многие идеи ранних разработок в области объектно-реляционных баз данных в значительной степени были включены в SQL:1999 посредством структурированных типов. Фактически, любой продукт, соответствующий объектно-ориентированным аспектам SQL:1999, можно описать как продукт управления объектно-реляционной базой данных. Например, IBM Db2, Oracle Database и Microsoft SQL Server заявляют о поддержке этой технологии, и делают это с разной степенью успеха.