Сайт Информационных Технологий ремонт мониторов Харьков

Каталог >> Интернет >> XML >> Влияние языка XML на развитие технологий баз данных

Влияние языка XML на развитие технологий баз данных

Веселов В.В. Долженков А.Н.

Россия, Санкт-Петербург, СП.АРМ, valera@sparm.com

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

In the paper language XML as a way of logic representation of information in XML-oriented databases is considered. Their communication with relational and object databases and concept of data warehouses examined.


XML как язык разметки.

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

Первая состоит в том, что семантическая ограниченность языка разметки гипертекста HTML не позволяла разработчику Web-приложений описывать специфичную информацию, например, химические или математические формулы. Возникла практическая потребность в других языках разметки, структурно аналогичных HTML, но с другой семантикой. В результате стараний Интернет-консорциума W3C был создан метаязык XML, на основе которого заинтересованные разработчики создали и создают специфичные дочерние языки разметки - CML, MathML и уже десятки других. С учетом небольшой синтаксической доработки, HTML также является дочерним языком XML.

Вторая точка зрения состоит в следующем. Информация, заключенная в любом документе, в том числе и в Web-странице, является в большей или меньшей степени регулярной. Ранние варианты HTML слабо учитывали эту регулярность, что приводило к громоздкости сообщений на этом языке и не вполне удовлетворяло разработчиков Web-приложений. Первым делом, стараниями W3C-консорциума, разработчикам была предоставлена возможность вычленить из HTML-документа описание внешнего вида отдельных, регулярно повторяющихся его фрагментов в самостоятельный объект – таблицу стилей CSS. Далее была вычленена в самостоятельный объект собственно разметка – таблица стилей XSL, которую, возможно, следовало бы более точно назвать таблицей шаблонов разметки. В итоге остался XML-объект, описывающий в чистом виде структуру данных документа. Таким образом, структурированные данные документа были отделены от способа их логико-графического представления (разметки) в виде списков, параграфов, таблиц, диаграмм и т.п., а логико-графическое представление от конкретного внешнего вида (стиля) – размеров, цветов, начертаний и т.п.

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

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

Отображение РБД в XML и наоборот.

XML-документ имеет структуру произвольного дерева, каждый узел которого описывается XML-документами, имеющими следующий синтаксический вид:

<ИмяУзла ИмяАтр1=значение” ИмяАтр2=”значение” ... > вложенные элементы и текст </ИмяУзла>

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

1. Для каждой записи каждой реляционной таблицы:

<ИмяТаблицы ID=”КодЗаписи” URL=”КодЗаписи”> только вложенные элементы </ИмяТаблицы >

2. Для каждого значения каждого реквизита каждой таблицы:

<ИмяРеквизита> только текст </ИмяРеквизита>

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

Тег <ИмяТаблицы> может содержать необязательные атрибуты ID и URL. Значением атрибута URL является ссылка на некоторый другой элемент этого же (или другого) XML-документа, который, в свою очередь, имеет уникальный идентификатор, записанный как значение его атрибута ID.

Атрибуты ID и URL служат для установления явных горизонтальных связей в XML-документе, которые в РБД присутствуют в форме таблиц-связок при наличии связей типа "многие-ко-многим". Таблица-связка попадает на одну из ветвей XML-дерева, другая же ветвь имеет на нее ссылку. Поскольку явные связи на уровне реквизитов в РБД не поддерживаются, то тег <ИмяРреквизита> атрибутов не содержит.

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

<ИмяУзла><ИмяАтр1> Значение </ИмяАтр1><ИмяАтр2> Значение </ИмяАтр2> <ИмяТекста> Только текст </ИмяТекста > только вложенные элементы </ИмяУзла >

Значительно сложнее привести несколько XML-документов к структуре РБД, что, по сути, эквивалентно объединению нескольких РБД в одну или же нескольких XML-документов в один. В терминологии РБД это выглядит так:

1.Выявить общие реквизиты и дать им одинаковые имена.

2.Привести значения этих реквизитов к одному домену. Напомним, что доменом называется, прежде всего, множество всех возможных значений реквизита, заданное либо в виде явного списка, либо в виде правила проверки, проверяющего принадлежит это значение домену или нет.

3.Денормализовать каждую из РБД в одну большую таблицу.

4.Соединить все таблицы вместе.

5.Привести полученный результат к третьей нормальной форме.

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

XML – как способ логического представления данных.

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

Отдельный документ или его фрагмент – это сообщение на языке документооборота. Сообщение может возникать как результат отработки события документооборота и само является событием, порождающим новые документы или их фрагменты. Как действует участник документооборота? Образно говоря, например, так: "Когда поступит документ № 1, возьми документ № 2, просуммируй значения в таких-то полях и запиши результат в такое-то поле документа № 3...".

Если мы хотим сделать БД полноправным участником документооборота, иначе говоря, общаться с ней на естественном языке и получать от нее управленческие решения, то она должна действовать аналогичным образом.

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

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

Например, если документ был составлен без заведомо ошибочных данных, то он прекращает свое действие вовсе не с помощью операции "удаление", а на основании некоторого другого документа, его отменяющего. "Удаленный" документ не исчезает бесследно – историческая целостность документооборота поддерживается в архивах в течение определенного срока.

Заметим также, что документооборот любит "вредную избыточность" данных, неприемлемую для СУ РБД. "Иванов" в документе № 1 и "Иванов" в документе № 2, хотя речь и идет об одном и том же человеке, не одно и тоже – документы №1 и №2 возникли в разные моменты времени и, соответственно, в разных контекстах.

