УДК 004.65
A.A. Симановский
Вестник СПбГУ. Сор. 10, 2007, вып. 1
СОВМЕСТНЫЕ ЭВОЛЮЦИОННЫЕ ТРАНСФОРМАЦИИ ВЗАИМОЗАВИСИМЫХ XML И РЕЛЯЦИОННЫХ СХЕМ
1. Введение. Ряд современных приложений, работающих с базами данных (БД), таких, например, как электронные системы учета медицинской информации, CAD-системы, требуют от уровня представления данных возможности модификации (изменения) со временем хранимых данных и их схем. Процесс изменения последних в подобных системах является неотъемлемой частью жизненного цикла приложения. Таким образом, поддержка модификации схемы хранимых данных со временем является актуальной задачей для производителей СУБД.
Существует несколько подходов к решению этой задачи в рамках СУБД: эволюция схем, контроль версий схем, интеграция схем [1]. Они имеют различные области применимости, предоставляют неодинаковый набор возможностей. Эволюция схем обеспечивает высокую производительность системы за счет меньшего объема предоставляемых возможностей.
Системы поддержки эволюции схем упорядочивают действия при их изменении, позволяют описывать семантику изменений в предметной области приложения и отражать ее изменения, происходящие со временем, в БД, распространяя их на схему хранимых данных и сами данные. Они избавляют от необходимости создания и реализации ad hoc алгоритмов по изменению схем и данных при каждой модификации. В настоящее время существуют системы поддержки эволюции схем данных для реляционной [2-5], объектно-ориентированной [6-10], XML [11-13] моделей данных.
Рассматриваемые приложения часто используют XML и такие языки запросов как XQuery в качестве интерфейса к уровню представления данных, который, в свою очередь, применяет мощные промышленные реляционные СУБД как хранилище данных, реализуя логику преобразования работы с моделью данных XML в работу с реляционной моделью [14, 15]. Как следствие, возникает вопрос эволюции связанных отображением пары XML и реляционной схем.
Использование XML-данных требует от приложений организации эффективного хранения и доступа к этим данным. Одним из решений является сохранение их в реляционных СУБД. Это позволяет не только организовывать хранение и доступ к данным, но и использовать такие отсутствующие в XML, но полезные для приложения механизмы как индексы, транзакции, многопользовательский доступ и т. д. Также немаловажным фактором, влияющим на принятие такой технологии, является отсутствие в настоящее время, несмотря на активные исследования в этой области [16, 17] и промышленные разработки, реализации XML-ориентированной БД, удовлетворяющей требованиям широкого спектра приложений.
Ранее предлагаемые решения в рамках эволюции схем не рассматривали необходимость совместной эволюции схем данных, использующих различные модели. Недавно возник интерес к подобным совместным изменениям схем и отображений между ними, называемым также адаптацией схем, как проблеме управления моделями данных [18]. Однако вопрос исследуется только в рамках интеграции схем [19-21] - подхода, хотя
© А. А. Симановский, 2007 102
и наиболее общего для изменяющихся схем, но в то же время и наиболее «тяжеловесного», приводящего к значительным накладным расходам при работе приложения.
В настоящей статье будем рассматривать поставленную задачу изменения пары связанных отображением XML- и реляционной схем как эволюцию схем, решая задачу адаптации в частном случае, но более эффективным методом. Предложим систему поддержки эволюции схем, которая включает промежуточную схему-медиатор, представляющую собой обшую часть XML- и реляционной схем. Отображение, связывающее XML- и реляционные схемы, представляется в виде композиции отображения между XML-схемой и схемой-медиатором и отображения между схемой-медиатором и реляционной схемой. Совместная эволюция схем разбивается на эволюцию схемы-медиатора и трансформации XML- и реляционных схем. Трансформации последних изменяют отображения в схему-медиатор, но не затрагивают ее саму. Система поддерживает согласованность и целостность схем.
2. Схема-медиатор. Введем ее конструктивно. Подобный способ ограничивает класс используемых XML-реляционных отображений, но позволяет гарантировать согласованность эволюционирующих XML- и реляционных схем.
Так как для рассматриваемых приложений XML-схема является концептуальной, а реляционная - реализационной, удобно выразить схему-медиатор прежде всего через отображение из XML-схемы.
Определение 2.1. DTD-граф - это тройка (V,E,a), где V - алфавит имен тэгов, Е С V х V - отношение вложенности, <т : Е {*,null} - отображение, определяющее кратность вложенности тэгов (звездочкой помечается множественная вложенность).
Нетрудно заметить, что DTD-граф является DTD как отображение ß : V -Л Су х А*, 0{V) = (oj,null), где С - множество языков над алфавитом V, отображение null : V —» А*, nulliv) = 0, а отображение и : V —» С имеет вид
ш(и) = К | (v,vi) &Е Л <г((«,еО)}и{и< | (и,Vi) еЕ Л -^((v,^))}- (1)
В таком смысле DTD-граф можно назвать канонической XML-схемой.
Каждой XML-схеме можно сопоставить единственную каноническую (т. е. DTD-граф) следующим алгоритмом*' :
1. Элементы, ссылающиеся на <!ENTITY>, заменяются на свои определения.
2. <!ATTLIST name :> заменяются на вложенные листовые тэги <! ELEMENT attribu-te_name #CDATA>. Мощность атрибутов передается регулярными выражениями во вхождении созданных тэгов.
3. Регулярные выражения заменяются на последовательности вида *' с сохранением такого свойства: если слова оригинального языка не содержат некоторого символа v, то он отсутствует в последовательности, если в словах встречается не более одного V, то он входит в последовательность без звездочки, если в словах встречается более одного символа v, то он входит в последовательность со звездочкой. Последовательность может быть получена из исходного регулярного выражения многократным применением следующих правил упрощения:
«а» заменять символ альтернативы «—» на последовательное использование; «Ь» заменять двукратное или более вхождение (в том числе символ « +») на символ
*' Здесь и далее будем использовать DTD в качестве описания XML-схемы. Все результаты и выводы применимы также и к другим ее описаниям.
«с» удалять вложенные группировки и символы «?»;
«d» последним шагом заменить одну полученную группировку на последовательность.
В результате применения описанного алгоритма получается каноническая DTD-схема, которой соответствует DTD-граф.
Следующим этапом построения отображения XML-схемы в схему-медиатор является построение факторизованного по отношению вложенности тэгов DTD-графа.
Определение 2.2. Факторизованный DTD-граф - это пятерка {G,V',Е',а',А), где G - DTD-граф; V1 С V* - дизъюнктный набор подмножеств алфавита тэгов, обладающий следующими свойствами:
• Vi ф V-2 € V' =>• V\ П V2 = 0 (дизъюнктные множества);
• vi,v2 £ V0 £ V' =>■ (wi,U2) £ G.E =>- G.a{(v\, V2)) = null («внутри» вершины факторизованного DTD-графа нет дуг, помеченных звездочками);
• W £ V' 3i>0 £ V | W £ V vq >* v (в каждой вершине факторизованного DTD-графа есть «корень», из которого достижимы все вершины исходного графа, лежащие «внутри» данной вершины факторизованного DTD-графа).
Множество Е' С V' х V' определяется соотношением (v,u) £ Е' Efoo £ v, щ £ и (vq^uq) £ G.E - множество дуг факторизованного DTD-графа; а' : Е' -> {*,null} - маркировка дуг символами; А : U С {v £ V\~$u £ V(v,u) £ G.E} —> I7' - отображение, сопоставляющее подмножеству листовых вершин DTD-графа вершины факторизованного DTD-графа, определяет множества атрибутов вершин факторизованного DTD-графа.
Отметим, что факторизованный DTD-граф может быть получен из исходного DTD-графа путем объединения вершин по отношению вложенности тэгов - вершина объединяется с вложенной при условии, что в соответствующий ей тэг вложенный тэг, соответствующий вложенной вершине, входит один раз (т. е. соответствующая дуга не помечена звездочкой), причем он не является вложенным для каких-либо других тэгов.
Последним, необязательным этапом к факторизованному DTD-графу добавляются фиктивные корень и конечная вершина*' .
Каждая вершина кроме фиктивных корня и конечной вершины полученного факторизованного DTD-графа содержит ровно одну вершину DTD-графа, в которую ведут дуги, исходящие из вершин DTD-графа, расположенных в других вершинах факторизованного DTD-графа. Такую вершину назовем вершиной-входом. В фиктивных корне и конечной вершине ее можно задать явно.
Четверка (V, Е',<т', А) факторизованного DTD-графа (G,V',E',a',A) является схемой-медиатором для данной XML-схемы. Отображение DTD в схему-медиатор есть композиция отображения, получающего DTD-граф по DTD и факторизации DTD-графа. При условии хранения в том или ином виде DTD и схемы-медиатора нет необходимости хранить связывающее их отображение в виде объекта-отображения.
Пусть имеется четверка (V, Е',а',А), где Е С V х V, отображение А : Def(A) -4 V', отображение а' : Е' -» {*,null}. Возьмем произвольное перечисление Id элементов множества V. Положим G = ('V,E,a), где множества V и Е и отображение а : Е —» {*,null} имеют следующий вид:
V = Def(A) U Im(Id),
*' Заметим, что предложенный алгоритм построения схемы-медиатора похож на первый шаг алгоритмов сохранения XML в реляционных БД, использующих информацию о XML-схеме (например, таких как Shared [22]).
Е = {(u,v)\u,v е Im (Id) (Idr^u^Idr^u)) € E'} U u{(u, v) I it G Im(Id)v € £>е/(Л) = 7d_1(u)},
„ Ns ['*', если u,v & Im(Id) Л er'((Id^1 (и),Id"1 (v))) = '*', = „
\null, в противном случае.
Полученный DTD-граф можно назвать каноническим для данного графа схемы-медиатора. В свою очередь, для канонического DTD-графа существует каноническая DTD. Таким образом, схеме-медиатору соответствует каноническая XML-схема.
На множестве канонических схем отображение XML в схему-медиатор обратимо, и обратным для него является отображение схемы-медиатора в XML-схему, ставящее в соответствие схеме-медиатору каноническую XML-схему.
Каноническая реляционная схема для данной схемы-медиатора удовлетворяет следующим условиям:
1. Каждой вершине схемы-медиатора соответствует таблица, включающая набор столбцов, соответствующий набору атрибутов вершины: имя столбца определяется именем тэга канонической DTD, служащего прообразом атрибута при отображении XML-схемы в схему-медиатор; доменом столбца является тип varchar (MAX_INT) или, если синтаксическая интерпретация приложения вычислима для прообраза атрибута, значение интерпретации. Других таблиц в реляционной схеме нет.
2. Все дуги представлены внешними ключами, и других внешних ключей в таблицах схемы нет.
Отображение реляционных данных в схему-медиатор можно представить в виде композиции отображения, получающего каноническую схему по данной и переименования сущностей реляционной схемы.
Отображение из реляционной схемы в схему-медиатор хранится в виде набора процедур, вычисляющих проекции эквисоединений. Имена таблиц, хранящих пары соответствующих первичных ключей, фиксированы, и их наличие может быть восстановлено по именам процедур. Изменения отображения хранятся в виде процедур, вычисляющих изменившуюся часть отображения.
3. Аксиоматическое задание схемы-медиатора. Для схем-медиаторов, не имеющих циклов кроме петель (данные схемы медиаторы представляют наибольший интерес, об общем случае подробнее см. [23, 24]), введем также аксиоматическое задание схемы, цель которого - выразить возможность интерпретации значений XML-документа на основе содержащейся в нем метаинформации.
ОпределениеЗ.1. Интерпретацией XML-документа, соответствующего данному DTD, является предикат, определяемый на декартовом произведении доменов, где домены - это множества, задаваемые отображением из множества имен тэгов. Данное отображение назовем синтаксической интерпретацией приложения (или просто интерпретацией приложения). Интерпретация обладает свойством иерархичности:
I(tagname) = /(tagi, tag2,..., tagk, attr\, attr\,..., attr"k), (2)
tagi образуют последовательность вложенных (в соответствии с DTD) тэгов, a attrj -соответствующие (в соответствии с DTD) тэгам атрибуты.
Иерархичность интерпретации говорит о том, что для интерпретации значения тэга необходимо знать контекст: имена объемлющих тэгов, значения атрибутов их и данного
Аксиомы формулируются в виде определяющих зависимостей между множествами, соотнесенными с каждой вершиной. Стоит отметить, что множества и аксиомы сходны с используемыми в [9], что определяется иерархичностью отношения наследования классов и условий интерпретации значений XML-тэгов. Множества вводятся следующим образом.
Определение 3.2. Множество непосредственных предшественников P(v) вершины v графа схемы-медиатора (G,V', Е' ,а', А) составляют вершины графа схемы-медиатора, соединенные исходящими дугами с данной вершиной, из которых нельзя достичь других вершин, соединенных исходящими дугами с данной:
P(v) = {и е V | (u,v) е Е1 Л $(u0,v) £Е' и >» w0}.
В приведенной формуле >* - отношение достижимости, т. е. транзитивное замыкание бинарного отношения >, заданного на V', индуцируемого множеством Е', а именно v > и, если и только если (v,u) 6 Е'.
Определение 3.3. Множеством значимых (существенных) предшественников Ре (v) вершины v графа схемы-медиатора является некоторое выбранное подмножество вершин графа схемы-медиатора, находящихся в путях от корня до данной вершины, включающее непосредственных предшественников данной вершины. Множество определяется создателем схем.
Определение3.4. Граф предшественников PL(v) вершины v графа схемы-медиатора включает в себя все вершины графа, из которых достижима данная:
PL{v) = {и £ V I и >, и}.
Определение3.5. Множеством непосредственных (родных) атрибутов N(v) вершины v является подмножество листовых вершин DTD-графа, лежащее «внутри» данной факторизованной вершины v:
N(v) = {и € v\out(u) = 0}.
В приведенной формуле out(u) = {i | (и, t) 6 Е}.
Определение 3.6. Интерфейсом I(v) вершины v называется объединение множеств атрибутов вершин ее графа предшественников:
I(v) = U N(x).
xePL(v)
Определение 3.7. Множество унаследованных атрибутов H(v) вершины v составляют элементы разности как множеств интерфейса вершины и ее родных атрибутов:
H(v) = I{v)\N{v).
Определение 3.8. Множеством значимых (существенных) атрибутов Ne(v) вершины v является подмножество интерфейса вершины, включающее родные атрибуты вершины, определяемое создателем схемы.
Определение 3.9. Множество непосредственных последователей S(v) вершины v графа схемы-медиатора (G, V, Е', а', А) составляют вершины графа схемы-медиатора, с которыми данная вершина соединена исходящими дугами и которые недостижимы из других вершин, с которыми она соединена исходящими дугами:
S(v) = {и е V | (v,u) G Е' Л $(v,u0) GE'u0 >, и}.
Определение 3.10. Множеством значимых (существенных) последователей Se(v) вершины V графа схемы-медиатора является некоторое выбранное подмножество вершин графа схемы-медиатора, находящихся в путях от данной вершины до конечной вершины графа, включающее непосредственных последователей данной вершины. Множество определяется создателем схем.
Определение 3.11. Граф последователей SL(v) вершины v графа схемы-медиатора включает в себя все вершины графа, достижимые из данной:
SL(v) = {и G V | v >„ и}.
Синтаксическая интерпретация задает условия вычислимости домена (т. е. возможности интерпретировать) значения, содержащееся в XML-документе. В этом смысле интерпретация обеспечивает целостность XML-схемы. Целью аксиом является обеспечить условия интерпретации XML-документа, т. е. целостности схемы.
Зададим множества следующим образом. Пусть I - синтаксическая интерпретация приложения, удовлетворяющая условию 2, тогда
Pe(v') = {и' G V I Ви G u',v G v' I(v) = g{u) Л g Ji const} \ {г/}, (3)
Ne(v') = {u G V I Bu' G Vu G N{u') Л Bv G v'I(v) = g(u) Л g ^ const}. (4)
Аксиомы связывают определенные выше множества:
Vv G V' Pe(v) С V Л ,r„vv) С V,
Vv G V" V i (J PL(x) Л v i U SL(x),
xe p(v) xeS(v)
В\vR eV'Vve V'vr G PL(rj л Pe{vR) = 0 Л v G SL(vr), 3\vT G V Vv G V/v G PL( r ) A vT G SL(v) Л Se(vT) = 0,
Vu G V' P{v) = P,0) \ U \
x€P,( »)
Vu G V' T / (v) = {v} U (J PL(x),
xeP(v)
VjgV' fu) = Se(v) \ [J (SL(x) \ {*}),
i£Se(»)
V« G V" SL(v) = {u} U (J SL(x),
xeS(v)
Vu G V I(y) =N(v)UH(v), Vv G V N(v) = Ne(v) \ H(v), Vv G V Я (u) = (J J(®).
xEP(v)
При введении множеств, согласно условиям (3), (4), сохранение аксиом при изменениях схемы-медиатора гарантирует сохранение синтаксической интерпретации приложения. Можно также гарантировать сохранение синтаксической интерпретации приложения, используя вместо множеств Ре множества 5е или задавая часть интерпретации через Ре, а другую часть - через S,,.
4. Таксономия операций системы. Для предлагаемой модели эволюции предлагается следующий набор операций.
Операции над схемой-медиатором,.
Определение^1. Добавление атрибута. Добавляемый к вершине v атрибут о включается в множество Ме('и). Создатель схемы, или внешний алгоритм, может включить а в некоторые множества достижимых из у вершин. Множества N, Н пересчитываются для вершины у и вершин, достижимых из у.
Определение4.2. Удаление атрибута. Удаляемый из вершины V атрибут а исключается из множества N,.('11). Множества Л^, Лг, Н пересчитываются для вершин, достижимых из у. Заметим, что для всех и, таких что у € Р(и) и а € N,,(11), в соответствии с аксиомами, атрибут а включается в N(u).
Определение 4.3. Добавление дуги. При добавлении дуги (и,у) и добавляется в множество Ре(«)> а у добавляется в 5е(и). Создатель схемы, или внешний алгоритм, может также включить вершину v в множества Ре некоторых не непосредственных последователей кип множества 5е некоторых не непосредственных предшественников и. Пересчитываются множества для вершин из ЗЬ(и) и РЬ(у). Вершина и добавляется в Р(у), а v - в Б (и), если и ^ БЬ(у) и у ^ РЬ(и) соответственно.
Определение 4.4. Удаление дуги. При удалении дуги (и, у) вершина и удаляется из Ре(у). а вершина у - из 5с(и). Пересчитываются множества для вершин из ЗЬ{у) и РЬ(у). При нарушении аксиом либо операция отменяется, либо по необходимости перед удалением предварительно выполняется добавление дуги, соединяющей корень и вершину у и/или вершину и и конечную вершину.
Определение 4.5. Добавление вершины. При добавлении вершины V создателем схемы, или внешним алгоритмом, определяются значения множеств Ре(у) и Зе(у), в простейшем случае Ре(и) <— {зд},5е(г>) {г>г}- Для всех элементов Р(г>) вершина у добавляется в их 5'е множества. Аналогично для всех элементов Б(у) вершина у добавляется в их Ре множества. Множества для вершин с обновленными Ре и Ве пересчитываются.
Определение 4.6. Удаление вершины. При удалении вершины у выполняется операция удаления атрибута для всех атрибутов вершины у. Следующим этапом выполняется удаление дуги для всех входящих и исходящих дуг, кроме дуг, соединяющих вершину V с корнем и конечной вершиной. Если все эти изменения приняты системой, то вершина удаляется вместе с дугами, соединяющими ее с корнем и конечной вершиной. Вершина у удаляется из множеств Зе(ук) и Ре(ут). В противном случае операция отменяется.
Определение 4.7. Слияние двух вершин. Для вершин и и у, для которых производится слияние, приводящее к образованию новой вершины гу, должно выполняться условие и &Р{у) Л у &3(и). Множества Ре, 5е и Ие получаются объединением соответствующих множеств вершин и и у. Вхождение и и/или у в какое-либо из множеств системы заменяется на вхождение результата объединения.
Определение4.8. Расщепление вершины. Множества создаваемых на основе расщепляемой вершины ш новых вершин и и V определяются создателем схемы, или внешним алгоритмом, в соответствии со следующими требованиями:
Ре{и) еРеН, Ре (и) еРЛго) и {и} Л и€Р,.{у),
Зе{у) £Зе(ги),
Se(u) ese{w) U {г>} A v&Se(u),
Ne{u) £ Ne(w) A Ne(v) ENe{w) A TV (и) U N{v) = 0.
Операции над XML-схемой. Ограничимся операциями над DTD-графом. Дополнение этих операций до полного набора зависит от способа описания XML-схем и различно, например, для DTD-графа и XML-схемы.
Определение 4.9. Перемещение вершины вниз по иерархии. Операция замещает пару элементов <!ELEMENT А(В,...)> и <!ELEMENT В(С,.. .)> из одной вершины факторизованного DTD-графа парой элементов <! ELEMENT А (В, С, . . .)> и <!ELEMENT В(. . . )>, где В не является атрибутом вершины факторизованного DTD-графа.
Определение 4.10. Перемещение вершины вверх по иерархии. Операция замещает пару элементов < ! ELEMENT А(В,С,...)>и<! ELEMENT В (...)>, где В не является атрибутом вершины факторизованного DTD-графа, из одной вершины факторизованного DTD-графа парой элементов <! ELEMENT А (В,. . .)> и <! ELEMENT В (С, . . .)>.
Определение 4.11. Добавление «листовой» вершины. Операция замещает элемент <!ELEMENT А(. . .)>, где А не является атрибутом вершины факторизованного DTD-графа, парой элементов <! ELEMENT А (В, . . .)> и <! ELEMENT В #CDATA>, где новый элемент В не является атрибутом вершины факторизованного DTD-графа.
Определение 4.12. Удаление «листовой» вершины. Операция удаляет элемент <!ELEMENT В #CDATA>, не являющийся атрибутом вершины факторизованного DTD-графа, и замещает элемент <! ELEMENT А (В, . . .)> элементом <! ELEMENT А(. . .)>.
Определение 4.13. Добавление верхней дуги. Операция замещает пару элементов <!ELEMENT А(В,...)> и <!ELEMENT В(С*,...)>, где С является вершиной-входом, парой элементов <!ELEMENT А(В,С*,...)> и <!ELEMENT В(С*,...)>, где символ «*» может отсутствовать как в первом, так и во втором элементе или в обоих одновременно.
Определение 4.14. Удаление верхней дуги. Операция замещает пару элементов <! ELEMENT А (В, С*, . . .)> и <! ELEMENT В(С*, . . .)>, где С является вершиной-входом и символ «*» может отсутствовать как в первом, так и во втором элементе или в обоих одновременно, парой элементов <! ELEMENT А (В ,...)> и < ! ELEMENT В (С* ,...)>.
Определение 4.15. Перемещение дуги вверх. Операция замещает пару элементов <!ELEMENT А(В,...)> и <!ELEMENT В(С*,...)>, где С является вершиной-входом и символ «*» после С может отсутствовать, парой элементов <!ELEMENT А(В,С*,...)> и <!ELEMENT В(...)>.
Определение 4.16. Перемещение дуги вниз. Операция замещает пару элементов <!ELEMENT А(В,С*,...)> и <!ELEMENT В(...)>, где С является вершиной-входом и В не является атрибутом вершины факторизованного DTD-графа, парой элементов <! ELEMENT А(В, . . .)> и <! ELEMENT В(С*, ...)>, где символ «*» после С может отсутствовать.
Определение 4.17. Маркирование дуги. Операция замещает элемент <! ELEMENT А (С ,...)>, где С является вершиной-входом, элементом <! ELEMENT А(С*,...)>.
Определение 4.18. Демаркирование дуги. Операция замещает элемент <!ELEMENT А(С*, ...)>, где С является вершиной-входом, элементом <!ELEMENT А (С, . . . )> при условии, что существует элемент < ! ELEMENT В (С* ,...)>, где В отлично от А и символ «*» после С может отсутствовать.
Операции над реляционной схемой.
Определение 4.19. Добавление дублирующего атрибута в реляционную переменную. Операция заменяет пару таблиц Х(...) и Y(A,...) или одну таблицу Y(A, . . .) парой таблиц Х(А, . . .) (или X(А) в случае, если таблица X ранее не существовала) и Y(A,. . .). В формулах, вычисляющих преобразование реляционной схемы в схему-медиатор, использования Y заменяются на использования эквисоединения X и Y по столбцу А с последующим упрощением формулы.
Определение 4.20. Удаление дублирующего атрибута из реляционной переменной. Операция заменяет пару таблиц Х(А,.. .) и Y(A,...) парой таблиц Х(...) и Y(A, . . .) или одной таблицей Y(A, . . .) в случае, если таблица X не содержит других неслужебных столбцов, кроме А. В формулах, вычисляющих преобразование реляционной схемы в схему-медиатор, использования Y заменяются на использования соединения X и Y с последующим упрощением формулы.
Можно показать, что введенные операции над схемой-медиатором позволяют получать из исходной любую наперед заданную схему-медиатор, а операции над схемой-медиатором и DTD-графом дают возможность из данной XML-схемы построить XML-схему с любым наперед заданным DTD-графом. Аналогичным свойством полноты относительно набора реляционных переменных и правил целостности обладают и операции над реляционной схемой [24].
5. Заключение. Рассмотрен вопрос согласованной модификации изменяющихся со временем схем XML-реляционных систем как задачи эволюции схем. Особенностью модели эволюции в таком случае является необходимость выражать не только трансформации схем, но и изменения связывающего их отображения.
Предложена модель эволюции пары согласованных XML- и реляционных схем и связывающего их отображения, использующая промежуточную схему-медиатор. Модель гарантирует сохранение при преобразованиях возможности интерпретировать значения, содержащиеся в XML-документах, на уровне схемы-медиатора. Она покрывает большой класс XML-реляционных отображений.
В качестве дальнейших направлений исследования можно указать расширение класса XML-реляционных отображений, описываемых моделью, путем дальнейшей детализации схемы-медиатора или отображения из нее в реляционную схему.
Summary
Simanovsky A. A. Simultaneous evolution of mutually dependent XML and relational schemas.
The issue of simultaneous evolution of mutually dependent XML and relational schemas is considered. An evolution model describing transformations of a pair of schemas and the mapping between them is presented.
Литература
1. Roddick J. F. A survey of schema versioning issues for database systems // Information and Software Technology. 1995. Vol. 37, N. 7. P. 383-393 (citeseer.ist.psu.edu/roddick95survey.html).
2. Markowitz V. M., Makowsky J. A. Incremental reorganization of relational databases // VLDB. 1987. P. 127-135.
3. Narayanaswamy K., Rao К. V. B. An incremental mechanism for schema evolution in engineering domains // Proc. of the Fourth Intern. Conference on Data Engineering. Washington, DC, USA: IEEE Computer Society, 1988. P. 294-301.
4. McKenzie L. E., Snodgrass R. T. Evaluation of relational algebras incorporating the time dimension in databases // ACM Comput. Surv. 1991. Vol. 23, N 4. P. 501-543.
5. Roddick J. F. Sql/se: a query language extension for databases supporting schema evolution // SIGMOD Rec. 1992. Vol. 21, N 3. P. 10-16.
6. Banerjee J., Kim W., Kim H.-J., Korth H. F. Semantics and implementation of schema evolution in object-oriented databases // SIGMOD Conference. 1987. P. 311-322.
7. Osborn S. L. The role of polymorphism in schema evolution in an object-oriented database // IEEE Transactions on Knowledge and Data Engineering. 1989. Vol. 1, N 3. P. 310-317.
8. Ra Y.-G., Rundensteiner E. A. A transparent object-oriented schema change approach using view evolution // ICDE. 1995. P. 165-172.
9. Peters R. J., Ozsu M. T. An axiomatic model of dynamic schema evolution in objectbase systems // ACM Trans. Database Syst. 1997. Vol. 22, N 1. P. 75-114.
10. Lerner B. S. A model for compound type changes encountered in schema evolution // ACM Trans. Database Syst. 2000. Vol. 25, N 1. P. 83-127.
11. Su H., Kramer D., Chen L. et al. Xem: Managing the evolution of xml documents // RIDE-DM. 2001. P. 103-110.
12. Куке С. В. Аксиоматизация эволюции схемы xml-баз данных // Программирование. 2003. Т. 29, № 3. С. 140-146.
13. Leonardi Е., Bhowmick S. S. Detecting changes on unordered xml documents using relational databases: a schema-conscious approach // CIKM. 2005. P. 509-516.
14. Krishnamurthy R., Kaushik R., Naughton J. F. Efficient xml-to-sql query translation: Where to add the intelligence? 11 VLDB. 2004. P. 144-155.
15. Pal S., Cseri I., Seeliger O. et al. Xquery implementation in a relational database system // VLDB '05: Proc. of the 31st Intern, conference on Very large data bases. VLDB Endowment. 2005. P. 1175-1186.
16. Jagadish H. V., Al-Khalifa S., Chapman A. et al. Timber: A native xml database // VLDB Journal. 2002. Vol. 11, N 4. P. 274-291.
17. Chaudhri A., Rashid A., Zicari R. XML data management: Native XML and XML-enabled database systems. Berkeley, CA, USA: Addison Wesley Longman, 2003. P. 501-543.
18. Bernstein P. A. Applying model management to classical meta data problems // CIDR. Proc. of the 2003 CIDR Conference. 2003. P. 209-220.
19. McBrien P., Poulovassihs A. Schema evolution in heterogeneous database architectures, a schema transformation approach // CAiSE. 2002. P. 484-499.
20. Velegrakis Y., Miller R. J., Popa L. Mapping adaptation under evolving schemas // VLDB. 2003. P. 584-595.
21. Yu C., Popa L. Semantic adaptation of schema mappings when schemas evolve // VLDB. 2005. P. 1006-1017.
22. Shanmugasundaram J., Tufte K., Zhang C. et al. Relational databases for querying xml documents: Limitations and opportunities // VLDB. 1999. P. 302-314.
23. Simanovsky A. Evolution of schema of xml-documents stored in a relational database // Proc. of 6th Baltic DBIS Conference. 2004. P. 192-204.
24. Simanovsky A. Three layer evolution model for xml stored in relational databases // ADBIS Research Communications. 2005. P. 66-79.
Статья представлена к публикации членом редколлегии В. А. Тузовым.
Статья принята к печати 18 сентября 2006 г.