Объектно-ориентированная СУБД (прототип)
ельностью, часто в несколько раз более высокой, чем
реляционные базы данных. Наиболее известными ООСУБД являются Jasmine,
ObjectStore и POET.
Из отечественных разработок в области постреляционных баз данных
достоверно известно лишь о существовании ООСУБД ODB-Jupiter. Похоже, она
была написана специально для создания продукта ODB-Text. По крайней мере,
ни о каких других приложениях написанных на ODB-Jupiter ничего не известно.
Также в Internet было обнаружено описание некой отечественной объектно-
ориентированной базы данных версии 1.2. Точнее, это был модуль,
предоставляющий функции объектно-ориентированной СУБД. Документ даже не
имел названия. В нем детально рассматривалась организация хранения данных и
принцип работы. Похоже, разработка обосновывалась лишь на принципах,
которым должна удовлетворять СУООБД. Наиболее интересная идея: назначение
строкам уникальных идентификаторов и удаление строк только при упаковке
базы. Это дает существенный выигрыш в сравнении строк, так как объекты-
строки с одинаковым содержанием имеют одинаковые идентификаторы.
4 Краткий сравнительный анализ постреляционных и традиционных баз данных
Постреляционные базы данных вобрали в себя все лучшие черты
иерархических, сетевых и реляционных баз данных.
Хотя существуют некоторые сходства, как, например, использование
указателей и вложенная структура записей в сетевой модели. Однако надо
отметить, что СУООБД используют логические указатели для обеспечения
целостности, а также поддерживают иерархию классов, наследование и методы.
Таких средств нет в иерархических и сетевых моделях [4].
Реляционные СУБД, идеально соответствующие своему назначению в
традиционных областях применения баз данных, — банковское дело, системы
резервирования и т.д. — в данном случае оказываются неудобными и
неэффективными по многим причинам. Основное требование реляционной модели —
нормализация — в случае сложноструктурированных данных с многочисленными
взаимосвязями приводит к сложным запросам с соединением таблиц. То есть к
тому, к чему реляционные СУБД не приспособлены, поскольку не могут
обеспечить высокую производительность, требуемую интерактивным системам.
Производительность реляционных СУБД в таких случаях может уступать
СУООБД во много раз. Кроме того, приложения развиваются, и число таблиц
увеличивается. Небольшое изменение в организации данных может привести к
необходимости изменить исходные тексты программы. При этом вносятся
дополнительные ошибки. Объектно-ориентированные языки БД позволяют достичь
того же результата локальными изменениями в свойствах и методах
интересующих объектов. Кроме того, методы работы с объектами хранятся в
базе вместе с объектами.
1.4 Основания дипломной работы
В отношении избранных математических моделей
Значительная часть этой дипломной работы основывается на двух
математических моделях.
Модель единого представления данных поведений
и сообщений в объектно-ориентированной базе данных
Модель [17] замечательна тем, что не только описывает что представляют
из себя объекты и как они взаимодействуют между собой, но и является
замкнутой, самодостаточной. Она позволяет описать качественно новый вид
взаимодействия в объектно-ориентированной системе: алгебру объектов. Эта
алгебра является по своей сущности и важности аналогом реляционной алгебры
в теории реляционных баз данных. В этой алгебре объектов определяется что
представляют из себя такие операции, как селекция, проекция и другие хорошо
известные из теории реляционных баз данных операции. Таким образом, эта
модель объединяет два способа получения информации: посылка сообщения
объекту (что типично для объектно-ориентированного программирования) и
выполнение запроса над совокупностью хранимых данных (что типично для
реляционных баз данных).
Модель согласованного управления в объектно-ориентированной базе данных
Эта модель [19] также оказала значительное влияние на данную работу,
поскольку дополнила собой модель представления данных. Ни одна современная
система управления базой данных не может обойтись без подсистемы
транзакций. Природа транзакций в таких приложениях, как CAD, мультимедийные
базы данных, является весьма различной. Эти приложения характеризуются
совместно выполняемыми продолжительными транзакциями с произвольными
операциями. У продолжительных пользовательских транзакций время выполнения
может быть растянуто на часы, а то и дни. Это условие приводит к тому, что
хорошо известный, и ставший уже классическим для традиционных баз данных,
критерий сериализуемости становится неприменим непосредственно.
О самом критерии сериализуемости и способах реализации механизма
транзакций достаточно подробно изложено в [9] и [22].
Механизм согласованного управления позволяет повысить
производительность СУООБД за счет составления расписания выполнения
транзакций, в том числе продолжительных, предоставляет транзакциям
использовать промежуточные результаты других транзакций, учитывает
объектную ориентированность данных и допускает обобщение операций (не
только чтение и запись).
Другие работы, также повлиявшие на организацию структуры системы управления
В статье [20] излагается довольно интересная точка зрения на состояние
объектно-ориентированного программирования, а также рассказывается о
применении несколько отличного от традиций объектно-ориентированного
программирования подхода. В частности, наследование реализуется с помощью
механизмов включения и делегирования. Это позволяет решить проблему
множественного наследования. Вводится понятие фильтров, представляющих
собой продукции, которые могут обрабатывать входящие сообщения и даже
перенаправлять их на другие объекты, сохраняя в теле этих сообщений ссылку
на первоначальный объект, к которому было послано сообщение. Причем,
фильтры могут реагировать не только на входящие, но и на исходящие от
объекта сообщения.
Принципы журнализации заимствованы из системы POSTGRES [23] и [15].
Принципы кэширования взяты из [1].
В отношении языка реализации
Было решено реализовывать прототип СУООБД на ДССП. ДССП – диалоговая
система структурного программирования – была разработана в 1980 году
Н.П.Брусенцовым в МГУ [5]. Система имеет под собой теоретическое
обоснование. Принцип ДССП «Слово есть слово», т.е. одно слово программы
соответствует одному слову кода. Принципы управляющих конструкций
наследуются от троичной вычислительной машины Сетунь-70, имевшей память на
магнитных сердечниках. Словарь и обозначения – от языка Ч.Мура Forth. ДССП
превосходит Forth по многим параметрам. Язык ДССП обладает существенно
более низкой, чем язык ассемблера трудоемкостью в программировании, не
уступая ему в компактности кода и быстродействии, позволяет проверять
работу подпрограмм в интерактивном режиме и имеет возможность модификации
программ практически без внесения изменений в остальные части кода.
Основные черты ДССП:
. Двухстековая архитектура
. Обратная польская запись
. Словари
. Поддержка нисходящего программирования
. Встроенный отладчик с рекомпиляцией
. Высокоуровневые структуры данных и операции
. Высокоуровневый механизм программных прерываний и исключительных ситуаций
. Компактный код
. Гибкость, мобильность, наращиваемость
. Наличие сопрограммного механизма
К сожалению, при всех этих достоинствах, ДССП на данный момент
является только системой программирования. Она не предоставляет сервис СУБД
и не взаимодействует ни с одной СУБД. Данная работа направлена на то, чтобы
обеспечить ДССП возможность обрабатывать данные в качестве СУБД, создав тем
самым дешевый (Jasmine стоит порядка $15000), но эффективный инструмент,
способный работать даже в самых непритязательных условиях, которые так
часто встречаются сейчас в России. Разработка не ограничивается расширением
ДССП и способна работать в качестве сервера ООБД на файл-сервере ЛВС.
1.5 Анализ полученного результата
В результате проделанной работы изучена литература по организации
реляционных баз данных, подходы к организации объектно-ориентированных баз
данных. Были отобраны математические модели, на основании которых была
определена архитектура базы данных и принципы ее функционирования.
Программно реализованы подсистемы управления виртуальной памятью и
кэширования объектов. Сама работа носит исследовательский характер, являясь
шагом от чистой теории к идеям реализации ООБД. Обширность тематики не
позволила проработать детально все вопросы, касающиеся организации ООБД. В
частности, очень мало места уделено средствам повышения производительности
поиска в БД (индексирование). Тем не менее, некоторые найденные решений, на
мой взгляд, являются весьма перспективными. Это касается организации
виртуальной памяти, позволяющей организовать произвольную степень
вложенности данных, и механизма кэширования, которые подробно
рассматриваются в работе.
В виде программного кода реализовано:
. Создание, открытие ООБД
. Менеджер виртуальной памяти
. Система управления каналами
. Система управления кэшированием объектов
. Создание основных об
| | скачать работу |
Объектно-ориентированная СУБД (прототип) |