"ЧИП-УКРАИНА" 5/2003

Стандартизация описания и представления информации

НА ГРАНИЦЕ СТИХИЙ

Связать воидино информационные ресурсы, позволить приложениям общаться на одном языке и установить связи между объектами данных способен единый стандарт, на роль которого уже давно претендует XML.

Дмитрий ЛАНДЭ
заместитель директора
Информационного центра "ЭЛВИСТИ"
dwl@visti.net

Интенсивный рост сети Интернет и ее ресурсов обусловил появление ряда проблем-парадоксов, среди которых можно выделить две главных. С одной стороны, это не всегда высокая скорость доступа к информационным ресурсам как по причине узости "последней мили", так и по причине перегруженности серверов. С другой стороны, это трудность нахождения действительно необходимой информации, даже если она присутствует в Сети с избытком. Оба этих явления, главным образом, объясняются природой основного языка представления информационных ресурсов Интернет - Hypertext Markup Language или HTML.

На языке HTML составлена большая часть вэб-сайтов и отдельных страниц в Интернете. Тем не менее, этот язык не лишен многих ограничений по отображению символов, не входящих в стандартные таблицы кодировок, - например, для отображения музыкальных нот или математических формул.

Кроме того, изначально HTML не предполагал серьезного интерактивного взаимодействия. Возможности подключения CGI- форм или JavaScript- приложений лишь частично решают эту проблему. Поэтому приходится согласиться с тем, что для HTML известная парадигма "What You See Is What You Get" справедлива в интерпретации: "Вы получите не более того, чем Вы видите".

Для решения проблем внешнего и смыслового описания документов была начата разработка нового стандарта хранения и обеспечения доступа к информации (прежде всего сетевой), который получил наименование XML - eXtensible Markup Language (расширяемый язык разметки). Благодаря своей простоте и расширяемости XML практически сразу же получил широкое распространение и послужил основой создания других специализированных языков разметки - CML, MathML, WML и десятков других. Даже традиционный HTML можно рассматривать как дочерний язык XML, поскольку его описание также укладывается в стандарт XML.

Необходимо отметить, что прямым прорадителем XML был все же не HTML, а стандартный общий язык разметки (Standard Generalized Markup Language - SGML) - язык для описания языков, т.е. метаязык, являющийся промышленным стандартом для издательских приложений. В свое время HTML был определен на основе SGML, который достаточно сложно автоматизируется ввиду наличия широких "оформительских" возможностей. Создатели языка XML убрали эти изобразительные "излишества", в результате чего пришли к простому, эффективному и наглядному метаязыку. В отличие от большинства подобных языков, XML одинаково понятны и человеку, и программам обработки - парсерам.

При создании XML-документа нет ограниченений фиксированным набором элементов разметки - не существует заранее определенного набора тэгов. Все тэги, необходимые для описания документа, разработчик может определять самостоятельно. При этом тэги XML не предлагают решений того, как информация должна выглядеть на экране. При публикации можно применять множества правил, собранных в листы стилей для автоматического форматирования документов. Для этого был разработан специальный расширяемый язык стилей (Extensible Stylesheet Language или XSL).

Безусловное преимущество XML - это использование им современного стандарта кодировки символов Unicode, который позволяет комбинировать тексты, написанные на основных языках мира (в том числе имеется поддержка кириллицы), в одном документе. Тем самым XML дает возможность с легкостью обмениваться информацией вне национальных границ.

Системы текстового поиска

Для нахождения информации в Интернет, чаще всего представленной в формате HTML, используются специальные средства - сетевые информационно- поисковые системы (ИПС). Очень часто возникает вопрос: как соотносятся эти системы, работающие с потоками документов в форматах гипертекстовой разметки и популярные сегодня реляционные системы управления базами данных (СУБД)? Решают ли СУБД такого класса задачи поиска информации в HTML- формате, и будут ли они эффективны в случае использования XML.

Современные реляционные СУБД поддерживают обработку запросов в стандарте SQL, позволяющем проводить поиск в рамках реляционной модели. То есть стандартные средства этих систем обеспечивают эффективный поиск по совокупностям форматных полей в рамках двухмерной таблицы. Полнотекстовый же поиск сводится к нахождению отдельных слов, их комбинаций, словосочетаний в рамках одного или нескольких текстовых полей (ячеек или тэгов), порой значительного размера.

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

