Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
база данных.docx
Скачиваний:
167
Добавлен:
24.03.2015
Размер:
5.83 Mб
Скачать

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

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

Стандартизованная объектно-ориентированной модель описана в рекоменда­циях стандарта ODMC-93 (Object Database Management Group - группа управ­ления объек.но-ори* ншровандыми базами данных). Реачи.°овать з полном объе­ме рекомендацииODMG-93 пока не удается. Для иллюстрации ключевых идей рассмотрим несколько упрощенную модель объект но-ориентировэнной БД.

Стр> ктура объектно ориентиронанной БД графически пред ставима в виде дерева, узлами которого являются объек ты Свойства объектоь описываются некоторым t гандартным типом (например, с гроковым —string) или типом, конструируемым пользователем (определяется какclass).

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

Пример логической структуры объектно-ориентированной БД библиотеч­ного де ла приведен на рис. 2.10.

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

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

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

Рис. 2.10 Логическая структура БД библиотечного дела

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

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

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

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

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

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

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

Рис 2,11. Фрагмент БД с объектом целью

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

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

В 90-е годы существивали экспериментальные прототипы объектно-ориен­тированных систем управления базами данных. В настоящее время такие сис­темы получилиширокое распространение, в частности, к ним относятся следу­ющие СУБД: РОЕТ (РОЕТSoftware),Jasmine(ComputeiAssociates),Versant(VersantTechnologies), 02 (ArdentSoftware),ODB-Jupiter(научно-производ­ственный центр «Мчтелтек Плюс»), а такжеIris,OrionиPostgres.