Распределенная обработка данных. Найханова Л.В. - 92 стр.

UptoLike

Составители: 

92
Языки запросов объектно-ориентированных баз данных
Потребность в поддержании в объектно-ориентированной СУБД не только языка
(или семейства языков) программирования ООБД, но и развитого языка запросов в
настоящее время осознается практически всеми разработчиками. Система должна
поддерживать легко осваиваемый интерфейс, прямо доступный конечному пользователю
в интерактивном режиме.
Явная навигация как следствие преодоления потери соответствия
Наиболее распространенный подход к организации интерактивных интерфейсов с
объектно-ориентированными системами баз данных основывается на использовании
обходчиков. В этом случае конечный интерфейс обычно является графическим. На экране
отображается схема (или подсхема) ООБД, и пользователь осуществляет доступ к
объектам в навигационном стиле. Некоторые исследователи считают, что в этом случае
разумно игнорировать принцип инкапсуляции объектов и предъявлять пользователю
внутренность объектов. В большинстве существующих систем ООБД подобный
интерфейс существует, но всем понятно, что навигационный язык запросов - это в
некотором смысле шаг назад по сравнению с языками запросов даже реляционных систем.
Ведутся активные поиски подходов к организации декларативных языков запросов к
ООБД.
Ненавигационные языки запросов
Беери отмечает существование трех подходов. Первый подход - языки, являющиеся
объектно-ориентированными расширениями языков запросов реляционных систем.
Наиболее распространены языки с синтаксисом, близким к известному языку SQL. Это
связано, конечно, с общим признанием и чрезвычайно широким распространением этого
языка. В частности, в своем Манифесте третьего поколения СУБД М. Стоунбрекер и его
коллеги по комитету перспективных систем БД утверждают необходимость поддержания
SQL-подобного интерфейса во всех СУБД следующего поколения. Мы уже видели, какое
влияние оказывает эта точка зрения на развитие языка SQL.
Второй подход основывается на построении полного логического объектно-
ориентированного исчисления. По поводу построения такого исчисления имеются
теоретические работы, но законченный и практически реализованный язык запросов нам
неизвестен. Видимо к этому же направлению строго теоретически обоснованных языков
запросов можно отнести и работы, основанные на алгебраической теории категорий.
Наконец, третий подход основывается на применении дедуктивного подхода. В
основном это отражает стремление разработчиков к сближению направлений
дедуктивных и объектно-ориентированных БД.
Независимо от применяемого для разработки языка запросов подхода перед
разработчиками встает одна концептуальная проблема, решение которой не укладывается
в традиционное русло объектно-ориентированного подхода. Понятно, что основой для
формулирования запроса должен служить класс, представляющий в ООБД множество
однотипных объектов. Но что может представлять собой результат запроса? Набор
основных понятий объектно-ориентированного подхода не содержит подходящего к
данному случаю понятия. Обычно из положения выходят, расширяя базовый набор
концепций множества объектов и полагая, что результатом запроса является некоторое
подмножество объектов-экземпляров класса. Это довольно ограничительный подход,
поскольку автоматически исключает возможность наличия в языке запросов средств,
аналогичных реляционному оператору соединения. Кратко рассмотрим особенности
нескольких конкретных декларативных языков запросов к ООБД.
В языке запросов объектно-ориентированной СУБД ORION полностью
поддерживается принцип инкапсуляции объектов. В реализованном варианте языка
     Языки запросов объектно-ориентированных баз данных
     Потребность в поддержании в объектно-ориентированной СУБД не только языка
(или семейства языков) программирования ООБД, но и развитого языка запросов в
настоящее время осознается практически всеми разработчиками. Система должна
поддерживать легко осваиваемый интерфейс, прямо доступный конечному пользователю
в интерактивном режиме.
Явная навигация как следствие преодоления потери соответствия
     Наиболее распространенный подход к организации интерактивных интерфейсов с
объектно-ориентированными системами баз данных основывается на использовании
обходчиков. В этом случае конечный интерфейс обычно является графическим. На экране
отображается схема (или подсхема) ООБД, и пользователь осуществляет доступ к
объектам в навигационном стиле. Некоторые исследователи считают, что в этом случае
разумно игнорировать принцип инкапсуляции объектов и предъявлять пользователю
внутренность объектов. В большинстве существующих систем ООБД подобный
интерфейс существует, но всем понятно, что навигационный язык запросов - это в
некотором смысле шаг назад по сравнению с языками запросов даже реляционных систем.
Ведутся активные поиски подходов к организации декларативных языков запросов к
ООБД.
Ненавигационные языки запросов
     Беери отмечает существование трех подходов. Первый подход - языки, являющиеся
объектно-ориентированными расширениями языков запросов реляционных систем.
Наиболее распространены языки с синтаксисом, близким к известному языку SQL. Это
связано, конечно, с общим признанием и чрезвычайно широким распространением этого
языка. В частности, в своем Манифесте третьего поколения СУБД М. Стоунбрекер и его
коллеги по комитету перспективных систем БД утверждают необходимость поддержания
SQL-подобного интерфейса во всех СУБД следующего поколения. Мы уже видели, какое
влияние оказывает эта точка зрения на развитие языка SQL.
     Второй подход основывается на построении полного логического объектно-
ориентированного исчисления. По поводу построения такого исчисления имеются
теоретические работы, но законченный и практически реализованный язык запросов нам
неизвестен. Видимо к этому же направлению строго теоретически обоснованных языков
запросов можно отнести и работы, основанные на алгебраической теории категорий.
     Наконец, третий подход основывается на применении дедуктивного подхода. В
основном это отражает стремление разработчиков к сближению направлений
дедуктивных и объектно-ориентированных БД.
     Независимо от применяемого для разработки языка запросов подхода перед
разработчиками встает одна концептуальная проблема, решение которой не укладывается
в традиционное русло объектно-ориентированного подхода. Понятно, что основой для
формулирования запроса должен служить класс, представляющий в ООБД множество
однотипных объектов. Но что может представлять собой результат запроса? Набор
основных понятий объектно-ориентированного подхода не содержит подходящего к
данному случаю понятия. Обычно из положения выходят, расширяя базовый набор
концепций множества объектов и полагая, что результатом запроса является некоторое
подмножество объектов-экземпляров класса. Это довольно ограничительный подход,
поскольку автоматически исключает возможность наличия в языке запросов средств,
аналогичных реляционному оператору соединения. Кратко рассмотрим особенности
нескольких конкретных декларативных языков запросов к ООБД.
     В языке запросов объектно-ориентированной СУБД ORION полностью
поддерживается принцип инкапсуляции объектов. В реализованном варианте языка

92