Если в контексте этого утверждения рассматривать программное обеспечение таких СУБД, как Oracle, Adabas, Informix, DB2, с одной стороны, и программно- технологические решения сетевых ИПС, таких как Alltheweb, AltaVista, Google, Yahoo!, Exite, с другой стороны, то проследить корреляцию между этими понятиями действительно трудно. Стоит отметить, что необходимость решения задачи полнотекстового поиска для навигации в сетевых ресурсах является всего лишь одной из предпосылок становления нового подхода к представлению информации в Интернете.

XML как модель данных

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

При создании СУБД нового поколения для XML-модели данных (их часто называют native - естественными) разработчики исходят из необходимости отражения операций, которые совершаются с документами в реальной жизни. Такие базы данных в качестве модели используют XML- модель данных. С одной стороны, именно такие базы данных намного лучше подходят для хранения XML-контена, чем широко распространенные сейчас реляционные СУБД. В то же время такие компании, как Oracle, IBM и Microsoft, разрабатывают технологии, улучшающие возможности работы их реляционных СУБД с XML-документами. При этом, конечно, следует отличать XML- ориентированные базы данных от реляционных и смешанных, которые также основаны на реляционной модели, но поддерживают обмен данными на языке XML (такие БД также называют постреляционными).

Ингредиенты XML

Под XML подразумевается совокупность трех тесно связанных стандартов. Сюда входит сам XML как средство описания структуры документов, XSL как средство преобразования XML- документов для отображения; а также XLL - расширяемый язык связывания документов. Последний позволяет устанавливать многонаправленные ссылки и ссылаться не на весь документ, а на его конкретные его элементы. Кроме того, структурированные данные документа в XML отделены от способа их логико- графического представления в виде списков, параграфов, таблиц, диядернызхаграмм и. т.д., а логическое представление от конкретного внешнего вида (стиля).

Для разработчиков приложений существует спецификация программного интерфейса XML OM (например, компания Microsoft использовала его в виде Document Object Model - DOM).

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

Кроме того технология XML-СУБД полностью соответствует концепции корпоративных хранилищ данных. Обычно такие комплексы физически представляют собой совокупность нескольких, связанных между собой баз данных, содержащих, помимо прочего, аналитическую информацию, необходимую для принятия решений. В XML-базах данных каждый документ может быть интерпретирован как аналитический, то есть представляющий собой ответ на запрос, непосредственно аналитический расчет, входную или выходную форму. Возможность преобразования XML-документов в реляционное представление и обратно позволяет подсоединить к XML-СУБД реляционные базы данных из уже измеющихся корпоративных хранилищ. Кроме того, технология XML предоставляет возможность создания логически объединенных через Интернет/интранет децентрализованных баз данных.

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

Так, в новой версии СУБД Oracle 9i (www.oracle.com), появилось множество новых возможностей, включая Data Mining (автоматическое исследование данных), персонализацию и работу с XML. Теперь сервер Oracle является не только объектно-реляционным, но и позволяет хранить и обрабатывать XML данные. В свою очередь компания IBM (www.ibm.com) создала расширение своей СУБД DB2 Universal Database для представления и обработки слабоструктурированных данных DB2 XML Extender, предназначенное прежде всего для работы с XML данными. Кроме того, IBM объявила о создании новой технологии Xperanto, призванной облегчить в реляционнных базах данных, в документах формата XML в плоских (текстовых) файлах, электронных таблицах и прочих источниках данных, как если бы они были организованы в единую базу данных. В своей работе Xperanto использует язык XQuery для поиска информации в XML-документах. За исключением языка XQuery, все технологии, применяемые в Xperanto, уже применялись в последней версии СУБД IBM DB2.

XML- решения для хранения данных

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

