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

1

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕХНОЛОГИЙ И УПРАВЛЕНИЯ им. К.Г. Разумовского

Кафедра Информационных технологий

Лекция 5

Объектно-ориентированная модель СУБД

Современным уровнем в области создания систем управления БД являются объектноориентированные СУБД (ООСУБД). Характеристики этих СУБД можно разделить на три определяющие группы:

-базовые, которые определяют, что данная СУБД относится к классу объектноориентированных;

-выборочные, позволяющие модернизировать данную СУБД;

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

ООСУБД должна удовлетворять двум критериям. Первый критерий заключается в том, что такая система должна удовлетворять пяти классическим признакам СУБД.

1.Сохранность и реентерабельность данных (т.е. их способность вызываться рекурсивно или обрабатываться параллельно несколькими программами в одно и то же время).

2.Развитое управление внешней памятью.

3.Возможность совмещения обработки и поиска данных.

4.Поддержка средств восстановления информации.

5.Возможность быстрого доступа к БД по запросу пользователя.

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

1.Использование сложных объектов.

2.Наличие идентичных объектов.

3.Инкапсуляция данных.

4.Использование типов и классов объектов.

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

6.Настройка операций обработки информации в зависимости от типа объекта.

7.Возможность расширения предопределенных типов объектов.

8.Поддержка вычислительной полноты.

Первый критерий хорошо известен пользователям таких систем, как INGRES, dBase, R:Base, IMS, Reflex и др. Поэтому целесообразно остановиться на характеристиках второго критерия, соотнося их с вопросами технологии ООП.

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

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

2

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

2. Понятие идентичности объектов состоит в том, что их существование не зависит от их значений. При этом имеют место два понятия эквивалентности объектов:

а) объекты могут быть одинаковы, т.е. идентичны б) объекты могут быть равны, т. е. иметь одно и то же значение.

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

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

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

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

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

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

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

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

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

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

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

Автор string
Книга class

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Библиотека

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Свойство

Тип

Значение

 

 

 

 

Абонент

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Билет

string

00015

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Фамилия

string

Титова

 

 

 

 

 

 

 

 

Район

String

Киевский

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Адрес string пр.Мира,3-115

 

 

 

Книга

 

 

 

 

Абонент

class

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Телефон string 2461288

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Каталог

class

 

 

 

 

 

 

 

 

Номер string

02867

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выдача

class

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Стеллаж string

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Издание string

1

 

 

 

Билет

abs

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Номер

abs

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выдача

Билет string 00015 Номер string 02867 Дата string 7.05.01

Каталог

Isbn

string

3 217 00628 5

УДК

string

6 S 13 06

Название string Системы управления БД Дж.Ульман

Логическая структура объектно-ориентированной СУБД на примере библиотечной базы данных

Рис.1

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

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

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

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

4

ра свойств может быть одинаковой, а их значения различны. Следовательно, программы работы с объектами класса КНИГА могут содержать полиморфный код.

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

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

База данных

Библиотека class Библиотека goal

Библиотека goal

 

 

 

 

 

 

 

Номер чит. билета

String

 

Инв. номер книги

String

 

Дата выдачи

String

 

 

 

 

Библиотека class

Свойство тип значение Район string Кивский Абонент class

Каталог class Выдача class Билет abs Номер abs

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

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

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

В 90-е годы существовали экспериментальные прототипы объектно-ориентированных систем управления базами данных. В настоящее время такие системы получили широкое распространение, в частности, к ним относятся следующие СУБД: POET (POET Software), Jasmine (Computer Associates), ODB-Jupiter (научно - производственный центр "Интеллект Плюс"), а

также Iris, Orion и Postgres.

Соседние файлы в папке БД_лекции