*99287*

Мелешко Е.А., Пидопрыгора Г.А.

Национальный авиационный университет

Недостатки обьектно-ориентированных СУБД

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

·         отсутствуют общие средства манипулирования данными, такие как реляционная алгебра или реляционное счисление. Работа с данными ведется с помощью одного из объектно-ориентированных языков программирования общего назначения, обычно это SmallTalk, C++ или Java.

·         Недостаточность средств для оптимизации запросов.

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

·         Отсутствие стандартной алгебры запросов.

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

·         Отсутствие средств обеспечения запросо.

В большинстве ООБД не хватает средств обеспечения запросов. В тех же немногих системах, где имеются достаточные соответствующие средства, язык запросов не совместим с ANSISQL. Среди этих средств обеспечения запросов нет вложенных подзапросов, запросов с множествами (union, intersection, difference), агрегатных функций и GROUPBY, соединения нескольких классов — возможностей, полностью поддерживаемых в РБД. Кроме того, отсутствует стандарт для объектных запросов.

·         Отсутствие поддержки представлений.

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

·         Проблемы с безопасностью.

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

·         Отсутствие поддержки динамических изменений определений классов.

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

·         Ограниченная поддержка ограничений целостности.

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

·         Ограниченные возможности настройки производительности.

В большинстве ООБД имеются лишь ограниченные средства параметризованной настройки производительности.

·         Недостаточная поддержка сложных объектов.

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

·         Ограниченные возможности настройки производительности.

В большинстве ООБД имеются лишь ограниченные средства параметризованной настройки производительности.

·         Ограниченная интеграция с объектно-ориентированными системами программирования.

Трудно переписывать объектно-ориентированные программы для управления стабильными данными. Здесь возникает ряд проблем: конфликты по именам; необходимость переделывать иерархии классов; склонность ООБД к перегрузке системных операций.

·         Ограниченный выигрыш в производительности.

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

 

     Перечисленные выше недостатки, показали, что ООБД не оправдали возлагавшихся на них ожиданий, таких как: обеспечение всеми необходимыми средствами, которые нужны для целевых приложений. Надо отметить, что почти все современные ООБД – не столько системы баз данных, сколько системы стабильного хранения данных для некоторого обьектно-ориентированного языка программирования.

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