Maintenance incrémentale des contraintes d'intégrité en XML
Institution:
ToursDisciplines:
Abstract EN:
Nous considérons un environnement où un document XML doit respecter un ensemble de contraintes d'intégrité. Dans ce contexte, nous proposons une notation homogène pour les contraintes d'intégrités posées sur un document XML, exprimées au moyen d'expressions de chemin, et des méthodes génériques de validation de contraintes. La validation est faite dans un parcours du document et combine l'utilisation d'automates d'états finis, qui formalisent les contraintes, et la technique de grammaire d'attributs permettant la définition des règles sémantiques de validation. Une vérification incrémentale des clefs primaires et étrangères est proposée pour préserver la validité d'un document XML lors de l'application d'une séquence d'opérations de mise à jour. Dans cette vérification, seulement les parties concernées par la mise à jour sont traitées, et une séquence de mises à jour est considérée comme une transaction unique. En conséquence, le résultat de la vérification incrémentale n'est pas obtenu après chaque opération, mais après l'application de toute la séquence.
Abstract FR:
We consider a data-exchange environment where an XML document should respect some integrity constraints. In this context, we propose a common notation to specify XML integrity constraints, expressed using a combination of path expression, and we address the problem of constraints validation. We present a general validation method, which performs in only one pass, and combines finite state automata, that formalize integrity constraints, and attribute grammars to allow the definition of semantic rules that validates constraints. An incremental validation of keys and foreign keys is also proposed in this work to preserve validity when documents are modified by a sequenceof updates. Only nodes involved in updates trigger validation tests. A sequence of updates is considered as a unique transaction, and in consequence, incremental validation result is not obtained after each operation, but only after applying all operations in the update sequence.