Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ТЭИС(ЗАО) / ЛекцииТЭИС / Деятельность ODMG

.doc
Скачиваний:
18
Добавлен:
27.03.2015
Размер:
905.22 Кб
Скачать

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

Манифест ООБД – научный документ, целью которого является уточнение терминологии. В манифесте ООБД (1989г) предлагаются характеристики, которым должна отвечать

любая ООБД. Их выбор основан на 2 критериях: система должна быть

объектно-ориентированной и представлять собой СУБД.

Манифест устанавливает три категории характеристик ООБД:

  1. обязательные – система должна обладать такими характеристиками для того, чтобы она «заслуживала» права считаться ООБД;

  2. необязательные – характеристики, которые улучшают функциональные возможности системы, но не являются обязательными;

  3. открытые – характеристики, которые проектировщик

может выбирать среди в равной мере приемлемых альтернатив .

Стандартизованная объектно-ориентированная модель описана в рекомендациях стандарта ОDMG-93 . ODMG определяет объектную модель, концептуально подобную реляционной модели.

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

Концепции объектно-ориентированной модели

  • Каждый объект в объектно-ориентированной системе имеет уникальный идентификатор, называемый ID объекта (от IDentificator) или OID (от Object IDentifier). Использование OID позволяет изменять значение любого атрибута объекта (в том числе и тех атрибутов, которые образуют первичный ключ), не нарушая при этом ссылок на данный объект.

  • Классы (или типы) – группы объектов, обладающих одним и тем же множеством атрибутов и методов.

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

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

Каждый тип имеет один интерфейс, а также одну или несколько реализаций.

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

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

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

Языки ODMG

Стандарт ODMG включает рекомендации относительно трех различных объектно – ориентированных языков.

  • Языка определения объектов (Object Definition Language), который концептуально аналогичен реляционному языку определения данных .

  • Языка манипулирования объектами (Object Manipulation Language), который аналогичен языкам манипулирования данными в реляционных СУБД.

  • Объектного языка запросов (Object Query Language), включение его в стандарт направлено на преодоление одного из главных недостатков ООСУБД – отсутствие в большинстве систем и программных продуктов возможностей языка запросов.

Реализовать в полном объеме рекоменда­ции ОDMG-93 пока не удается.

Рассмотрим не­сколько упрощенную модель объектно-ориентированной БД.

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

Структура объектно-ориентированной БД графически может быть представлена в виде дерева, узлами которого являются объекты. Свойства объектов описываются некоторым стан­дартным типом (например, строковым - string) или типом, конструируемым пользователем (определяется как сlаss). Значением свойства типа string является строка символов. Значение свойства типа сlаss есть объект, являющийся экземпляром соответствующего типа. Каждый объект-экземпляр типа считается подтипом объекта, в котором он определен как свойство. Объект-экземпляр типа принадлежит своему типу и относится к одному объекту-экземпляру супертипа. Отношения супертипов и подтипов в БД образуют связанную иерархию объектов. Рассмотрим пример логической структуры объектно-ориентированной БД библиотечного дела.

Здесь объект типа БИБЛИОТЕКА является супертипом для объектов-экзсмпляров типов АБОНЕНТ, КАТАЛОГ и ВЫДАЧА. Различные объекты-экземпляры типа КНИГА могут относиться к одному или нескольким объектам-экземплярам типа КАТАЛОГ . Объекты типа КНИГА, относящиеся к одному и тому же экземпляру типа КАТАЛОГ, должны различаться по крайней мере инвентарным номером (который уникален для каждого экземпляра книги), но должны иметь одинаковые значения свойств isbn, удк, название и автор.

Логическая структура объектно-ориентированной БД внешне похожа на структу­ру иерархической БД. Основное отличие между ними состоит в методах манипулирования данными.

Для выполнения действий над данными в рассматриваемой модели БД применя­ются логические операции, усиленные объектно-ориентированными механизмами инкапсуляции, наследования и полиморфизма. Ограниченно могут применяться операции, подобные командам SQL (например, для создания БД).

Создание и модификация БД сопровождается автоматическим формированием и последующей корректировкой индексов (индексных таблиц), содержащих информа­цию для быстрого поиска данных.

Рассмотрим кратко понятия инкапсуляции, наследования и полиморфизма при­менительно к объектно-ориентированной модели БД.

При инкапсуляции система является совокупностью модулей, каждый их которых доступен через полностью определённый интерфейс. Этот интерфейс – спецификация – не зависит от способов реализации. Инкапсуляция ограничивает область видимости имени свойства пределами того объекта, в котором оно определено. Так, если в объект типа КАТАЛ О Г добавить свойство, задающее телефон автора книги и имеющее название телефон, то мы получим одноименные свойства у объектов АБОНЕНТ и КАТАЛОГ. Смысл такого свойства будет определяться тем объектом, в который оно инкапсулировано.

Наследование, наоборот, распространяет область видимости свойства на все подтипы объекта. Так, всем объектам типа КНИГА, являющимся подтипами объек­та типа КАТАЛОГ, можно приписать свойства объекта типа: isbn, удк, назва­ние и автор. Если необходимо расширить действие механизма наследования на объекты, не являющиеся непосредственными связанными , то в их общем объекте супертипа определяется абстракт­ное свойство типа abs. Так, определение абстрактных свойств билет и номер в объек­те БИБЛИОТЕКА, приводит к наследованию этих свойств всеми подтипами объек­тов АБОНЕНТ, КНИГА и ВЫДАЧА. Неслучайно, поэтому значения свойства билет объектов АБОНЕНТ и ВЫДАЧА будут одинаковы­ми -00015.

Полиморфизм – повторное использование кода или объектов, то есть определения, зарегистрированные в библиотеке классов, могут повторно использоваться во вновь разрабатываемых приложениях или функциях. Это приводит к снижению стоимости разработки новых приложений.

Полиморфизм в объектно-ориентированных языках программирования означает способность одного и того же программного кода работать с разнотипными данными. Другими словами, он означает возможность в объектах разных типов иметь методы (процедуры или функции) с одинаковыми именами. Во время выполнения объект­ной программы одни и те же методы оперируют с разными объектами в зависимости от типа аргумента. Применительно к нашей объектно-ориентированной БД полимор­физм означает, что объекты типа КНИГА, имеющие разных родителей из объектов типа КАТАЛОГ, могут иметь разный набор свойств. Следовательно, программы работы с объектами класса КНИГА могут содержать полиморфный код.

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

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

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

В 90-е годы существовали экспериментальные прототипы объектно-ориентиро­ванных систем управления базами данных. В настоящее время такие системы полу­чили широкое распространение, в частности, к ним относятся следующие СУБД: РОЕТ (РОЕТ Software),Jasmine (Computer Associates), Versant (Versant Technologies), O2 (Ardent software),Jupiter (научно-производственный центр "Интелтек Плюс"), а также Iris, Orion и Postgres.

Соседние файлы в папке ЛекцииТЭИС