|
"Объектны" ли объектные расширения языка SQL?
1. "Сближение" SQL и ODMG
Появление в стандарте SQL:1999 новых возможностей – определяемых пользователями
типов данных (User Defined Type, UDT) и типизированных таблиц,
которые получили название объектных расширений языка SQL,
многими было воспринято как сближение "реляционной" и объектной< моделей данных. Этому способствуют
особенности терминологии стандартов SQL:1999 и SQL:2003 , в которых значения UDT временами называют
"экземплярами" (instance), различают "инстанциируемые" и
"неинстанциируемые" UDT, а строки типизированных таблиц и вовсе
иногда называют "объектами".
На "сближение" моделей SQL и ODMG, казалось бы, указывает и
возрастающая синтаксическая близость языков запросов SQL и OQL . Пусть, например, имеется простая концептуальная
схема базы данных, представленная в виде диаграммы классов UML (рис.
1).
 Рис. 1. Диаграмма классов "отделы-служащие"
На этой диаграмме классы Emp ("служащие") и Dept ("отделы")
связаны двумя ассоциациями, одна из которых (верхняя) устанавливает
двунаправленное соответствие "n-к-одному" между служащими и
отделами, в которых они работают, а вторая – взаимнооднозначное
соответствие между отделами и их руководителями, которые должны
являться служащими.
Понятно, что в соответствии с диаграммой с рис. 1 можно
определить как схему объектной базы данных в модели ODMG, так и
схему "объектно-реляционной" базы данных в модели SQL. В первом
случае могут быть определены атомарные объектные типы Emp и Dept с
одноименными экстентами; во втором – структурные UDT Emp_T и Dept_T,
а также типизированные таблицы Emp и Dept. Предположим, что
требуется найти имена всех руководителей отделов, в которых работает
хотя бы один служащий, получающий заработную плату свыше 20000 руб.
Тогда мы могли бы получить следующие формулировки запроса на языках
OQL и SQL соответственно:
OQL: SELECT DISTINCT Emp.works_for.managed_by.empName
FROM Emp
WHERE Emp.empSalary > 20000.00
SQL: SELECT DISTINCT Emp→works_for→managed_by→empName
FROM Emp
WHERE Emp.empSalary > 20000.00
В обоих случаях результатом запроса будет множество символьных
строк, представляющих имена руководителей отделов. "Точечная"
нотация в OQL-запросе и "стрелочная" нотация в SQL-запросе
изображают переходы по ассоциациями исходной диаграммы классов.
Условие в OQL-запросе ограничивает множество объектов-служащих в
экстенте Emp. Условие в SQL-запросе ограничивает множество строк-служащих в типизированной таблице
Emp.
Как кажется, этот пример заставляет придти к выводу, что строка
типизированной таблицы SQL является прямым аналогом объекта ODMG, а
типизированная таблица SQL – это прямой аналог экстента ODMG. Цель
данной статьи состоит в том, чтобы показать, что это сходство
является только внешним, чисто синтаксическим. На самом деле, между
моделями ODMG и SQL имеются фундаментальные различия, которые
невозможно преодолеть путем синтаксических расширений языка.
В основе обеих моделей лежит соответствующая система типов
данных. Для обоснования основного утверждения данной статьи
необходимо произвести краткий экскурс в системы типов ODMG и
SQL.
2. Объектная модель ODMG 3.0
Консорциум ODMG (http://www.odmg.org/) был образован в 1991 г.
(тогда эта аббревиатура раскрывалась как Object Database
Management Group, но впоследствии приобрела более широкую
трактовку – Object Data Management Group). Консорциум ODMG
был тесно связан с гораздо более многочисленным консорциумом OMG
(Object Management Group, http://www.omg.org/), который был образован двумя
годами раньше. Основной исходной целью ODMG была выработка
промышленного стандарта объектно-ориентированных баз данных (общей
модели). За основу была принята базовая объектная модель OMG COM
(Core Object Model). В течение десятилетнего существования< ODMG опубликовала три базовых версии
стандарта, последняя из которых называется ODMG 3.0 .
Модель ODMG является объектной моделью данных, включающей
возможность описания как объектов, так и литеральных значений. На
разработку модели повлиял тот факт, что она предназначена для
поддержки работы с базами данных, так что особо важной является
эффективность доступа к данным. Модель ODMG подстраивается под
специфику систем баз данных следующим образом:
для баз данных, схем и подсхем обеспечивается набор встроенных
объектных типов;
модель включает ряд встроенных структурных типов, позволяющих
применять традиционные методы моделирования баз данных;
модель одновременно включает понятия объектов и
литералов; в модели связи между объектами
отличаются от атрибутов объектов.
2.1 Объекты и литералы
Одним из важнейших отличий объектов от значений является наличие
у объекта уникального идентификатора (объекты обладают свойством
индивидуальности, или идентифицируемости –
identity). Накладные расходы, требуемые для обращения к
объекту по его идентификатору с целью получения доступа к базовым
значениям данных, могут весьма сильно замедлить работу приложений.
Поэтому в модели ODMG допускается описание всех данных в терминах
объектов и использование традиционного вида значений, которые в
модели называются литеральными значениями. Таким образом,
возраст человека может задаваться целочисленным литералом, а не
объектом, имеющим свойство
www.sdteam.com
Базы данных 08-09-2006 Oracle разработала архитектуру Oracle Application Integration Architecture for Communications 24-11-2007 Базы данных Подразделение Oracle Communications разработало архитектуру Oracle Application Integration Architecture for Communications и выпустило три первых пакета Process Integration Pack, предлагающих коммуникационным компаниям готовые средства интеграции процессов для приложений Oracle Siebel CRM, Oracle Communications Billing and Revenue Management и Oracle Financials. Также разработано решение Oracle Communications Unified Inventory Management. Oracle ...
Oracle ставит перед BEA ультиматум 24-10-2007 Базы данных Корпорация Oracle сообщила, что ее предложение о покупке компании BEA Systems действительно до предстоящего воскресенья, в противном случае Oracle просто купит несколько более мелких компаний, которые уже дали свое соглашение на поглощение.Напомним, что две недели назад BEA Systems распространила официальный ответ на предложение Oracle о покупке. В BEA сочли предложенные 6,66 млрд долларов недостаточными, а премию в 25% - слишком скромной. Ре...
Ларри Эллисон: Oracle будет активно поглощать компании 27-06-2007 Базы данных По словам основателя и главного исполнительного директора Oracle Ларри Эллисона, для того, чтобы выполнить стратегический план по продажам программных продуктов, компании предстоит проводить по одному поглощению в месяц на протяжении предстоящих двух с половиной лет.Выступая перед 6 000 менеджерами по продажам Oracle, Эллисон заявил, что компания намерена стать крупнейшим корпоративным покупателем в мире. Однако в результате столь агрессивной пол... |