Не смотря на отсутствие строгой модели данных, в стадии стандартизации находится язык запросов XQL, а на рынке уже появились первые XML-ориентированные БД, например “Tamino” от Software AG.

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

XML-ориентированные БД.

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

1.Исходные (терминальные) XML-документы, узлы, элементы которых "прошиты" взаимными связями (ID и URL). Связи могут указывать как на узлы этого же документа, так и на узлы другого документа, находящегося как в этой же БД, так и какой-либо другой, расположенной на удаленном сервере. Если ставится задача поддержки исторической целостности, то кроме указателей связей в атрибуты тегов элементов записывается системная дата последнего изменения этого элемента.

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

3.XML-метадокументы, о которых речь пойдет ниже.

4А.Библиотека XSL-шаблонов в виде одного или нескольких XSL-документов и библиотека CSS-стилей, также в виде одного или нескольких CSS-документов. Эти две библиотеки используются для XML-документов с не жестко регламентированным внешним видом, разметка и внешний вид которых могут быть изменены пользователем по своему вкусу.

4Б.Набор XSL- и CSS-документов для XML-документов с уникальным, жестко фиксированным внешним видом (по одному XSL и CSS на каждый такой класс XML-документов), который по тем или иным причинам не может быть сформирован из библиотеки.

5АБиблиотека процедур (скриптов), исполняемых на клиенте или сервере как отработка событий (триггеров), связанных с элементами XML-документа.

5Б.Набор приложений для работы XML- ориентированной БД, нестандиртизуемых по тем или иным причинам.

Метаданные в XML- ориентированных БД.

Множество XML-документов (как исходных, так и аналитических), имеющих одинаковые уникальные имена тегов и порядок их вложенности друг в друга, и не зависимо от количества вложенных одноименных тегов, относятся к одному классу документов и являются его экземплярами. Внутри класса экземпляры документов и их узлы различаются по уникальному идентификатору ID.

Каждый класс описывается одним XML-метадокументом, который включает в себя следующие описания для каждого элемента XML-документа:

1.Структурные свойства XML-элементов – перечень имен дочерних элементов, обязательность и возможность множественности данного элемента.

2.Свойствва содержимого элемента (значения) – тип данных и принадлежность домену.

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

4.Ссылка на XSL/CSS библиотеку, указывающая, какой именно шаблон следует применить для визуализации данного элемента.

В настоящий момент XML-метадокументы описываются на дочернем языке XML согласно словарю “Schema”, стандартизирующему описания 1, 2, и не включающему в себя стандартов для 3, 4. Иначе говоря, если Вы хотите визуализировать и динамически "оживить" на пользователе XML-документ, то Вам необходимо изготовить XSL-объект с набором скриптов и шаблонов, применимый только к этому конкретно классу XML-документов. Существующие XML-анализаторы в состоянии проверить правильность ввода пользователем данных во входную форму, но не в состоянии предоставить ему возможность придать входной форме удобное для себя логико-геометрическое представление и внешний вид.

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

XML-ориентированные и объектно-ориентированные БД.

XML-документ является информационным объектом и экземпляром одного из классов, содержащихся в XML- ориентированной БД. Класс описывается XML-метадокументом (“Schema”), который является экземпляром метакласса. Сам метакласс имеет описание в виде такого же XML-метадокумента, являющегося тоже экземпляром этого же метакласса. Говоря языком документооборота, класс – это описание бланка документа (где и какие поля, как называются, какими чернилами заполнять, на основании чего именно, кому и когда передать документ после заполнения и т.п.), а экземпляр – один заполненный бланк.

XML-документы являются информационными объектами, и их классы собственных методов не имеют. Работа с XML-документом происходит с помощью методов объекта анализатора (например, ActiveX Microsoft.XMLDOM), в который его загружают вместе с информационными объектами-описателями (Schema, XSL, CSS, набор скриптов).

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

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

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

XML-ориентированные БД как КХД.

XML-технология как нельзя лучше отвечает концепции КХД (корпоративных хранилищ данных), которую мы и рассмотрим с точки зрения XML-ориентированных БД.

1. Прежде всего, КХД – это совокупность нескольких, связанных между собой БД.

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

2.КХД поддерживает историческую целостность данных. В КХД попадает исчерпывающий набор исходных данных из различных источников, который хранится в своем первоначальном состоянии и не удаляется. Для исходных данных допускается некоторое нарушение целостности и непротиворечивости.

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

3.Помимо исходных данных, КХД содержит интегрированную аналитическую информацию, необходимую для принятия решений. Интеграция предусматривает объединение данных с приведением их к единому синтаксическому и семантическому виду и устранению нарушений целостности и противоречивости.

В XML-ориентированных БД разобранный документ – это такой же аналитический XML-документ, как и ответ на запрос, собственно аналитический расчет, выходная или входная формы.

4.Логическая структура аналитических данных в КХД отражает точку зрения корпоративного пользователя, которая различна для разных групп пользователей, и изменяется во времени.

Аналитические документы в XML-ориентированной БД как раз и отражают конкретную точку зрения как на конкретный документ, так и на их динамическое взаимодействие друг с другом на определенном временном интервале.

5.КХД должно обладать высокой скоростью обработки запросов пользователей, вследствие чего допускается высокая избыточность аналитических данных, отражающая промежуточные результаты статистически часто встречающихся запросов пользователей.

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


Site of Information Technologies
Designed by  inftech@webservis.ru.