Validation incrémentale des contraintes dintégrité en XML Maria Adriana Abrão, Béatrice Bouchou, Mírian Halfeld-Ferrari, Dominique Laurent, Martin Musicante.

Slides:



Advertisements
Présentations similaires
LES NOMBRES PREMIERS ET COMPOSÉS
Advertisements

[number 1-100].
M. SAILLOUR Lycée Notre Dame du Kreisker St Pol de Léon
1 3.Langage XSL = XSLT + XSL-FO transformationFormatage.
Classification et prédiction
Classe : …………… Nom : …………………………………… Date : ………………..
Projet de Base de Données Groupe Moteur encadré par Mr MAINGUENAUD KikiTeam – ASI3 – 19 / 06 / 2002 Soizic Geslin Minh Le Hoai Samy Fouilleux Maxime Chambreuil.
ACTIVITES Le calcul littéral (3).
Les Prepositions.
Académie de Créteil - B.C.1. 2 Pour information : Une action est lexpression temporelle Une action est lexpression temporelle (date début et date finde.
Le Modèle Logique de Données
1. Les caractéristiques de dispersion. 11. Utilité.
1 Bases de sondages multiples et redressement des poids extrêmes Le cas de lenquête auprès des intervenants au domicile de personnes fragilisées (IAD –
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
1 Efficient Data and Program Integration Using Binding Patterns Ioana Manolescu, Luc Bouganim, Francoise Fabret, Eric Simon INRIA.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
PAFI Référentiel de données par Sonia Watts DGIF (Direction de la gestion et de linformation forestière) 27 octobre 2010 et 3 novembre 2010.
CALENDRIER PLAYBOY 2020 Cliquez pour avancer.
le profil UML en temps réel MARTE
SUJET D’ENTRAINEMENT n°3
Les structures de données arborescentes
Algorithmes Branch & Bound
II. Chaînage, SDD séquentielles
Cours de physique générale I Ph 11
1.2 COMPOSANTES DES VECTEURS
Détection de co-évolution de gènes Master 2 : Informatique à Finalité Professionnelle et Recherche Unifiée (IFPRU) Parcours Ingénierie de lIntelligence.
SUJET D’ENTRAINEMENT n°2
L’utilisation des bases de données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Test bilan de calcul mental N°1 :
MODELE RELATIONNEL concept mathématique de relation
Mesurer l’intensité du courant électrique
La Saint-Valentin Par Matt Maxwell.
Les fichiers indexés (Les B-arbres)
LES ARBRES IUP 2 Génie Informatique
Arbres Rouge noir Démo : INF3105 Structures de données et algorithmes
Expressions régulières et hash tables
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
1.1 LES VECTEURS GÉOMÉTRIQUES
Tournoi de Flyball Bouin-Plumoison 2008 Tournoi de Flyball
Notre calendrier français MARS 2014
C'est pour bientôt.....
Les Nombres 0 – 100 en français.
Les nombres.
Veuillez trouver ci-joint
Résoudre une équation du 1er degré à une inconnue
Les Nombres! de 0 à 20.
SUJET D’ENTRAINEMENT n°4
ASI 3 Méthodes numériques pour l’ingénieur
Mise en forme en Mathématiques
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
SUJET D’ENTRAINEMENT n°1
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base.
Modélisation des données Niveau conceptuel DON-2 V0-0.
Bases de Physique Nucléaire - 2
CALENDRIER-PLAYBOY 2020.
1. Présentation générale du système
6 Nombres et Heures 20 vingt 30 trente 40 quarante.
LES PILES ET FILES.
Suites numériques Définitions.
Les Chiffres Prêts?
Tolérance de parallélisme
Chapitre 3 :Algèbre de Boole
XPath XML Path UP Web Année universitaire
Transcription de la présentation:

Validation incrémentale des contraintes dintégrité en XML Maria Adriana Abrão, Béatrice Bouchou, Mírian Halfeld-Ferrari, Dominique Laurent, Martin Musicante JIRC2005 – Premières Journées Informatique de la Région Centre

Plan Vue générale de lapproche Contraintes dintegrités: clef et clef étrangère en XML Validation dun document XML from scratch Validation incrémentale avec mises à jour multiples Résultats et conclusion M.A. Abrão – JIRC2005 1

Vue générale: Validation dun document XML (from scratch) Contraintes dintegrité oui / non (pour chaque contrainte) Structure qui regroupe les valeurs clefs trouvées dans le document XML Document XML KeyTrees Validation incrémentale des mises à jour Suite de mises à jour Contraintes dintegrité oui / non (pour chaque contrainte) Document XML KeyTrees Document XML + Mises à jour M.A. Abrão – JIRC2005 2

Préliminaires Un document XML est considéré comme un arbre darité non bornée. Une expression de chemin est un mécanisme pour naviguer et sélectionner des nœuds dun document XML. Expression / /toto //recipe /collection/category Résultat tout le document lensemble vide, puisqu'il n'y a pas de nœud toto tous les élémentsrecipe" du document où qu'ils soient tous les éléments category fils de collection Soups root collection category recipe ingredientnameauthor Shrimp Soup J.Fox name amount... Carrot1 medium recipe ingredientnameauthor Mushroom Soup M.Smith... collection... M.A. Abrão – JIRC2005 3

Contraintes dintegrité en XML Une clef primaire K est représentée par lexpression de chemin: K = ( Q, ( Q, { P 1,..., P m })) où : Q est le chemin du contexte (context) Q est le chemin cible (target) P 1,..., P m sont les chemins composant la clef r n n... Q Q P1P1 Q Q PmPm Une clef peut être: Absolue: le contexte cest la racine du document XML Relative: le contexte nest pas la racine. M.A. Abrão – JIRC2005 4

Contraintes dintegrité en XML K 1 = (/, (./collection,{./category } )) clef absolue K 2 = (/collection, (.//recipe,{./name,./author } )) clef relative K 3 = (//recipe, (./ingredient,{./name } )) clef relative root collection category recipe ingredient Soups nameauthor Shrimp Soup J.Fox name amount ingredient... Carrot 1 medium recipe ingredientnameauthor Mushroom Soup M.Smith... top_recipe 1 Mushroom Soup top_recipes M.Smith collection... M.A. Abrão – JIRC2005 5

Contraintes dintegrité en XML Soit une clef primaire K = ( Q, ( Q, { P 1,..., P m })). Une clef étrangère FK est représentée par : FK = ( Q 0, ( Q 0, { P 0 1,..., P 0 m })) K où : Q 0 = Q r n n... Q P1P1 Q Q PmPm n 0... P01P01 P0mP0m Q 0 M.A. Abrão – JIRC2005 6

Contraintes dintegrité en XML root collection category recipe ingredient Soups nameauthor Shrimp Soup J.Fox name amount ingredient... Carrot 1 medium recipe ingredientnameauthor Mushroom Soup M.Smith... top_recipe 1 Mushroom Soup top_recipes M.Smith collection... FK 4 = (/collection, (./top_recipes/top_recipe,{./recipe_name,./author_name })) K 2 K 2 = (/collection, (.//recipe,{./name,./author } )) M.A. Abrão – JIRC2005 7

Validation dun document XML from scratch Contraintes dintegrité oui / non KeyTrees Validation from scratch Document XML K 2 = (/collection, (.//recipe,{./name,./author } )) e0e0 collection M 2 : e2e2 e3e3 recipe M2:M2: e4e4 e5e5 name M2:M2: e1e1 * e6e6 author (pour chaque contrainte) M 2.e o est la configuration initiale pour la clef K 2. M.A. Abrão – JIRC2005 8

Le processus de vérification des contraintes dintégrité est formalisé par une grammaire dattributs où: les règles de production sont définies par le schéma, et les attributs décrivent des informations sur les contraintes dintégrité. À chaque règle de production sont associées des règles sémantiques, composées dactions et dattributs. E E + T { code } règle de productionrègle sémantique Grammaire dattributs M.A. Abrão – JIRC2005 9

Les règles sémantiques fournissent un mécanisme pour lannotation des nœuds avec des attributs, qui peuvent fonctionner de façon: A BC n mm A BC { n(A) = f (m(B), m(C)) } A BC n mm A BC { m(C) = f (m(B), n(A)) } Ascendante (attributs synthétisés): Parcours ascendant de l'arbre La valeur dun attribut synthétisé est déterminée à partir de valeurs d'attributs des fils de ce nœud. Descendante (attributs hérités): Parcours descendant de l'arbre La valeur dun attribut hérité est déterminée à partir de valeurs d'attributs du père et/ou des frères de ce nœud. Grammaire dattributs M.A. Abrão – JIRC

Direction descendante: Le parcours de haut en bas est utilisé pour déterminer le rôle de chaque nœud en ce qui concerne des clefs primaires et étrangères. Chaque nœud contient un attribut, appelé conf, pour chaque contrainte devant être verifiée. Lattribut conf garde la configuration (M.e) qui exprime le rôle du nœud par rapport à une contrainte. Grammaire dattributs M.A. Abrão – JIRC

root collection recipe nameauthor Mushroom Soup M.Smith... top_recipe recipe_name 1 Mushroom Soup top_recipes M.Smith … conf K 2 = { M 2.e 0 } conf FK 4 = { M 4.e 0 } conf K 2 = { M 2.e 1 } conf FK 4 = { M 4.e 1 } conf K 2 = { M 2.e 2, M 2.e 3 } conf FK 4 = { } conf K 2 = { M 2.e 2, M 2.e 5 } conf FK 4 = { } conf K 2 = { M 2.e 2, M 2.e 6 } conf FK 4 = { } conf K 2 = { } conf FK 4 = { M 4.e 3 } conf K 2 = { } conf FK 4 = { M 4.e 4 } conf K 2 = { } conf FK 4 = { M 4.e 7 } conf K 2 = { } conf FK 4 = { M 4.e 6 } e0e0 collection M 2 : e2e2 e3e3 recipe M2:M2: e4e4 e5e5 name M2:M2: e1e1 * e6e6 author... e0e0 collection M 4 : e2e2 e3e3 top_recipes M4:M4: e5e5 e6e6 recipe_name M4:M4: e1e1 e7e7 author_name e4e4 top_recipe K 2 = (/collection, (.//recipe,{./name,./author})) FK 4 = (/collection, (./top_recipes/top_recipe,{./recipe_name,./author_name})) K 2 Grammaire dattributs Direction descendante: M.A. Abrão – JIRC

Direction ascendante: Dans cette direction, les valeurs liées a chaque clef sont portées jusquaux nœuds contexte. Pour chaque nœud, trois attributs peuvent être définis: k : tuple qui contient une valeur qui compose une clef t : ensemble qui réunit les tuples obtenus par les attributs k des nœuds fils. c : booléen qui représente le résultat de la vérification de tous les attributs t des noeuds fils. Grammaire dattributs M.A. Abrão – JIRC

Grammaire dattributs conf FK 4 = { M 4.e 7 } root collection …recipe name author Mushroom Soup M.Smith... top_recipe recipe_name 1 Mushroom Soup top_recipes M.Smith … conf K 2 = { M 2.e 1 } conf FK 4 = { M 4.e 1 } conf K 2 = { M 2.e 0 } conf FK 4 = { M 4.e 0 } conf K 2 = { M 2.e 2, M 2.e 3 } conf K 2 = { M 2.e 2, M 2.e 5 } conf K 2 = { M 2.e 2, M 2.e 6 } conf FK 4 = { M 4.e 3 } conf FK 4 = { M 4.e 4 } k 4 = conf FK 4 = { M 4.e 6 } c 2 = c 4 = c 2 K = c 4 FK = t 2 = { } t 4 = {< Mushroom Soup, M.Smith>} k 2 = t 4 = {< Mushroom Soup, M.Smith>} e0e0 collection M 2 : e2e2 e3e3 recipe M2:M2: e4e4 e5e5 name M2:M2: e1e1 * e6e6 author e0e0 collection M 4 : e2e2 e3e3 top_recipes M4:M4: e5e5 e6e6 recipe_name M4:M4: e1e1 e7e7 author_name e4e4 top_recipe K 2 = (/collection, (.//recipe,{./name,./author})) FK 4 = (/collection, (./top_recipes/top_recipe,{./recipe_name,./author_name})) K 2 M.A. Abrão – JIRC2005 Direction ascendante: 14

keyTree K2K … context Shrimp Soup key J.Fox target Mushroom Soup key root collection recipe name author Shrimp Soup J.Fox... … c 2 K = c 4 FK = c 2 = c 4 = t 2 = { } k 2 = recipe name author Mushroom Soup M.Smith... t 2 = { } k 2 = category Soups Pendant que les attributs synthétisés sont calculés pour une clef primaire, son arbre keyTree correspondant est construit. M.A. Abrão – JIRC2005 Grammaire dattributs keyTree K2 : 15

Validation dun document XML from scratch Contraintes dintegrité oui / non KeyTrees Validation from scratch Document XML Structures Auxiliaires: (i)CONF: pile pour stocker les attributs hérités. (ii)SYNT: pile pour stocker les attributs synthétisés CONFSYNT (pour chaque contrainte) M.A. Abrão – JIRC

Résultat de la validation dun document XML from scratch Soit un ensemble de clefs primaires et étrangères qui doivent être respectées par un sous-arbre T : K j (1 j m) FK j (m+1 j n) Le résultat de la vérification iniciale appliqué sur T est un tuple, > Oú: est un n-uplet de tuples de la forme. est un m-uplet qui contient un keyTree pour chaque clef primaire. M.A. Abrão – JIRC

Validation incrémentale avec mises à jour multiples Suite de mises à jour KeyTrees Contraintes dintegrité oui / non (pour chaque contrainte) KeyTrees Structures Auxiliaires: (i) CONF: pile pour stocker les attributs hérités. (ii) SYNT: pile pour stocker les attributs synthétisés CONFSYNT Validation Incrémentale Document XML M.A. Abrão – JIRC

Seulement les parties affectées par les mises à jour sont re-vérifiées. Si la suite de mises à jour viole les contraintes dintegrités, alors la suite est rejetée, et le document nest pas changé. Les opérations de mise à jour sont: Insertion Suppression Remplacement Validation incrémentale avec mises à jour multiples M.A. Abrão – JIRC

Opérations de mise à jour M.A. Abrão – JIRC

Validation incrémentale de K2 et FK4 K 2 = (/collection, (.//recipe, {./name,./author } )) FK 4 = (/collection, (./top_recipes/ top_recipe, {./recipe_name,./author_name } )) K 2 Suite de mises à jour: 1.Linsertion de la nouvelle recette Broccoli soup dans la position La suppression de la position La suppression de la position root collection categoryrecipe ingredient Soups nameauthor Shrimp Soup J.Foxnameamount ingredient... Carrot 1 medium recipe ingredientnameauthor Mushroom Soup M.Smith... top_recipe recipe_name 1 Mushroom Soup top_recipes M.Smith collection M.A. Abrão – JIRC

Validation incrémentale de K2 et K2K2 0 target 0 … context Broccoli Soup key D.Simon target 01 0 Shrimp Soup key target 02 1 Mushroom Soup key 2. KeyTreeK 2 après linsertion dans la position 0.1: Insertion de la nouvelle recette dans la position 01: recipe ingredientnameauthor Broccoli Soup D.Simonnameamount... onion 1 medium T : 1. Résultat de la vérification initiale de T :, { }, >,, { }, > >, > target 0Broccoli Soup key D.Simon M.A. Abrão – JIRC

Validation incrémentale de K2 et FK4 K 2 = (/collection, (.//recipe, {./name,./author } )) FK 4 = (/collection, (./top_recipes/ top_recipe, {./recipe_name,./author_name } )) K 2 Suite de mises à jour: 1.Linsertion de la nouvelle recette Broccoli soup dans la position La suppression de la position La suppression de la position root collection categoryrecipe ingredient Soups nameauthor Shrimp Soup J.Foxnameamount ingredient... Carrot 1 medium recipe ingredientnameauthor Mushroom Soup M.Smith... top_recipe recipe_name 1 Mushroom Soup top_recipes M.Smith collection M.A. Abrão – JIRC

keyTree K2K2 0 target 0 … context Broccoli Soup key D.Simon target 01 0 Shrimp Soup key target 02 1 Mushroom Soup yes Suppression de la position 02: Validation incrémentale de K2 et FK4 2. KeyTreeK 2 après la suppression de la position 0.2: 1. Résultat de la vérification initiale du sous-arbre au-dessous de la position 0.2 :, { }, >,, { }, > >, > M.A. Abrão – JIRC

Validation incrémentale de K2 et FK4 K 2 = (/collection, (.//recipe, {./name,./author } )) FK 4 = (/collection, (./top_recipes/ top_recipe, {./recipe_name,./author_name } )) K 2 Suite de mises à jour: 1.Linsertion de la nouvelle recette Broccoli soup dans la position La suppression de la position La suppression de la position root collection categoryrecipe ingredient Soups nameauthor Shrimp Soup J.Foxnameamount ingredient... Carrot 1 medium recipe ingredientnameauthor Mushroom Soup M.Smith... top_recipe recipe_name 1 Mushroom Soup top_recipes M.Smith collection M.A. Abrão – JIRC

Suppression de la position 030: 1. Résultat de la vérification initiale du sous-arbre au-dessous de la position :, { }, >,, { }, > >, > Validation incrémentale de K2 et FK4 2. KeyTreeK 2 après la suppression de la position K2K2 0 target 0 … context Broccoli Soup key D.Simon target 01 0 Shrimp Soup key target 02 1 Mushroom Soup yes 0 M.A. Abrão – JIRC

Suppression de la position 030: 1. Résultat de la vérification initiale du sous-arbre au-dessous de la position : Validation incrémentale de K2 et FK4 2. KeyTreeK 2 après la suppression de la position K2K2 0 target 0 … context Broccoli Soup key D.Simon target 01 0 Shrimp Soup key { }, >,, { }, > >, > M.A. Abrão – JIRC

Opérations de mise à jour Si une opération de mise à jour est acceptée, alors les valeurs clefs rencontrées sont inserées ou supprimées des KeyTrees. Lopération peut être temporairement acceptée, et les violations de contraintes sont annotées dans la KeyTree : Insertion ( duplication de valeurs clefs ) Suppression ( les valeurs clefs à supprimer sont référencées par une clef étrangère ) Test de validité: vérifier si les KeyTrees résultants nont pas de marques de violation. M.A. Abrão – JIRC

Résultats expérimentaux Validation from scratch: Nombre fixe de contraintes: 2 clefs primaires et 1 clef étrangère Quatre documents XML ( à nœuds) (nombre de nœuds) (temps en seconds) M.A. Abrão – JIRC

Résultats expérimentaux Validation from scratch: Un document XML ( nœuds) Le nombre de clefs primaires et clefs étrangères a varié de 1 à (nombre de clefs) (temps en seconds) 5 M.A. Abrão – JIRC

Complexité La complexité de la validation incrémentale est considerée selon les opérations: Insertion: O(n. v kval. c) n : nombre de contraintes dintégrité v kval : nombre maximum des valeurs de clef dans un contexte dun keyTree c : nombre maximum de composants dune clef. Suppression: O( |t del |. n. v kval. c) |t del | : taille du sous-arbre Complexité pour la validation incrémentale avec m opérations de mise à jour: O(m 1. n. v kval. c) + O(m 2. |t del |. n. v kval. c) M.A. Abrão – JIRC

Conclusions La formalisation de la vérification de contraintes d'intégrité a été faite par une grammaire dattributs. Nous pouvons considérer l'utilisation des keyTrees pour évaluer efficacement des requêtes basées sur les valeurs clefs. Notre approche est plus complète que celle proposée par (Chen et al.): mises à jour multiples sur n'importe quel nœud de l'arbre vérification de clefs étrangères integration de la validation du schéma et des contraintes dintegrité. Y. Chen, S. Davidson, and Y. Zheng. Validating constraints in XML. Technical Report, University of Pennsylvania, 2002 [Chen et al.] M.A. Abrão – JIRC