Computerworld, США

Такое впечатление, что язык разметки XML безграничен. В Сети этот универсальный инструмент общего назначения для отображения документов быстро вытесняет HTML. Создатели офисных приложений переходят на форматы документов, основанные на XML. Крупные производители СУБД превращают свои решения в гибриды, поддерживающие как традиционную реляционную схему, так и XML. Последняя тенденция стала еще ярче к концу прошлого года, когда XQuery, XML-аналог SQL, традиционного языка запросов реляционных баз данных, получил в консорциуме World Wide Web Consortium статус официально рекомендованного стандарта.

Джонатан Роби, возглавляющий работы по технологиям XQuery в компании DataDirect Technologies, подразделении Progress Software, в числе первых поддержал стандарт XQuery. Роби ответил на вопросы еженедельника Computerworld.

В каких словах вы объяснили бы ИТ-менеджеру важность XQuery?

Джонатан Роби: «Oracle, Microsoft и IBM инвестируют значительные средства в XQuery. Я думаю, что сегодня ни одна конференция по реляционным базам данных не обходится без упоминания этой технологии»

Если у вас есть объекты, вам нужен объектно-ориентированный язык программирования. Если у вас есть реляционные таблицы, вам нужен SQL. А если у вас есть XML, вам нужен соответствующий язык программирования. Вы можете сочетать разные решения, скажем, использовать Java для программирования реляционных баз данных. Но в этом случае вам придется писать очень много кода, причем достаточно сложного, и мучиться с данными, с которыми вы работаете. В части интеграции данных язык запросов XQuery обладает уникальным преимуществом. Как правило, с появлением каждого нового источника данных приходится изучать новый прикладной программный интерфейс. После чего всерьез взяться за программирование, чтобы интегрировать и объединить эти данные. XQuery вас от всего этого избавит. Он позволит создавать любые запросы к данным, как если бы это были XML-данные и генерировать результат тоже в виде XML. И не нужно разбираться со множеством разных API.

И каково практическое применение всех этих возможностей?

Например, можно ли поддерживать более мощные возможности поиска в Web, чем сейчас предоставляет Google? Для XQuery существует стандарт полнотекстового поиска, но большинство реализаций XQuery сейчас не поддерживают полнотекстовый поиск. Я думаю об XQuery главным образом применительно к ситуации, когда на предприятии имеется множество разнородных источников данных и нужно интегрировать все эти данные для того, чтобы использовать их в Web-сервисах или на Web-сайтах.

Таким образом, XQuery в конце концов позволит избавиться от многочисленных инструментов, применяемых сейчас для интеграции данных, очистки данных и управления мастер-данными?

Безусловно. Для того чтобы объединить данные, применяются процедурные или конвейерные подходы. Все это требует использования программного обеспечения промежуточного слоя и интерфейсов Web-сервисов. Простой декларативный запрос — вот, что вам действительно нужно. Вы можете пропустить множество шагов, обойтись без огромного количества кода и избежать потенциальных ошибок.

Подходит ли XQuery для интеграции данных в оперативном режиме?

В принципе да, но это полностью зависит от реализации. Сейчас для того, чтобы решить эту проблему, можно использовать множество разных возможностей, таких как интерфейс JDBC, SQL и некоторые прикладные программные интерфейсы XML наподобие DOM, а также большой объем процедурного кода. Поскольку приходится взаимодействовать с несколькими системами и использовать процедурный код, оптимизировать все это невозможно. Но XQuery имеет декларативный характер, а это значит, что можно оптимизировать его для работы с различными источниками данных.

Предположим, что у вас уже есть система электронного обмена данными. Не достаточно ли просто хранить данные в этом формате?

Если в системе используется только один формат данных и XML не нужен, то нет особого смысла переходить на XQuery. Хороший тому пример — реляционная таблица. Если вы составляете запросы для того, чтобы создавать таблицы, XQuery не нужен. Однако, если вы составляете запросы для того, чтобы получить XML-документ, то XQuery сбережет много сил.

Таким образом, XML и XQuery избавят от реляционных СУБД и SQL?

Реляционные СУБД, конечно, останутся. Это зрелая технология, и подобные вещи крайне редко становятся ненужными. Но все реляционные базы данных превращаются в составные. Поскольку, если вы создаете Web-сервисы, Web-сайты, Web-публикации, то ваши данные передаются именно в формате XML.

В чем различие между XQuery и рядом других XML-языков, таких как XSLT или XPath? Неужели XQuery лучше?

XPath — это подмножество XQuery. Это способ указать на что-то в XML-документе. XQuery его использует. С XSLT связь значительно сложнее. Оба языка имеют общую основу, они созданы на одной и той же модели данных. XSLT создавался как язык таблицы стилей, способ отобразить что-то в HTML, PostScript или PDF. Все это можно делать и с помощью XQuery, но XSLT для этого намного удобнее. Если же вы хотите иметь язык, реализованный для различных хранилищ данных, для интеграции данных, то XQuery лучше спроектирован.