[ Russian ] [ English ]

Эволюция XML-схем

Сергей Кукс,
Санкт-Петербургский государственный университет,
qx@acuid.com

Внесение изменений в схему базы данных - явление типичное, хотя и весьма хлопотное. Поддержка таких изменений актуальна как для производителей СУБД, так и для пользователей. Системы поддержки эволюции схем и контроля версий схемы возникли как средства для сохранения данных, внесенных в систему, схема которой изменилась впоследствии. На сегодняшний день подобные системы интегрированы во многие как реляционные, так и объектные СУБД [1, 5, 6]. Однако для XML-схем вопрос остается открытым. Подробный обзор работ по эволюции схем можно найти в [7, 8].

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

Вторая задача решается путем явной модификации хранимых данных так, чтобы они полностью соответствовали новой схеме немедленно (как например в GemStone [5]), либо с помощью отложенного преобразования данных при первом обращении к ним [10], либо постановкой в соответствие каждому элементу данных набора действий (механизма представлений), которые будут применяться при обращении к нему таким образом, чтобы внешние приложения могли работать с данными как если бы их структура не изменилась. К решению же первой задачи существует несколько разных подходов.

1. Темпоральный подход

Темпоральные базы данных предназначены для хранения информации, которая перестает быть актуальной со временем, однако знание о ней в любой момент времени прошлого необходимо. Примером таких систем служат TXML [3] и TeXOR [4], ставящие в соответствие каждому объекту данных три временных интервала: действительного времени, времени транзакции и времени, определенного пользователем. В результате, приложение работает с данными, снабженными временной меткой, и обрабатывает их в соответствии со своей логикой. Такой подход позволяет легко проследить всю эволюцию данных (правда, ценой их утяжеления), однако он не дает ответа на вопросы, какие изменения можно вносить и как должны изменяться работающие приложения.

2. Многомерный XML

Строго говоря, многомерный XML [9] является не одним из подходов к работе с изменяющейся схемой данных, а источником близких задач. Многомерный XML предназначен для описания контекстно-зависимых данных (то есть данных, значения которых зависят от конкретного значения контекстного параметра). Таким образом, уже для одной схемы уместно говорить о различных ее вариантах, а если в качестве контекстной метки использовать время, то получается структура, аналогичная темпоральной XML-базе данных.

3. Инварианты схемы

Одним из самых распространенных подходов к проблеме эволюции схем является введение системы инвариантов, которым должна удовлетворять схема, и набора правил, применение которых сохраняет их неизменными. Инварианты описывают ограничения, налагаемые на схему данных, и отношения между элементами схемы, а правила определяют процедуры, выполнение которых при внесении изменений в схему данных гарантирует непротиворечивость схемы. Примерами таких систем являются Orion [1] и GemStone [5].

4. Аксиоматическая модель

Авторами системы Tigukat [6] предложена аксиоматическая модель объектной схемы данных, на основе которой создана система поддержки эволюции объектно-ориентированных схем, интегрированная в СУБД Tigukat.

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

Аксиоматическая модель предоставляет мощный механизм для сравнения схем.

5. Аксиоматическая модель XML

Для XML-схем нами была разработана аксиоматическая модель [2, 11], идеи которой позаимствованы из Tigukat. На первом этапе структура XML-документа, заданная в виде DTD, XML-schema, RELAX или как-либо еще, превращается в направленный ациклический граф, узлы которого соответствуют тегам, а ребра отношениям включения тегов. Затем ребра заменяются деревьями, представляющими собой регулярные выражения, которые задают порядок включения тегов друг в друга.

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

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

Литература:

  1. Banerjee J., Kim W., Kim H.-J., Korth H. F. Semantics and Implementation of Schema Evolution in Object-Oriented Databases. In Proc. of the ACM-SIGMOD Annual Conference, pages 311-322, San Francisco, CA, May 1987.
  2. Coox S., Simanovsky A., Regular Expressions in XML Schema Evolution. Представлена на ISTA 2003.
  3. Kalinichenko L. A., Manukyan M. G. Temporal XML. In Proc. of the Fifth East European Symposium on Advances in Databases and Information Systems (ADBIS'01), September 25-28, 2001, Vilnius, Lithuania.
  4. Nшrvеg K., Limstrand M., Myklebust M. TeXOR: Temporal XML Database on an Object-Relational Database System. In Proc. of Perspectives of System Informatics (PSI'03), Novosibirsk, Russia, July 2003.
  5. Penney D. J., Stein J. Class modification in the GemStone object-oriented DBMS. OOPSLA'87 (SIGPLAN Notices). Vol. 22. No. 12. pp. 111-117, 1987.
  6. Peters R. J., Ozsu M. T. An Axiomatic Model of Dynamic Schema Evolution in Objectbase Systems. ACM Transactions on Database Systems, 22(1) (March 1997) 75-114.
  7. Roddik J. F. Schema Evolution in Database Systems - An Updated Bibliography. SIGMOD Rec., 21(4), pp. 35-40. Revised, May 1994.
  8. Roddik J. F. A Survey of Schema Versioning Issues for Database Systems. Information and Software Technology, 37(7): 383-393, 1995.
  9. Stavrakas Y., Gergatsoulis M., Rondogiannis P. Multidimensional XML. Lecture Notes in Computer Science (LNCS), 1830, p.100-109. Springer-Verlag, 2000.
  10. Tan L., Katayama T. Meta operations for type management in object-oriented databases - a lazy mechanism for schema evolution. In Proc. First International Conference on Deductive and Object-Oriented Databases, DOOD'89, Kyoto, Japan, North-Holland, pp. 241-258, 1989.
  11. Кукс С. Аксиоматизация эволюции схемы XML-баз данных. Программирование, 2003, №3, с.1-9.
Supported by Synthesis Group