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

Прежде нами была рассмотрена модель реляционных баз данных, в которой все данные хранятся в виде таблиц. Реляционные базы данных были признаны наилучшей моделью для хранения большинства видов “простых” данных, вроде обычных данных бухгалтерского учета. Для моделирования отношений между сложными данными, однако, более подходящей были признана объектная система управления базами данных (ОСУБД; Object Database Management System — ODBMS). Тем не менее, объектные базы данных пока еще не могут всерьез конкурировать с традиционными реляционными базами данных.

Реляционная и объектная модели, по сути, находятся на двух противоположных концах в мире моделирования данных, и потому для сокращения пропасти между ними была выпущена новая разновидность реляционной модели, получившая название объектно-реляционной системы управления базами данных (ОРСУБД; Object-Relational Database Management System — ORDBMS). Компания Oracle начала применять модель ОРСУБД в своем серверном программном обеспечении еще в версии Oracle8, а последнюю версию своего сервера баз данных — 11g — вообще называет объектно-реляционной СУБД.

Реляционная модель

У реляционной модели есть несколько ограничений. Одним из главных является ограниченность в возможностях представления сущностей реального мира, которые имеют гораздо более сложный вид, чем тот, в котором их можно представить с помощью кортежей и отношений. Еще более слабой эта модель является в том, что касается различения разных видов отношений между сущностями. Представлять сложные данные и манипулировать ими в традиционных реляционных базах данных не возможно: набор операций, которые можно выполнять в реляционных моделях, не подходит для многих реальных приложений, в состав которых входят объекты с нечисловыми атрибутами.

Ограничения традиционной реляционной модели при моделировании нескольких сущностей реального мира привели к изучению семантических моделей данных и так называемых расширенных реляционных моделей данных. За право считаться следующим поколением реляционной модели сейчас соревнуются две модели: объектно-ориентированная и объектно-реляционная. Базы данных, разрабатываемые на основе первой, называются объектно-ориентированными системами управления базами данных (ООСУБД; Object-Oriented Database Management Systems — OODBMS), а базы данных,разрабатываемые на основе второй, соответственно — объектно-реляционными системами управления базами данных.

Объектная модель

Объектные (или объектно-ориентированные) базы данных по большей части основываются на использовании объектно-ориентированных языков программирования,наподобие C++, Java и Smalltalk. В частности, ОСУБД создаются за счет комбинирования возможностей баз данных с функциональностью объектно-ориентированных языков программирования. Из-за этого любая ОСУБД может, по сути, считаться просто расширением объектно-ориентированного языка с добавленными к нему возможностями для обеспечения взаимосовместимости и восстановления данных. Объектно-ориентированный язык применяется и для разработки приложения, и для хранения данных.Кроме того, он используется для создания объектов, которые являются основными компонентами ОСУБД.

  • Ниже перечислено несколько терминов, которые в объектно-ориентированных средах имеют особое значение.
  • Объектами (objects) называются сущности, содержащие атрибуты объекта реального мира и ассоциируемые с ним действия.
  • Свойствами (properties) называются различные атрибуты объекта.
  • Методами (methods) в объектном мире называются функции, которые определяют поведение объекта.
  • Взаимодействуют объекты друг с другом посредством сообщений (messages).
  • Классом (class) называется группа объектов, обладающих одинаковыми атрибутами.
  • Экземплярами (instances) называются фактические инкарнации объектов в классе.
  • Классы могут делиться на подклассы (subclasses) и тогда иметь родительский класс, называемый суперклассом (superclass).

Ниже перечислены три основных понятия, в которых нужно обязательно разбираться, чтобы работать с объектно-ориентированными системами.

  • Полиморфизм (polymorphism). Под полиморфизмом подразумевается способность объектов реагировать по-разному при получении разных наборов информации (в виде параметров). Объектно-ориентированные языки позволяют делать так,чтобы в зависимости от предоставляемых параметров выполнялись разные методы. В языках, не являющихся объектно-ориентированными, обеспечивать выполнение двух различных задач можно только путем создания двух функций с двумя разными именами.
  • Инкапсуляция (encapsulation). Под инкапсуляцией подразумевается возможность включать в объекты информацию как о том, что они собой представляют (их свойства), так и о том, что они могут делать (их методы). Другими словами инкапсуляция позволяет упаковывать код и данные вместе. Например, при наличии в модели объекта, представляющего человека, и метода, позволяющего вычислять его ежегодную заработную плату, код (или метод) для вычисления заработной платы будет “инкапсулироваться” вместе с экземпляром объекта (т.е. человека).
  • Наследование (inheritance). Под наследованием подразумевается возможность порождения одного класса от другого для того, чтобы тот мог обладать как некоторыми характеристиками своего родителя, так и своими собственными, отличающимися характеристиками. Например, объект, представляющий студента (Student),может являться подклассом класса, представляющего человека (Person).

