Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Объектная модель данных. ООСУБД

Поиск

В связи с объектной парадигмой был предложен новый подход, при котором модель данных рассматривается как система типов. Такой подход обеспечивает естественные возможности интеграции баз данных и языков программирования.

Ориентируясь на современное понимание типа данных как носителя свойств, определяющих и состояние экземпляров типа, и их поведение, можно дать следующее определение понятия модели данных (ср. с определением этого понятия, приведенным в п. 2.4.):

Модель данных – это система типов данных, типов связей между ними и допустимых видов ограничений целостности, которые могут быть для них определены.

Стандарт на ООСУБД выработан консорциумом Object Database Management Group (ODMG), состоящим в основном их производителей таких СУБД.

В соответствии со стандартом ODMG, объектная модель данных характеризуется следующими свойствами.

  • Базовыми примитивами являются объекты и литералы. Каждый объект имеет уникальный идентификатор, литерал не имеет идентификатора.
  • Объекты и литералы различаются по типу. Все элементы одного типа имеют одинаковый диапазон изменения состояния (множество свойств) и одинаковое поведение (множество определенных операций). Объект, на который можно установить ссылку, называется экземпляром; он хранит определенный набор данных.
  • Состояние объекта определяется набором значений множества свойств. Этими свойствами могут быть атрибуты объекта или связи между объектом и одним или несколькими другими объектами.
  • Поведение объекта определяется набором операций, которые могут быть выполнены над объектом или самим объектом. Операции могут иметь список входных и выходных параметров строго определенного типа. Каждая операция может также возвращать типизированный результат.
  • База данных хранит объекты, позволяя совместно использовать их различным пользователям и приложениям. База данных основанана схеме данных, определяемой языком определения данных, и содержитэкземплярытипов, определенных схемой.

Каждый тип имеет внешнюю спецификацию и одну или несколько реализаций. Спецификация определяет внешние характеристики типа: пользователю для работы с объектом предоставляется набор операций и набор атрибутов объекта, при помощи которых можно работать с реальными экземплярами. Реализация определяет внутреннее содержание объектов, например операции.

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

Таким образом, одним из принципиальных отличий объектных баз данных от реляционных является возможность создания и использования новых типов данных.

Основные элементы ООСУБД представлены на рис.36., а применение базовых понятий объектной модели в ООСУБД на рис.37.

Замечание 1. Очевидно родство понятия класса объектно-ориентированной парадигмы программирования и понятия типа объектно-ориентированной технологии баз данных.

Замечание 2. Напомним, что термин объект в РСУБД обозначает либо тип объектов, либо экземпляр типа объектов. В ООСУБД и тип, и экземпляр типа являются объектами.

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

Пример нарис.38. иллюстрирует возможность наследования типа «Человек», который может быть «Мужчиной», «Женщиной», «Взрослым» или «Ребенком». Соответственно, возможны попарные пересечения этих типов. Каждый из этих типов может иметь свой набор свойств и операций. Любой объект типа Мужчина, Женщина, Взрослый или Ребенок является объектом типа Человек. Аналогично объект подтипа МужчинаВзрослый, полученного наследованием типов Мужчина и Взрослый, является человеком, мужского пола, взрослым и, соответственно, может пользоваться свойствами и операциями всех своих супертипов.

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

 
 

 


Рис.36. Основные элементы ООСУБД

 

 

Рис.37. Применение базовых понятий объектной модели в ООСУБД

 
 


Рис.38. Пример наследования типов

Объектно-реляционные СУБД

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

Однако, несмотря на определенные достоинства, из-за ряда причин ООСУБД так и не смогли оказать значительного влияния на положение дел в области технологии баз данных:

1. Отсутствие в ООСУБД базовых средства, к которым пользователи систем баз данных привыкли.

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

· превратить ООСУБД в системы баз данных, обладающих достаточной совместимостью с РСУБД, чтобы обеспечить сосуществование имеющихся и создающихся новых продуктов,

· унифицировать модели данных РСУБД и ООСУБД,

· унифицировать архитектуры РСУБД и ООСУБД.

2. Чтобы стать полноценными СУБД, ООСУБД должны поддерживать весь спектр соответствующих средств:

· стандартная алгебра, средства обеспечения и оптимизации запросов,

· управление транзакциями,

· поддержка ограничений целостности,

· организация безопасности,

· и т.д.

3. Наличие в ООСУБД основных базовых средства, которые пользователи хотели бы видеть;

· широкие возможности настройки производительности, присущие РСУБД,

· поддержка сложных объектов,

· поддержка динамических изменений определений классов,

· полная интеграция с объектно-ориентированными системами программирования.

Значительные сложности учета перечисленных факторов привел к тому, что рынок ООСУБД в настоящее время, по существу, исчез.

Основные трудности объектно-ориентированного моделирования данных проистекают из того, что не существует развитого математического аппарата, на который могла бы опираться общая объектно-ориентированная модель данных.

Замечание. Некоторые авторы утверждают, что общая объектно-ориентированная модель данных в классическом смысле и не может быть определена по причине непригодности классического понятия модели данных к парадигме объектной ориентированности.

В начале 90-х годов была предложена идея объектно-реляционных систем (ОРСУБД),

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

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

Объектно-реляционная модель включает в себя принцип вложения классов, уникальные идентификаторы объектов, методы, приписываемые к классу, наследование атрибутов и методов в соответствии с иерархией классов, а также связи обобщения/специализации между классами, расположенными на разных уровнях иерархии классов. Модифицируется и язык SQL путем добавления объектных расширений.

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

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

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

Таким образом, в принципах построения современных ООСУБД можно выделить два подхода:

1. Революционный - полный отказ от использования идей реляционных моделей данных.

2. Эволюционный – совмещение реляционной платформы с объектно-ориентированной парадигмой.



Поделиться:


Последнее изменение этой страницы: 2016-07-16; просмотров: 1176; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.32.53 (0.009 с.)