Tamino Компания Software AG (www.softwareag.com) получила широкую известность благодаря своей СУБД Adabas. Сегодня основной вектор деятельности компании направлен на развитие технологий XML, и прежде на ее новый бренд - XML-сервер Tamino. Базовой технологией этого сервера является X-машина - технология хранения информации, служащая для хранения и обслуживания запросов XML-документов. При обработке XQL- запроса X-машина может обращаться как к внутреннему репозиторию XML- данных (XML Store), так и к внешним источникам через X-Node и серверные расширения. Концепция X-узла (X-Node), реализованная в Tamino, является интерфейсом для доступа к существующим традиционным базам данных. Кролме того, в ядре Tamino также представлены средства полнотекстового поиска, которые позволяют создавать интеллектуальные поисковые машины, обеспечивающие поиск с учетом структуры документа, что делает Tamino особенно привлекательным для Интернет.

В частности, сервер Tamino включает XML-СУБД, позволяющую оперировать XML-объектами. Эта СУБД обеспечивает доступ ко всем популярным типам данных, в том числе и из традиционных СУБД, а также их конвертацию в XML- объекты. В Tamino использована философия открытых СУБД, а обращения к нему возможны через стандартные интерфейсы: OLE DB, DCOM, ODBC и JDBC. Tamino поддерживает XML V.1.0, язык ссылок XLL, таблицы стилей XSL и подмножество XQL, концепцию пространства имен XML, а для описания схем XML-данных используется язык описания схем Tamino (Tamino Schema Language).

Языки запросов и организация XML- поиска

Параллельно с XML было начата разработка стандарта для метаданных - схемы описания источников (Resource Description Framework или RDF). Предполагается, что в будущем узлы метаданных RDF, распространенные по всей Сети, обеспечат значительно более высокое качество и скорость поиска данных в Интернет, т.е. спецификация RDF будет играть роль концептуальной схемы базы данных Глобальной сети.

Гипертекстовая среда обеспечивает и другие способы нахождения нужной информации. Так, сетевые гиперссылки также предполагается усилить в рамках XML- технологии путем ввода специальных ссылок (Xlink), которые должны обеспечить переход по списку возможных назначений. Xlink позволит использовать непрямые связи, которые указывают на данные в центральной базе данных, а не связывает сами страницы. В случае изменения адреса страницы ее автор сможет актуализировать все связи, которые указывают на нее, изменяя всего одну запись.

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

Ipedo 3 XML Information Hub Основным компонентом информационного узла от компании Ipedo является СУБД Ipedo XML Database (www.ipedo.com). Эта система работает внутри основной памяти сервера баз данных, при этом она способна осуществлять на XML-основе поиск и генерацию вэб-страниц. В Ipedo XML Database используется стандарт запросов W3C Xpath, который позволяет производить запросы к базе XML-документов непосредственно в синтаксисе XML. Кроме того, эта СУБД включает в себя механизм XSLT, объединяющий доступ к данным и их трансформацию в единый процесс. К числу плюсов этого продукта стоит отнести его работу на J2EE-совместимых вэб-серверах приложений под управлением Windows 2000, Windows NT, Sun Solaris и Red Hat Linux.

СУБД Ipedo XML Database включает функцию поиска в свободной форме, которая позволяет находить текст, игнорируя включенные в символьные последовательности теги XML. Кроме того, система обеспечивает поиск информации, представленной в графическом формате Scalable Vector Graphics, базирующемся на спецификациях XML. На СУБД возложена также задача преобразования документов XML в форматы других приложений. К примеру, один и тот же каталог динамически может быть преобразован в формат HTML или в формат WML, поддерживаемый беспроводными устройствами.

eXcelon XML- СУБД Extensible Information Server (eXcelon) является детищем компании Excelon (www.exceloncorp.com). В отличии от большинства других XML- СУБД, эта СУБД способна работать с отдельными сегментами XML- документов, а не только с документами целиком. Сервер eXcelon в первую очередь предназначен для создания интернет-приложений. Этот сервер был разработан на базе объектной СУБД ObjectStore компании Object Design и обеспечивает унифицированное ведение данных в XML-формате, извлекая их из различных источников, конвертируя в XML и сохраняя в собственном репозитории (XML Store). XML-данные, сохраненные в репозитории, индексируются для обеспечения эффективного доступа к ним.

Следует отметить, что c помощью специального компонента - eXcelon вэб- расширение (eXcelon Web Extension), система eXcelon может подключаться к вэб-серверу. Более того, eXcelon может функционировать в качестве расширенной файловой системы для вэб-сервера, обеспечивая генерацию динамических страниц.

