Базы данных. Вводный курс


Манипулирование данными в объектной модели


В стандарте ODMG в качестве базового средства манипулирования объектными базами данных предлагается язык OQL (Object Query Language). Это небольшой, но достаточно сложный язык запросов. Разработчики в целом характеризуют его следующим образом:

  • OQL опирается на объектную модель ODMG (имеется в виду, что в нем поддерживаются средства доступа ко всем возможным структурам данных, допускаемых в структурной части модели).
  • OQL очень близок к SQL/92. Расширения относятся к объектно-ориентированным понятиям, таким как сложные объекты, объектные идентификаторы, путевые выражения, полиморфизм, вызов операций и отложенное связывание.

  • В OQL обеспечиваются высокоуровневые примитивы для работы с множествами объектов, но, кроме того, имеются настолько же эффективные примитивы для работы со структурами, списками и массивами.

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

  • OQL не является вычислительно полным языком. Он представляет собой простой язык запросов.

  • Операторы языка OQL могут вызываться из любого языка программирования, для которого в стандарте ODMG определены правила связывания. И, наоборот, в запросах OQL могут присутствовать вызовы операций, запрограммированных на этих языках.

  • В OQL не определяются явные операции обновления, а используются вызовы операций, определенных в объектах для целей обновления.

  • В OQL обеспечивается декларативный доступ к объектам. По этой причине OQL-запросы могут хорошо оптимизироваться.
  • Можно легко определить формальную семантику OQL.

Объем этой лекции не позволяет привести развернутое описание языка OQL. Приведем лишь один характерный пример.

Получить номера руководителей отделов и тех служащих их отделов, зарплата которых превышает 20000 руб.

SELECT DISTINCT STRUCT ( ОТД_РУК: D.ОТД_РУК,



Начало  Назад  Вперед



Книжный магазин