Эволюция 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-схем и обсуждаются вопросы ее применения в смежных областях.
Литература:
- 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.
- Coox S., Simanovsky A., Regular Expressions in XML Schema Evolution. Представлена на ISTA 2003.
- 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.
- 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.
- 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.
- 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.
- Roddik J. F. Schema Evolution in Database Systems - An Updated Bibliography. SIGMOD Rec., 21(4), pp. 35-40. Revised, May 1994.
- Roddik J. F. A Survey of Schema Versioning Issues for Database Systems. Information and Software Technology, 37(7): 383-393, 1995.
- Stavrakas Y., Gergatsoulis M., Rondogiannis P. Multidimensional XML. Lecture Notes in Computer Science (LNCS), 1830, p.100-109. Springer-Verlag, 2000.
- 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.
- Кукс С. Аксиоматизация эволюции схемы XML-баз данных. Программирование, 2003, №3, с.1-9.
|