XQEngine (www.fatdog.com) - это полнотекстовая поисковая система для XML-документов. Она позволяет осуществлять поиск по коллекции XML-документов, используя в качестве запроса логические выражения, составленные из ключевых слов, которыми определяется искомая информация, в комбинации с XQL-запросом. В интерфейсе реализованы методы, которые имеют непосредственное отношение к поисковым системам. Так, например, здесь применяются функции для задания так называемых стоп-слов, указания размера, местоположения и других параметров индексного файла, а также имеется возможность определять, что из документа войдет в индексный файл. XQEngine реализует задание запроса с помощью языка XQL, что при реальной работе приводит к необходимости знать структуру XML- документа.

XMS Компания NeoCore (www.neocore.com) позиционирует СУБД XMS (XML Management System) как самоконструирующуюся и естественную (native). По заявлению разработчиков продукт нацелен на поиск информации больше, чем на поиск отдельных документов. При этом достигается более высокая скорость обработки каждого элемента XML, хранящегося в естественном виде с сохранением иерархии отношений. Система XMS обеспечивает самоописание структуры базы данных, не содержащей строк и колонок. Эта база данных автоматически индескируется, а также содержит широкие возможности расширения и модификации. Язык запросов здесь также базируется на XQuery и Xpath и обеспечивает поиск документов, их фрагментов и отдельных элементов.

Cache Постреляционная СУБД американской компании InterSystems (www.intersystems.com) включает в себя многомернный сервер данных Cache для доступа к реляционным данным через SQL и сервер приложений Cache.

Помимо совместимости с предыдущими продуктами InterSystems и с традиционными реляционными СУБД, комплекс Cash позволяет автоматически проецировать данные в XML- документы. Такой "Проецируемый" XML может использоваться как в виде файлов, так и служить для формирования on-line контента. Проекция объектов может быть также использована для формирования DTD. XML-документы могут быть автоматически трансформированы в объекты, для реализации бизнес-логики приложений. Система также позволяет пользователям разрабатывать собственные серверы или создават собственные механизмы XML-импорта.

Настоящее и обозримое будущее XML

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

По прогнозам экспертов, в течение следующих пяти лет мировой рынок серверного ПО на XML также ожидает стабильный рост, что вызвано неизменным спросом на технологии интеграции. Аналитики IDC полагают, что выросший спрос на XML-продукты позволит увеличить доход в данном секторе рынка до $3,5 млрд. к 2006 году. Подобные темпы роста, скорее всего, сохранятся и в дальнейшем, благодаря своим функциональным возможностям и простоте интеграции с платформами электронного бизнеса.

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

XML как модель данных

Итак, XML - удобный формат обмена данными, язык описания документов. При этом, как уже было замечено, оказалось, что спецификацию XML можно рассматривать еще и как реализацию иерархической модели данных. На основе этой модели можно строить системы управления XML - базами данных, причем первые же попытки показали высокую эффективность таких систем. В свое время аналитик Yankee Group Роб Перри отметил: "XML- документы могут содержать мегабайты текстовых строк и тегов XML. Такие документы имеют иерархическую структуру. И лучше оставить эту иерархию в неизменном виде, ведь поиск в этом случае окажется гораздо более эффективным." Даже отдельный XML- файл уже сам со себе - уже готовая иерархическая база данных. Остается лишь дело за языком запросов, основой для которого тоже может служить сам XML.

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

При создании СУБД нового поколения для XML- модели данных (их часто называют native - естественными) исходят из необходимости отражения операций, которые совершаются с документами в реальной жизни. Такие базы данных в качестве модели используют XML- модель данных. Компании, предлагающие XML- СУБД, заявляют, что последние лучше подходят для хранения XML- контента, чем широко распространенные сейчас реляционные СУБД.

В то же время такие компании, как Oracle, IBM и Microsoft разрабатывают технологии, улучшающие возможности работы их реляционных СУБД с XML- документами. При этом, конечно, следует отличать XML- ориентированные базы данных от реляционных, поддерживающих обмен данными на языке XML, но в основе вторых лежит реляционная модель.

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

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

