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

UptoLike

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

90
систем, где при создании приложения приходится одновременно использовать
ориентированный на работу со скалярными значениями процедурный язык
программирования и ориентированный на работу со множествами декларативный язык
запросов (это принято называть потерей соответствия - impedance mismatch), языковая
среда ООБД - это объектно-ориентированная система программирования, естественно
включающая средства работы с долговременными объектами. "Естественность"
включения средств работы с БД в язык программирования означает, что работа с
долговременными (хранимыми во внешней БД) объектами должна происходить на основе
тех же синтаксических конструкций (и с той же семантикой), что и работа со временными,
существующими только во время работы программы объектами.
Эта сторона ООБД наиболее близка родственному направлению языков
программирования баз данных. Языки программирования ООБД и БД во многих своих
чертах различаются только терминологически; существенным отличием является лишь
поддержание в языках первого класса подхода к наследованию классов. Кроме того, языки
второго класса, как правило, более развиты как в отношении системы типов, так и в
отношении управляющих конструкций.
Другим аспектом языкового окружения ООБД является потребность в языках
запросов, которые можно было бы использовать в интерактивном режиме. Если доступ к
объектам внешней БД в языках программирования ООБД носит в основном
навигационный характер, то для языков запросов более удобен декларативный стиль.
Декларативные языки запросов к ООБД менее развиты, чем языки программирования
ООБД, и при их реализации возникают существенные проблемы. В следующем разделе
мы рассмотрим имеющиеся подходы и их ограничения более подробно. Но начнем с
языков программирования ООБД.
Языки программирования ООБД как объектно-ориентированные языки с
поддержкой стабильных (persistent) объектов
К настоящему моменту нам неизвестен какой-либо язык программирования ООБД,
который был бы спроектирован целиком заново, начиная с нуля. Естественным подходом
к построению такого языка было использование (с необходимыми расширениями)
некоторого существующего объектно-ориентированного языка. Начало расцвета
направления ООБД совпало с пиком популярности языка Smalltalk-80. Этот язык оказал
большое влияние на разработку первых систем ООБД, и, в частности, использовался в
качестве языка программирования. Во многом опирается на Smalltalk и известная
коммерчески доступная система GemStone.
Трудности с эффективной практической реализацией языка Smalltalk побудили
разработчиков систем ООБД к поиску альтернативных базовых языков. Известная
близость объектно-ориентированного и функционального подходов к программированию
позволяет достаточно успешно опираться на функциональные языки программирования.
В частности, язык Лисп (Common Lisp) является основой проекта ORION. В этом проекте
Лисп является и инструментальным языком, и базой объектно-ориентированного языка
программирования в среде ORION.
Потребности в еще более эффективной реализации заставляют использовать в
качестве основы объектно-ориентированного языка языки более низкого уровня.
Например, в системе VBASE наряду со специально разработанным языком TDL,
предназначенным для определения типов, используется объектно-ориентированное
расширение языка Си - COP (C Object Processor). В уже упоминавшемся проекте O2
наряду с функциональным объектно-ориентированным языком программирования
используются два объектно-ориентированных расширения языков Бейсик и Си. При этом,
насколько можно судить по публикациям, наибольшее распространение среди
пользователей этой системы (она уже коммерчески доступна) получил язык CO2,
являющийся расширением языка Си. Возможно это связано лишь с широкой (и все более
систем, где при создании приложения приходится одновременно использовать
ориентированный на работу со скалярными значениями процедурный язык
программирования и ориентированный на работу со множествами декларативный язык
запросов (это принято называть потерей соответствия - impedance mismatch), языковая
среда ООБД - это объектно-ориентированная система программирования, естественно
включающая средства работы с долговременными объектами. "Естественность"
включения средств работы с БД в язык программирования означает, что работа с
долговременными (хранимыми во внешней БД) объектами должна происходить на основе
тех же синтаксических конструкций (и с той же семантикой), что и работа со временными,
существующими только во время работы программы объектами.
     Эта сторона ООБД наиболее близка родственному направлению языков
программирования баз данных. Языки программирования ООБД и БД во многих своих
чертах различаются только терминологически; существенным отличием является лишь
поддержание в языках первого класса подхода к наследованию классов. Кроме того, языки
второго класса, как правило, более развиты как в отношении системы типов, так и в
отношении управляющих конструкций.
     Другим аспектом языкового окружения ООБД является потребность в языках
запросов, которые можно было бы использовать в интерактивном режиме. Если доступ к
объектам внешней БД в языках программирования ООБД носит в основном
навигационный характер, то для языков запросов более удобен декларативный стиль.
Декларативные языки запросов к ООБД менее развиты, чем языки программирования
ООБД, и при их реализации возникают существенные проблемы. В следующем разделе
мы рассмотрим имеющиеся подходы и их ограничения более подробно. Но начнем с
языков программирования ООБД.
Языки программирования ООБД как объектно-ориентированные языки с
поддержкой стабильных (persistent) объектов
     К настоящему моменту нам неизвестен какой-либо язык программирования ООБД,
который был бы спроектирован целиком заново, начиная с нуля. Естественным подходом
к построению такого языка было использование (с необходимыми расширениями)
некоторого существующего объектно-ориентированного языка. Начало расцвета
направления ООБД совпало с пиком популярности языка Smalltalk-80. Этот язык оказал
большое влияние на разработку первых систем ООБД, и, в частности, использовался в
качестве языка программирования. Во многом опирается на Smalltalk и известная
коммерчески доступная система GemStone.
     Трудности с эффективной практической реализацией языка Smalltalk побудили
разработчиков систем ООБД к поиску альтернативных базовых языков. Известная
близость объектно-ориентированного и функционального подходов к программированию
позволяет достаточно успешно опираться на функциональные языки программирования.
В частности, язык Лисп (Common Lisp) является основой проекта ORION. В этом проекте
Лисп является и инструментальным языком, и базой объектно-ориентированного языка
программирования в среде ORION.
     Потребности в еще более эффективной реализации заставляют использовать в
качестве основы объектно-ориентированного языка языки более низкого уровня.
Например, в системе VBASE наряду со специально разработанным языком TDL,
предназначенным для определения типов, используется объектно-ориентированное
расширение языка Си - COP (C Object Processor). В уже упоминавшемся проекте O2
наряду с функциональным объектно-ориентированным языком программирования
используются два объектно-ориентированных расширения языков Бейсик и Си. При этом,
насколько можно судить по публикациям, наибольшее распространение среди
пользователей этой системы (она уже коммерчески доступна) получил язык CO2,
являющийся расширением языка Си. Возможно это связано лишь с широкой (и все более

90