Введение в системы БД (542480), страница 262
Текст из файла (страница 262)
Мы также считаем, что современным СУБД, основанным на С++, недостает некоторых важных функций баз данных, н чтобы зто компенсировать, нам пришлось предоставлять собственные простые реализации стандартных функций СУБД: ведения журнала транзакций лля прямого восстановления, отслеживания многопоточных транзакций, язык запросов и процессор запросов, а также структуры памяти. В результате мы использовали СУБД, основанную на Сс.+, как объектно-ориентированный диспетчер памяти и, кроме того, встроили систему управления данными, предназначенную для широкомасштабного геномного отображения." 24.30.!а8ас!!вЬ Н.Ч., Х!ао1ес О.!псе8псу Маспсепапсе сп ап ОЬ)есс-Опепсеб РасаЬаве // Ргос ! 8сй !пс.
Сопб оп Чету 1.агйе Раса Вавев. — Чапсоцчег, Сапаба, Ац8цвс, ! 992. В работе предлагается декларативный метод указания ограничений целостности для обьектных систем. При зтом описывается, как компилятор ограничений помешает в методы соответствуюших объектных классов необходимый код проверки целостности. 24.3! Логбап Р. С++ ОЬ)есс РасаЬавев: Ргойгашгйп8 счссЬ сйе ОРМО Бсапбагй — Кеаб!п8, Мазал Ас)дсвоп-%ев1еу, 1997. (Имеется русский вариант втой книги: Джордан Д. Обработка объектных баз данных в С++.
Программирование с использованием стандарта ОРМО.: Пер. с англ. — Мз Издательский дом "Вильямс", 20013 24.32.К!Сег М., К!ш %., Ба81т Ч. Оцегуспй ОЬ)есс-Опепсеб РасаЬавев д Ргос. АСМ 81ОМОР 1пс. Сопб оп Мапа8ешепс оГ Раса. — Бап Рсе8о, СаИ., 1цпе, 1992. В работе предлагается еше один "объектный вариант языка БОЬ" под названием ХБОЬ. 24.33.Ксш %. ОЪ)есс-Ог!епсеб РасаЬаве Бувсегпв: РгошВев, Кеа1!су, апб йе Гвсцге д Ргос. 19й!пс. СопГ. оп Чагу 1.агйе Раса Вавев. — РцЫ1п, Аге!апй Ац8цвс, ! 993.
24.34.Клп %. ОЬвегчас!опв оп сйе ОРМО-93 Ргорова! Рог ап ОЬ)есс-Ог!ел!ей РасаЬаве Ьапйца8е д АСМ 81ОМОР Кесогй — Магсй, 1994. — 23, № 1. 24.35.к!в %, моссегп Расаьаве Бумегпв; тье Оь)есс моде!,!псегорегаьсйсу, апсс Веуопй— Нем УогСс, Н.Ч.: АСМ Ргевв/Кеайпй, Мавв.: Абйвоп-%ев!еу, 1995. 24.36.Кип %., Ьосйотв)су Г.Н. ОЬ)есс-Опепсес) Сопсерм, РасаЬавев апс) Аррйсайопв,— Кеаб!п8, Мавв.: Абазов-%ев!еу, 1989. 24.37Л.ашЬ С., 1.апйв О., Огепвсе!и 1., %еспгеЬ Р.
ТЬе ОЬ)ессБсоге РасаЬаве Бумесп // САСМ. — ОссоЬег, 199! . — 34, № 10, 24.38Л.ооппв М.Е.Б. ОЬ)есс РасаЬавев: Еввепс!а!в. — Кеас)!п8, Мавв.: АсЫ!воп-%ев!еу, 1995. 24.39.Ьуп8Ьаей Р, ес а1. ОБОЬ; Ьапйцайе Рог ОЬ1есс РасаЬавев. — Тесйпьса1 Кероп НР1.- РТР-91-4. — Несв1ец-Расссагс) Сошрапу, !апцагу, 1991. См. комментарий к !24.6). 992 Часть Р1 Объектные и объектно-реляс/ионные базы данных 24.40. Меуег В. ТЬе Рцшге оГОЬ]есг ТесЬпо!о8у //!ЕЕЕ Сошрцгег. — )аппагу, 1998. — 31, №! .
"Будущее [объектных] баз данных — это интересная тема для размышлений... Изготовители реляционных баз данных с 1986 года старались подавить рост [объектных] баз данных с помощью упреждающих извешений... Десять лет спустя эксперты [объектных баз данных] будут говорить вам, что предложения от основных производителей реляционных СУБД... еще далеки от реальных потребностей... Рынок объектных баз данных будет продолжать расти, но часть рынка традиционных баз данных останется." 24.41.рагзауе К., СГП8пеП М., Коьйайап Б., )чоп8 Н, !пгей18епг Г)агаЬазез.
— Хечч Уог1с, Ь!.У.: )ойп 'зч'Пеу ег Болз, 1989. 24.42.Роц]очи!!з А., Бщай С, !пчезбйабоп оГ А18еЬгагс ()вегу Оргнпйабоп Гог РагаЬазе Ргойгащпйпй Еап8ца8ез // Ргос. 20ГЬ!пг. СопГ. оп Магу Еаг е Васа Вазез. — Банг!айо, СЬПе, БергегпЬег, 1994. 24.43.цогЫ!с1с ХР. БсЬеща Ечо1пгюп 1п Эа1аЬазе Буьчещз — Ап Аппогагеб В!Ы!о гарйу // АСМ 81ОМОР. — ОесешЬег, 1992. — йесогб 21, № 4. В традиционных СУБД обычно поддерживаются только очень простые изменения существующего макета СУБД (например, добавление нового атрибута к существующей базовой переменной-отношению). Однако в отдельных случаях требуется выполнить более сложные изменения, и в некоторых объектных прототипах эта проблема исследована достаточно глубоко. Причем в случае объектной системы она становится более сложной, поскольку сама по себе такая система имеет более сложный макет.
В [24.4] обсуждается система Ой!ОЫ, которая служит прототипом объектной системы, и приводится перечень основных возможных изменений макета. Отметим, что некоторые из них (какие?) вводят в заблуждение, не отличая модель от реализации. ° Изменения объектного класса 1. Изменения переменной экземпляра: ° добавление переменной экземпляра; ° удаление переменной экземпляра; ° переименование переменной экземпляра; ° изменение принятого по умолчанию значения переменной экземпляра; ° изменение типа данных переменной экземпляра; ° изменение источника наследования переменной экземпляра.
2. Изменения метода: ° добавление метода; ' удаление метода; ° переименование метода; ° изменение кода метода; ° изменение источника наследования метода. ° Изменения в иерархии классов (предполагается множественное наследование): ° добавление класса а к списку суперклассов класса В; ° удаление класса а из списка суперклассов класса В. Глава 24. Объектные базы данных 993 ° Изменения общего макета; ° добавление класса (в произвольном месте); ° удаление класса (в произвольном месте); ° переименование класса; ° разбиение класса; ° слияние классов, Поскольку поддержка представлений обычно не включается в "объектную модель", не совсем ясно, насколько сильным окажется влияние таких изменений на прозрачность системы. Возможность внесения изменений в макет системы представляет собой достаточно сложную проблему именно из-за того, что в объектных системах осуществляется последовательная обработка записей.
Как отмечается в [24.34], если при внесении изменений индексы или данные распределены по разным группам (кластерам), то никаких способов автоматически получить преимушества от таких изменений с помощью методов не существует. Более того, постепенное развитие схемы является еше одним требованием объектной системы, поскольку многие решения, которые могли бы быть решениями администратора базы данных (или даже решениями СУБД!) в реляционной базе данных, в объектной системе становятся решениями программиста приложения (см.
[24.44]). В частности, приведение в соответствие производительности системы может также повлечь перепроектирование макета (опять же, см. [24.44]). 24.44.$агассо С.М. Уггг]1!п8 ап ОЬ)есг 0ВМЯ Арр1гсагюп (в двух частях) 77 !пГо0В.— 1993-1994. — 7, № 4; 1пГо0В. — 1994. — 8, № 1. Приводятся несложные, но достаточно полные и информативные примеры программ. 24.45.5Ьазч О.М., Ъ]опйс Я.В. А Оиегу А!КеЬга Гог ОЬ]есг-Ог!епгег( 0агаЬазез 77 Ргос. 6ГЬ 1ЕЕЕ 1пг, СопГ. оп 0ага Епй[пеег!п8. — РеЬгцагу, 1990. (Опубликована также в виде технического отчета: ТесЬп!са1 Кероп ТК С5-89-19, Оерь о! Сощрцгег Яс!епсе.— РгочЫепсе, К.!л Вгоип ()п]чегз!гу, Магсй, 1989.) Эта статья подтверждает мнение автора данной книги о том, что "любая объектная алгебра" является сложной из-за сложной организации самих объектов.
В частности, для выполнения операции сравнения иерархических объектов с произвольной сложностью вложенных уровней потребуется очень тщательная организация всего этого процесса. Основная идея статьи заключается в том, что каждый оператор алгебры запросов приводит к созланию отношения, каждый кортеж которого содержит идентификаторы некоторых объектов базы данных.
В случае операции соединения, например, каждый кортеж будет содержать идентификаторы объектов, которые соответствуют друг другу для заданного условия соединения. Эти кортежи не наследуют никаких методов объектов-компонентов. 24.46.5Ь!раап 0.9г'. ТЬе Рппсг!она! Оага Мог!е1 апг! Гпе Оага 1ап8цайе 0АР(.ЕХ /7 АСМ ТО08. — МагсЬ, 1981. — 6, № 1. (Переиздано; М. БгопеЬга!сег (ег!.). Кеаг!!п8з |п 0агаЬазе Бузгещз (2-пг! ег!!г!оп).
— Бап Магео, Са](Г; Мог8ап КапГщапп, 1994.) Существует несколько попыток создания систем, в основе которых вместо отношений используются функции, и среди них наиболее известной является система 0АРЕЕХ. Функциональные подходы обладают некоторыми чертами, характерными для объектных систем, включая, в частности, стиль адресации объектов (с помощью 994 Часть г7. Объектные и объектно-реляционные базы данных указания пути), которые функционально относятся к другим объектам (которые, в свою очередь, также относятся к другим объектам, и т.д.). Обратите внимание, однако, что термин "функция" в этих так называемых функциональных моделях не имеет никакого отношения к математической функции.
Например, такая функция вполне может быть многозначной. Практически традиционное понятие функции должно претерпеть значительные изменения для того, чтобы удовлетворить всем требованиям, которые предъявляются в контексте "функциональной модели данных". 24.47.5се!и 1., Ма!ег О. Соисерса !и ОЬ)есс-Ог!еисес( Оаса Маиайешеис!! ОВРскО. — Арп1, 1988. — 1, № 4. Прекрасный учебный материал по объектным концепциям, представленный создателями системы беш5соие. 24.48.Тз!сЬпсгй О.С., Ьйегзсгазг О.М. Осгесбоиз си ОО схезеагсЬ (опубликовано в (24.361). В этой статье также подтверждается высказанная автором настоящей книги мысль об отсутствии едино~на мнений в области объектных подходов: "...разногласия существуют по самым основным понятиям, например:?Что такое объект?..
". Однако причин для беспокойства нет, поскольку нестрогие определения неизбежны, а порой они даже крайне желательны во время динамичного развития научных исследований. Они должны стать и неизбежно станут строгими спустя некоторое время". Однако объектные концепции известны уже более 30 лет! — фактически они предшествовали реляционной модели.