Технология XML- СУБД, кроме того, полностью соответствует концепции корпоративных хранилищ данных. Корпоративные хранилища данных физически представляют собой совокупность нескольких, связанных между собой баз данных, содержащих, помимо прочего, аналитическую информацию, необходимую для принятия решений. В XML- базах данных каждый документ может быть интерпретирован как аналитический, представляющий собой ответ на запрос, непосредственно аналитический расчет, входную или выходную форму. Возможность преобразования XML- документов в реляционное представление и обратно позволяет подсоединить к XML- СУБД реляционные базы данных измеющихся корпоративных хранилищ. Кроме того, технология XML предоставляет возможность создания логически объединенных через Интернет/интранет децентрализованных баз данных.

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

Языки запросов и организация XML- поиска

Параллельно с XML было начата разработка стандарта для метаданных - схемы описания источников (Resource Description Framework или RDF). Предполагается, что в будущем узлы метаданных RDF, распространенные по всей Сети, обеспечат значительно более высокое качество и скорость поиска данных в Интернет, т.е. спецификация RDF будет играть роль концептуальной схемы базы данных Глобальной сети.

Гипертекстовая среда обеспечивает и другие способы нахождения нужной информации. Так, сетевые гиперссылки также предполагается усилить в рамках XML- технологии путем ввода специальных ссылок (Xlink), которые должны обеспечить переход по списку возможных назначений. Xlink позволит использовать непрямые связи, которые указывают на данные в центральной базе данных, а не связывает сами страницы. В случае изменения адреса страницы ее автор сможет актуализировать все связи, которые указывают на нее, изменяя всего одну запись.

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

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

Вместе с тем, основа стандарта, описывающего извлечение данных из XML- документов, уже существует. Рекомендация Xpath предполагает иерархическое представление структуры документа, а в роли XML документа может выступать все дерево документов вэб- сайта или всей Сети. Но несмотря на простоту и удобство доступа к XML- элементам, документам или сайтам, эта рекомендация описывает только логическую, а не физическую структуру хранения документов. В Xpath для определения критериев выборки данных используются фильтры, семантически подобные выражению WHERE в SQL. Кроме того, XPath не способен в полном объеме решить вопросы связи между документами, а также организации структуры вывода данных.

Почти все языки запросов, претендующие на промышленное использование, обеспечивают формирование запросов, состоящих из трех частей: оператор шаблона, оператор фильтра и оператор конструктора. Кроме того, все они содержат конструкции для выражения вложенности и упорядоченности. При этом представление запросов очень часто синтаксически близко в языку XML. Рассмотрим реализацию этих свойств на примере популярных языков запросов XML- QL, YATL, Lorel и XQL. Из всех этих языков только XQL не поддержимвает опреаторов конструктора. Вместе с тем, XQL может применять фильтры к элементам и атрибутам, а также к инструкциям обработки, комментариям и к внешним ссылкам.

Язык XML- QL был спроектирован в AT&T Labs как язык запросов непосредственно над XML данными для решения задач их выборки, интеграции и преобразования. В качестве основной прикладной задачи рассматривается электронный обмен данными.

В запросе XML- QL шаблоны и фильтры появляются в операторе WHERE, а конструктор - в операторе CONSTRUCT. XML- QL поддерживает упорядоченность элементов на уровне модели данных, группировку результатов запроса по значению элементов, внешние и внутренние соединения.

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

В запросе на конструктор YATL появляется в операторе make, шаблон - в операторе match, а фильтры - в операторе where.

YATL обладает такими основными свойствами: представление модели данных на различных уровнях абстракции, обработка данных из различных источников, обработка мультимножеств и списков на основе группировки и упорядочивания, возможность настройки программ под входные данные.

Язык Lorel изначально был спроектирован в Стандфордском университете в рамках проекта Lorel, а затем был модифицирован для работы с XML. Это дружественный язык с простым синтаксисом в стиле SQL. Основным преимуществом Lorel является совместное использование средств преобразования типов и механизма построения пути запроса над нестрогой структурой данных (general path expression). Lorel реализует собственную (не XML) модель данных, являющуюся расширением объектной модели, включающей в себя в виде узлов элементы данных XML.

В запросе Lorel конструктор задается оператором select, шаблоны - оператором from В операторе where одновременно используются шаблоны и фильтры. Значение операторов from и where представляет собой отношение, преобразующее переменные в кортежи значений, удовлетворяющие условиям.

