Программирование >>  Хронологические базы данных 

1 ... 314 315 316 [ 317 ] 318 319 320 ... 348


Это отличие... не следует приписывать различию между собственно реляционной и объектными моделями... В основном, эти различия обусловлены [особенностями реализации].

Это утверждение может быть подкреплено тем фактом, что различия в производительности становились заметно меньше при увеличении размера базы данных (когда в кэш нельзя было поместить всю базу данных).

Подобная, но более обширная, тестовая программа 007 описана в [24.10].

Является ли объектная СУБД действительно СУБД?

Замечание. В данном подразделе излагаются суждения и наблюдения, которые, в основном, взяты из [24.18]. В этой работе, помимо всего прочего, утверждается, что различия между объектными и реляционными системами гораздо сушественнее, чем это обычно представляется.

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

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

1. Совместный доступ со стороны нескольких приложений.

2. Физическая независимость данных.

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

4. Поддержка представлений и логической независимости данных.

5. Поддержка декларативных ограничений целостности, независимых от приложений.

6. Поддержка прав владения данными и гибкий механизм обеспечения их защиты.

7. Управление совместным доступом.

8. Каталог общего назначения.

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

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



Для сравнения рассмотрим следующие замечания.

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

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

Кроме того, отмети.м, что результат подгонки такой базы будет специфическим для конкретных приложений. Эта система может подходить, например, д.пя приложений САПР/АСУТП, но быть совершенно непригодной, например, для медицинских приложений. Иначе говоря, она все еще не стала СУБД общего назначения в том смысле, в котором реляционная СУБД является СУБД общего назначения.

В той же статье [24.18] оспаривается так называемая идея устойчивой нечувствительности к типам из [24.2], в соответствии с которой в базу данных можно включать (изменяемые) объекты произвольной сложности.

Для объектной модели требуется поддержка [большого количества] генераторов типа... Например, таких типов, как структура (STRUCT), кортеж (TUPLE), список (LIST), массив (ARRAY), набор (SET), пакет (BAG) и т.д... В.месте с идентификаторами объектов наличие таких генераторов типов означает, что любая структура данных, которая может быть создана в программе приложения, может быть также создана как объект в объектной базе данных, и, кроме того, такая структура объектов видна пользователю. Например, рассмотрим объект (скажем, ЕХ), который является (или обозначает) коллекцией служащих в отделе. Тогда объект EX.может быть реализован как связанный список или как .массив, и пользователи должны будут знать, как именно реализован этот объект, поскольку соответствующие операторы доступа отличаются.

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

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

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



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

24.6. Резюме

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

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

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

Идентификаторы объектов. Не нужны и даже вредны (на уровне модели), поскольку по существу это указатели. См. [24.19], где этот вопрос рассматривается подробно.

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

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

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



1 ... 314 315 316 [ 317 ] 318 319 320 ... 348

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика