и непосредственно используют выбранные из
манипулируют с объектами ООБД (возможно, с помощью языка
запросов) и непосредственно используют выбранные из базы данных
объекты путем процедурного вызова методов.
Естественно, что язык программирования ООБД сам должен быть
объектно-ориентированным. Следовательно, в нем должны содержаться
средства определения типов и классов с желательной поддержкой
наследования. Но типы и классы, определяемые в прикладной
программе, должны естественно сопрягаться с типами и классами
ООБД. Поэтому вполне закономерно нагрузить язык программирования
ООБД и функцией определения схемы ООБД, т.е. набора типов и
классов, которые впоследствии станут внешней средой прикладных
программ.
При выполнении этой второй функции процедурная часть языка
программирования ООБД служит для определения методов объектов. С
точки зрения прикладного программиста методы могут
рассматриваться как "внешние" атрибуты объекта (в отличие от его
"внутренних" атрибутов, содержащихся в переменных состояния
объекта). Другими словами, в терминах, более привычных для
области баз данных, набор методов объекта в некотором смысле
представляет определенное в реализации представление (view)
объекта.
Заметим, что хотя во многих практически используемых языках ОО
программирования (например, в Си++) допускается прямой доступ к
переменным состояния объекта, если эти переменные соответствующим
образом специфицированы, с точки зрения программиста (ООБД или
приложения) полная инкапсуляция объекта (т.е. доступ к переменным
состояния только через методы объекта) является более
естественной и удобной.
Языки программирования ООБД обеспечивают (или, по крайней мере,
должны обеспечивать) унифицированный стиль программирования ООБД
и приложений. Основная разница состоит в том, что приложение
работает в среде ООБД (и программируется в среде схемы ООБД).
Приложение должно иметь возможность выбирать объекты ООБД. Для
обеспечения мощных и удобных средств прикладного программирования
язык программирования ООБД должен быть более или менее тесно (и
Содержание Назад Вперед