Одной из наиболее сильных сторон языка Lorel являются богатые возможности навигации по "неопределенным" схемам с использованием шаблонов.

Концепция языка XQL основана на преобразовании документов. Сам язык является естественным расширением синтаксиса XSL и представляет собой спецификацию для поиска отдельных элементов или узлов с соответствующими характеристиками в документе. XQL не имеет операторов конструирования. Вместо них результат запроса определяется выражениями шаблона. Язык XQL обеспечивает обработку операторов сравнения, логических операторов, наборов ключевых слов, расширенных кванторами общности и существования, множественных операторов объединения и пересечения.

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

Реализация XML- серверов

Сервер Tamino

Интересно, что компания Software AG, известная прежде всего своей СУБД Adabas, добавила в свой логотип слоган "The XML Company". Сегодня основной вектор деятельности компании направлен на развитие технологий XML, и прежде на ее новый бренд - XML- сервер Tamino, который был разработан с учетом существующих линий продуктов Software AG. Он интегрируется с такими системами, как Bolero, EntireX, Adabas и Natural.

Несмотря на преждние наработки в области СУБД у компании- производителя, в основе Tamino лежит XML- архитектура. Базовой технологией сервера Tamino является X- машина - технология хранения XML- информации, не требующая ее конвертации в другие структуры. X- Machine - это ядро Tamino, служащее для хранения и обслуживания запросов XML- документов. Этот компонент, обрабатывая XQL- запрос, может обращаться как к внутреннему репозиторию XML- данных (XML Store), так и к внешним источникам через X- Node и серверные расширения. Концепция X- узла (X- Node), реализованная в Tamino, является интерфейсом для доступа к существующим традиционным базам данных. Компонент X- Node позволяет представить прикладной программе все эти источники как единый источник данных, независимо от их физического расположения. X- Node позволяет перегруппировывать данные, объединять существующие базы данных с новыми источниками данных, поскольку все обрабатываемые данные представляются в виде одного документа XML. X- узел позволяет управлять различными типами информации в однородной XML- структуре, что делает Tamino удобным сервером для Web.

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

Tamino имеет свой собственный репозиторий XML- данных и позволяет строить виртуальные хранилища данных над разнородными источниками. В качестве декларативного языка запросов Tamino поддерживает подмножество языка XQL. Для поддержки работоспособности SQL приложений, в состав Tamino входит SQL- процессор (для SQL версии 2), обеспечивающий также и среду хранения реляционных данных. В ядре Tamino также представлены средства полнотекстовой поисковой машины, которые позволяют создавать интеллектуальные поисковые машины, обеспечивающие поиск с учетом структуры документа.

Еще один компонент - Tamino Manager представляет собой инструментарий для администрирования объектов Tamino в Интернет.

В Tamino использована философия открытых СУБД, сервер содержит стандартные интерфейсы: OLE DB, DCOM, ODBC и JDBC. Tamino поддерживает XML V.1.0, язык ссылок XLL, таблицы стилей XSL и подмножество XQL, а также концепцию пространства имен XML.

Для описания схем XML- данных используется язык описания схем Tamino (Tamino Schema Language). Tamino предоставляет возможность генерации схем по DTD- описанию.

Ipedo XML Database

В основу иерархической СУБД Ipedo XML Database 2.0 компании Ipedo положен язык XML, что позволило ускорить доступ к информации в формате XML, и устранить необходимость ее преобразования к формату реляционной базы данных.

Технология Ipedo XML Database базируется исключительно на XML. Система работает внутри основной памяти своего базового сервера, при ╓том она способна осуществлять на XML- основе поиск и генерацию веб- страниц. В Ipedo XML Database используется стандарт запросов W3C Xpath, который позволяет производить запросы к базе XML- документов непосредственно в синтаксисе XML. Ipedo XML Database включает в себя механизм XSLT, который объединяет в единый процесс доступ к данным и их трансформацию. "Преобразование данных может оказаться весьма сложной задачей для приложений, поскольку требует интенсивных вычислений и больших затрат процессорных ресурсов, - пояснил президент компании Ipedo Тим Мэттьюз.Мы интегрировали в свою СУБД и механизм Xquery, стандартный язык запросов на базе XML, разработку спецификаций которого Консорциум W3C планирует завершить до конца текущего года".

СУБД работает на J2EE- совместимых Web- серверах приложений. Имеются версии для Windows 2000, Windows NT, Sun Solaris и Red Hat Linux.

СУБД Ipedo XML Database включает функцию поиска в свободной форме, которая позволяет находить текст, игнорируя включенные в символьные последовательности теги XML. Кроме того, система обеспечивает поиск информации, представленной в графическом формате Scalable Vector Graphics, который также базируется на спецификациях XML. На СУБД возложена также задача преобразования документов XML в форматы других приложений. К примеру, один и тот же каталог динамически может быть преобразован в формат HTML или в формат WML, поддерживаемый беспроводными устройствами.

eXcelon XML

СУБД Extensible Information Server (eXcelon) является детищем компании Excelon (www.exceloncorp.com). В отличии от большинства других XML- СУБД, эта СУБД способна работать с отдельными сегментами XML- документов, а не только с документами целиком. Сервер eXcelon в первую очередь предназначен для создания интернет- приложений. Этот сервер был разработан на базе объектной СУБД ObjectStore компании Object Design и обеспечивает унифицированное ведение данных в XML- формате, извлекая их из различных источников, конвертируя в XML и сохраняя в собственном репозитории (XML Store). XML-данные, сохраненные в репозитории, индексируются для обеспечения эффективного доступа к ним.

Следует отметить, что c помощью специального компонента - eXcelon Web- расширение (eXcelon Web Extension), система eXcelon может подключаться к вэб- серверу. Более того, eXcelon может функционировать в качестве расширенной файловой системы для вэб- сервера, обеспечивая генерацию динамических страниц.

XQEngine

XQEngine (www.fatdog.com) - это полнотекстовая поисковая система для XML- документов. Она позволяет осуществлять поиск по коллекции XML- документов, используя в качестве запроса логические выражения, составленные из ключевых слов, которыми определяется искомая информация, в комбинации с XQL- запросом. В интерфейсе реализованы методы, которые имеют непосредственное отношение к поисковым системам. Так, например, здесь применяются функции для задания так называемых стоп- слов, указания размера, местоположения и других параметров индексного файла, а также имеется возможность определять, что из документа войдет в индексный файл. XQEngine реализует задание запроса с помощью языка XQL, что при реальной работе приводит к необходимости знать структуру XML- документа.

XMS

Компания NeoCore (www.neocore.com) позиционирует СУБД XMS (XML Management System) как самоконструирующуюся и естественную (native). По заявлению разработчиков продукт нацелен на поиск информации больше, чем на поиск отдельных документов. При этом достигается более высокая скорость обработки каждого элемента XML, хранящегося в естественном виде с сохранением иерархии отношений. Система XMS обеспечивает самоописание структуры базы данных, не содержащей строк и колонок. Эта база данных автоматически индескируется, а также содержит широкие возможности расширения и модификации. Язык запросов здесь также базируется на XQuery и Xpath и обеспечивает поиск документов, их фрагментов и отдельных элементов.

Cache

Постреляционная СУБД американской компании InterSystems (www.intersystems.com) включает в себя многомернный сервер данных Cache для доступа к реляционным данным через SQL и сервер приложений Cache.

Помимо совместимости с предыдущими продуктами InterSystems и с традиционными реляционными СУБД, комплекс Cash позволяет автоматически проецировать данные в XML- документы. Такой "Проецируемый" XML может использоваться как в виде файлов, так и служить для формирования on- line контента. ания on- line контента. Проекция объектов может быть также использована для формирования DTD. XML- документы могут быть автоматически трансформированы в объекты, для реализации бизнес- логики приложений. Система также позволяет пользователям разрабатывать собственные серверы или создават собственные механизмы XML- импорта.

Настоящее и обозримое будущее XML

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

По прогнозам экспертов, в течение следующих пяти лет мировой рынок серверного ПО на XML также ожидает стабильный рост, что вызвано неизменным спросом на технологии интеграции. Аналитики IDC полагают, что выросший спрос на XML- продукты позволит увеличить доход в данном секторе рынка до $3,5 млрд. к 2006 году. Подобные емпы роста, скорее всего, сохранятся и в дальнейшем, благодаря своим функциональным возможностям и простоте интеграции с платформами электронного бизнеса.

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


P e к л а м a: