Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Лекция 22. Объектно-ориентированные СУБД

Лекция



Привет, мой друг, тебе интересно узнать все про объектно-ориентированные субд, тогда с вдохновением прочти до конца. Для того чтобы лучше понимать что такое объектно-ориентированные субд, ообд , настоятельно рекомендую прочитать все из категории IBM System R — реляционная СУБД.

Объектно-ориентированная база данных ( ообд ) — база данных, в которой данные моделируются в виде объектов , их атрибутов, методов и классов

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

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

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

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

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

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

Тематика ООБД очень широка, объем этой лекции не позволяет рассмотреть все вопросы. Тем не менее, мы постараемся в систематической манере проанализировать наиболее важные аспекты ООБД.

Характеристики ООБД

Лекция 22. Объектно-ориентированные СУБД

Простейшая схема ООБД

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

В манифесте ООБД предлагаются обязательные характеристики, которым должна отвечать любая ООБД. Их выбор основан на 2 критериях: система должна быть объектно-ориентированной и представлять собой базу данных.

Лекция 22. Объектно-ориентированные СУБД

Обязательные характеристики

  1. Поддержка сложных объектов. В системе должна быть предусмотрена возможность создания составных объектов за счет применения конструкторов составных объектов. Необходимо, чтобы конструкторы объектов были ортогональны, то есть любой конструктор можно было применять к любому объекту.
  2. Поддержка индивидуальности объектов. Все объекты должны иметь уникальный идентификатор, который не зависит от значений их атрибутов.
  3. Поддержка инкапсуляции. Корректная инкапсуляция достигается за счет того, что программисты обладают правом доступа только к спецификации интерфейса методов, а данные и реализация методов скрыты внутри объектов.
  4. Поддержка типов и классов. Требуется, чтобы в ООБД поддерживалась хотя бы одна концепция различия между типами и классами. (Термин «тип» более соответствует понятию абстрактного типа данных. В языках программирования переменная объявляется с указанием ее типа. Компилятор может использовать эту информацию для проверки выполняемых с переменной операций на совместимость с ее типом, что позволяет гарантировать корректность программного обеспечения. С другой стороны класс является неким шаблоном для создания объектов и предоставляет методы, которые могут применяться к этим объектам. Об этом говорит сайт https://intellect.icu . Таким образом, понятие «класс» в большей степени относится ко времени исполнения, чем ко времени компиляции.)
  5. Поддержка наследования типов и классов от их предков. Подтип, или подкласс, должен наследовать атрибуты и методы от его супертипа, или суперкласса, соответственно.
  6. Перегрузка в сочетании с полным связыванием. Методы должны применяться к объектам разных типов. Реализация метода должна зависеть от типа объектов, к которым данный метод применяется. Для обеспечения этой функциональности связывание имен методов в системе не должно выполняться до времени выполнения программы.
  7. Вычислительная полнота. Язык манипулирования данными должен быть языком программирования общего назначения.
  8. Набор типов данных должен быть расширяемым. Пользователь должен иметь средства создания новых типов данных на основе набора предопределенных системных типов. Более того, между способами использования системных и пользовательских типов данных не должно быть никаких различий.

Необязательные характеристики:

  • Множественное наследование
  • Проверка типов
  • Распределение
  • Проектные транзакции

Открытые характеристики:

  • Парадигмы программирования (процедурное, декларативное)
  • Система представления
  • Система типов
  • Однородность. Реализация — язык программирования — интерфейс.

Лекция 22. Объектно-ориентированные СУБД

рис сравнение объектной и релационной СУБД

Манифест объекно-ориентированных баз данных

Архитектура СУОБД, согласно ODMG-93

ODL – Object Definition Language (язык определения объектов);

OQL – Object Query Language (язык объектных запросов);

OML – Object Manipulation Language (язык манипулирования объектами

Лекция 22. Объектно-ориентированные СУБД

Архитектура СУОБД

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

Язык определения данных (ODL ). Схемы баз данных описываются в терминах языка ODL, в котором конструкции модели данных конкретизируются в форме языка определения. Кроме того, ODL является виртуальным языком в том смысле, что в стандарте ODMG не требуется его реализация в программных продуктах ООСУБД.
Язык объектных запросов (ODL ). Язык имеет синтаксис, похожий на синтаксис языка SQL, но опирается на семантику объектной модели ODMG .
Языки манипулирования объектами (OML ). Для программирования реализаций операций и приложений требуется наличия объектно-ориентированного языка программирования. OML представляется собой интегрирование языка программирования с моделью ODMG; это интегрирование производится за счет определенных в стандарте правил языкового связывания (language binding ).

Объектная модель ODMG (ООМД)

Модель ODMG – объектная модель данных, включающая возможность описания как объектов, так и литеральных значений.

Модель ODMG подстраивается под специфику систем баз данных следующим образом:

Для баз данных, схем и подсхем обеспечивается набор встроенных объектных типов.
Модель включает ряд встроенных структурных типов, позволяющих применять традиционные методы моделирования баз данных.
Модель одновременно включает понятия объектов и литералов.
В модели связи между объектами отличаются от атрибутов объектов (аналогично тому, как это делается в ER -модели).

Объекты и литералы

Первое отличие объекта от значения: наличие у объекта уникального идентификатора – OID, Object Identifier (объекты обладают свойством идентифицируемости

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

Схема базы данных в модели ODMG главным образом состоит из набора объектных типов, но компонентами этих типов могут быть типы литеральных значений.

Второе отличие объектов и литералов – понятие изменчивости (mutability). Предположим, например, что данные о человеке составляют структуру
<имя, возраст, адрес проживания> .
Тогда возможны два варианта хранения этих данных:

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

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

Связи

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

Объектные и литеральные типы
В модели ODMG база данных представляет собой коллекцию различимых значений (denotable values ) двух видов – объекты и литералы.
Модель данных содержит конструкции для спецификации объектных и литеральных типов.
Объектные типы существуют в иерархии объектных типов; литеральные типы похожи на типы, характерные для обычных языков программирования (например, С или Pascal).
В модели ODMG не используется термин класс. Единственная классификационная конструкция называется типом, и типы описывают как объекты, так и литералы.
Литеральные типы:
базовые скалярные числовые типы, символьные и булевские типы (атомарные литералы), конструируемые типы литеральных записей (структур) и коллекций.

Объектный тип:

Состоит из интерфейса и одной или нескольких реализаций.
Интерфейс описывает внешний вид типа: какими свойствами он обладает, какие в нем доступны операции и каковы параметры у этих операций.
В реализации определяются структуры данных, реализующие свойства, и программный код, реализующий операции.
Интерфейс составляет общедоступную (public ) часть типа, а в реализации при необходимости могут вводиться дополнительные частные (private ) свойства и операции.
Все объектные типы (системные или определяемые пользователем) образуют решетку (lattice ) типов, в корне которой находится предопределенный объектный тип Object.
Лекция 22. Объектно-ориентированные СУБД

Объектный тип. Определение

Допускается создание объектов только тех объектных типов, которые определены как классы.
Классы могут определяться на основе множественного наследования интерфейсов и одиночного наследования классов.
Стабильность – это свойство объекта сохранять состояние между сеансами работы программы. Объектная база данных – это, по существу, хранилище стабильных объектов.

Связи явно определяются путем указания путей обхода (traversal paths ).

Пути обхода указываются парами, по одному пути для каждого направления обхода связи.

Объектный тип. Наследование

Механизм наследования от интерфейсов называется в ODMG наследованием IS - A (жирные стрелки), а механизм наследования от классов – extends (обычные).

Лекция 22. Объектно-ориентированные СУБД

ООБД и ее СУБД

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

Некоторые объектно-ориентированные базы данных разработаны для плотного взаимодействия с такими объектно-ориентированными языками программирования, как Python, Java, C#, Visual Basic .NET, C++, Objective-C и Smalltalk; другие имеют свои собственные языки программирования. ООСУБД используют точно такую же модель, что и объектно-ориентированные языки программирования.

СУБД должна обеспечивать:

  • Долговременное хранение
  • Использование внешней памяти
  • Параллелизм
  • Восстановление
  • Нерегламентированные запросы

объектно-ориентированные субд

В качестве примеров реализаций ООСУБД можно привести:

  • GemStone (компания GemStone Systems Inc.
  • ITASCA
  • ObjectStore (компания Progress Software
  • Objectivity /DB (Компания Objectivity
  • Versant (компания Versant ).

GemStone

В GemStone поддерживается динамическая сборка мусора (garbage collection ). Процесс-“мусорщик” автоматически освобождает память, занимаемую объектами, на которые отсутствуют ссылки.
В среде GemStone можно использовать различные реализации Smaltalk , а также языки C и C ++. Классы и объекты можно создавать с использованием любого из этих языков, и объекты, созданные на одном языке можно использовать в приложениях, написанных на любом другом языке.
ООСУБД GemStone была одной из первых коммерчески доступных ООСУБД.
Система была разработана компанией Servio-Logic совместно с OGI.
Разработчики GemStone опирались на язык Smalltalk, потом добавили C и C ++.
И серверная, и клиентская части системы могут работать под управлением всех основных ветвей ОС UNIX и всех развитых вариантов Windows.

ITASCA

Распределенная ООСУБД ITASCA основана на результатах проекта Orion. Разработка серии из трех прототипов завершилась выпуском системы, основанной на архитектуре “много клиентов-много серверов”. Поддерживается компанией IBEX Corp.
Каждое значение данных хранится в одном узле, но централизованное управление отсутствует; все серверы автономны.

Вау!! 😲 Ты еще не читал? Это зря!

Напиши свое отношение про объектно-ориентированные субд. Это меня вдохновит писать для тебя всё больше и больше интересного. Спасибо Надеюсь, что теперь ты понял что такое объектно-ориентированные субд, ообд и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории IBM System R — реляционная СУБД

Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.

создано: 2014-09-27
обновлено: 2024-11-14
219



Рейтиг 4 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Базы данных - IBM System R — реляционная СУБД

Термины: Базы данных - IBM System R — реляционная СУБД