Объектно-реляционная модель

Хотя чисто объектная методика и привлекательна, на практике ее реализовать довольно-таки трудно. Системы ОРСУБД стараются объединять наилучшее из того, что могут предложить реляционные модели, с как можно большим из того, что могут предложить объектно-ориентированные методики. Компания Oracle заявляет, что ее модель ОРСУБД способна позволять размещать сложные производственные данные в обычной реляционной базе данных и сберегает базовую табличную форму реляционной модели. В основе предлагаемых Oracle (и другими производителями) продуктов ОРСУБД лежит SQL-стандарт ANSI/ISO/IEC 9075:2003 (также называемый просто стандартом SQL:2003).

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

Привносить объектно-ориентированную методику в реляционные базы данных системам ОРСУБД главным образом позволяют абстрактные типы. Все объекты в них представляют собой упрощенные абстракции объектов реального мира и охватывают как структуру данных, так и методы оперирования ими. Тип каждого объекта состоит из его имени, атрибутов и методов и может храниться как внутри базы данных, так и за ее пределами. Двумя другими объектно-ориентированными возможностями, которые тоже доступны в новой версии ОРСУБД Oracle Database 11g и 12с, являются: наследование типов и полиморфизм.

Сегодня некоторые производители баз данных утверждают, что им на самом деле удалось объединить характеристики реляционных и объектно-ориентированных баз данных и создать универсальную ОРСУБД. Эти заявления в основном вызваны возрастанием спроса на подобный продукт на рынке и в действительности не имеют под собой никакой реальной технической основы. Пока объектно-ориентированным базам данных далеко до повсеместного распространения. В обозримом будущем будет по-прежнему продолжать господствовать реляционная или объектно-усовершенствованная реляционная модель (вроде ОРСУБД от Oracle). Несомненно, можно ожидать, что постепенно в базы данных будет добавляться все больше и больше объектно-ориентированных возможностей.                                                                    

По поводу преимуществ реляционной системы баз данных перед объектно-ориентированной все время ведутся споры. Все стороны соглашаются, что реляционные базы данных действительно очень хорошо справляются с определенными задачами, вроде тех, что требуются в производственных приложениях, для которых они в настоящее время, собственно говоря, и применяются. Что же касается объектно-ориентированных баз данных, то хотя они и являются реалистичнее реляционных, их довольно трудно реализовать, и им еще очень далеко до приобретения той же степени зрелости и изощренности в отношении эксплуатации, которая уже есть у реляционных баз данных.Несмотря на возрастание популярности этих баз данных за несколько последних лет, их доля на рынке по-прежнему остается мизерной. То, смогут ли они вообще когда-нибудь вытеснить реляционные базы данных, вызывает серьезные сомнения.

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

  Продукт Oracle Database 11g и 12c представляет собой ОРСУБД. Некогда это была традиционная, чисто реляционная система, а сегодня это — система с рядом объектно-ориентированных средств, основные из которых перечислены ниже.

  • Определяемые пользователем типы данных (user-defined data types). Oracle поддерживает как типы, так и коллекции объектов. Вдобавок Oracle предоставляет встроенный тип данных под названием REF для моделирования отношений между объектами строк, принадлежащими к одному и тому же типу.
  • Методы (methods). Oracle позволяет реализовать методы на языке PL/SQL или Java.
  • Коллекции (collection types). В число поддерживаемых Oracle коллекций входят массивы, называемые varrays, и таблицы, называемые вложенными таблицами(nested tables).
  • Большие объекты (large objects). Oracle поддерживает использование больших двоичных объектов (Binary Large Objects — BLOBs) и больших символьных объектов (Character Large Objects — CLOBs).                                                                                                                                                                                                                                                                                                                                                                                                                          

 

Вас заинтересует / Intresting for you:

Базы данных - презентация к ку...
Базы данных - презентация к ку... 1704 просмотров Aida Wed, 10 Oct 2018, 17:32:17
Что такое базы данных? Назначе...
Что такое базы данных? Назначе... 773 просмотров Ирина Светлова Mon, 28 Oct 2019, 05:41:34
Перенос корпоративных баз данн...
Перенос корпоративных баз данн... 352 просмотров Дэн Fri, 27 Sep 2019, 07:52:18
База данных как объект правово...
База данных как объект правово... 305 просмотров Денис Wed, 27 Mar 2019, 03:16:24