XML - статьи

XML->Relational


Одним из основных направлений исследования методов трансляции моделей является трансляция XML-модели данных в реляционную [9,10]. Отличительными особенностями реляционной модели данных являются:

  • отсутствие упорядоченности кортежей и атрибутов,

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

    отсутствие атрибутов, имеющих своим значением множество

    отсутствие рекурсии

Существует различные методы автоматического представления XML документов в реляционных СУБД:

Хранение XML- данных в BLOB.

Модельно-ориентированная трансляция. Данный вид трансляции не зависит от структурных ограничений, определенных в схеме схемы, а целиком опирается на свойства модели данных XML [20].

Трансляция, ориентированная на данные. Данные алгоритмы трансляции оперируют с XML-данными, не представленными никакой схемой [19]. На начальном этапе трансляции производится вывод схемы, представляющей XML-данные.

Трансляция с оценкой эффективности. Алгоритм трансляции, представленный в работе [18], анализирует способ трансляции XML-данных таким образом, чтобы запросы, предопределенные приложением, выполнялись наиболее эффективно.

Структурно-ориентированная трансляция. Эта трансляция опирается на информацию, полученную из XML-схемы. В алгоритмах этого типа [9,10] используются структурные ограничения, явно присутствующие в схеме, а также выводятся неявные ограничения, исследуемые в процессе анализа схемы.

Проведенные исследования [9,10], касающиеся проблемы структурно-ориентированной трансляции из XML в реляционную модель выявили ряд возникающих трудностей и показали методы решения:

  • Наличие оператора конкатенации в модели содержания. Например, пусть у нас есть определение модели содержания элемента < !ELEMENT r (a|b)>. Переводя в реляционную модель, наиболее близким отображением будет таблица r с двумя полями: a и b. Однако эта схема не будет отражать тот факт, что в элементе r может встретиться либо a либо b. Поэтому необходимо добавить семантическое ограничение: "если значение в поле a непустое, то значение в поле b должно быть пустым и наоборот". Если есть вложенные конкатенации (то есть конкатенации не на самом верхнем уровне регулярного выражения), мы должны использовать 1НФ для вынесения конкатенаций на самый верхний уровень.
  • Наличие оператора Клини (*). Если в модели содержания какого-то узла встречается другой элемент с оператором * (< !ELEMENT r a*>), то в этом случае для элемента придется создавать отдельное отношение. Если же структура содержит вложенные операторы * (< !ELEMENT r (a*,b)*), то количество отношений существенно увеличится. Обычно для решения этой проблемы используются преобразования схем аналогичных 3НФ (упрощение схемы).
  • Однако, на наш взгляд, правильнее использовать 2 НФ для представления схемы XML:

      - Во первых, 2НФ оставляет практически всю семантику схемы

      - Во вторых, семантика порядка, которая теряется во 2НФ, не оказывает никакого влияния на трансляцию в реляционную модель, вследствие отсутствия семантики порядка в реляционной модели.



    Содержание раздела