300 likes | 446 Views
System RX. Boisson François Fred Cecilia. Plan. Introduction Architecture de System RX Un exemple Le fonctionnement de System RX Conclusion. Introduction. L'évolution des BD Hiérarchiques Réseau Relationnel Objet Besoins actuels (communications) Echanches de données
E N D
System RX Boisson François Fred Cecilia
Plan • Introduction • Architecture de System RX • Un exemple • Le fonctionnement de System RX • Conclusion
Introduction • L'évolution des BD • Hiérarchiques • Réseau • Relationnel • Objet • Besoins actuels (communications) • Echanches de données • non structurées (ou semi-structurées) • XML • Nécessité d'étendre le monde de la BD au monde XML
L'existant • Relationnel • Lourd passé • Normalisé • Langage SQL • XML • Traite des données semi-structurées • Echange de données • Vers et depuis le relationnel • Deux approches XQuery et SQL/XML ses limites • Cohabitation et complémentarité de XML et relationnel • Exigences d'un repository XML • Sémantique et fonctionnalités d'un langage pour XML Nécessité d'un système hybride : pour IBM DB2 => System RX
Notions de bases • XQuery • standard W3C • Traite des données structurées et non structurées • Requêtes FLWOR • SQL/XML • Standard ANSI – ISO • Introduit un type XML data dans le modèle relationnel • Requêtes SQL • Data Model XQuery (QDM) • basé sur la notion de séquence • supporte les schémas de document • utilisation de XPath • défini le typagedes données • Problématique données XML • les données sont des arbres • les Schémas de document sont dynamiques • les types sont variables
Architecture de system RX Format interne commun Utilisation des deux langages d'interrogation Exécution et navigation combinée SQL et XML Indexations des données XML Stockage des données XML en mode natif Utilisation de l'infrastructure relationnelle
Fonctionnalités de system RX • Database hybride relationnelle et XML • Coexistence de données relationnelles et XML à part égale • Support de XQuery et de SQL/XML • Stockage et indexation des données XML en mode natif • Support des schémas dynamiques XML pour assurer le respect de la structure originale du document • Indexation XML avec prédicats sur les paramètres XML et FullText • Réutilisation des moteurs relationnels existants
Extensions au modèle relationnel Un exemple Descripteur : xml Un groupe de documents XML est définit en tant que colonne de la table relationnelle et stocké en format natif Fonction de parsing : XMLParse parsing conversion en format de stockage natif Indexation XML Fonction de validation : XMLValidate parsing validation conversion en format de stockage natif enregistrement des types de données Indexation XML
L'accès à un document XML user • Résultat : • un XML Fragment SQL user Résultat : une table relationnelle plate
Stockage XML en mode natif • Indexation XML • Les requêtes • Réécriture de requête • Optimisation • Génération du plan d'exécution • Choix des index • La phase de run-time • Utilisation des index XML • Navigation XML
XML : Stockage en mode natif • Le défi : Supporter la sémantique des références de nœuds • accès concurrents • niveaux d'isolation de SQL • rollback et recovery • Solution : • stockage des documents XML comme instance QDM • représentation binaire dans un arbre structuré • annotation de type • utilisation d'un dictionnaire
XML : Stockage en mode natif Insertion d'un document • Parsing • Génération d'évènement sax • Groupement des nœuds dans des régions • Indexation des régions • Écriture des régions dans des pages de taille fixe • Pages slot • Zone de data
Organisation des régions Anatomy of a native XML base management Fiebig, Helmer, Kanne,…… Node proxy Node agregate Node literal
Le versionning • Les régions upgradées sont versionnées • Un nouveau lecteur obtient toujours la dernière version d'un nœud • Un lecteur qui a une lecture en cours voit une version consistante du document et obtient la version du nœud correspondant au nœud à l'origine de la traversée de document en cours • Les anciennes versions sont supprimées quand il n'y a plus de références à ce nœud
Indexation XML • Les problèmes : • Les multiples types d'index • Structural index : node name, path to node identifieur • Value index : node data value to node • Full Text Index : tokens to node • La quantité des éléments à indexer • Nœuds, feuilles, attributs, contenus, commentaires • Les index peuvent être plus grands que le document initial • Les schémas dynamiques acceptés sur la colonne XML • Les data de type xdt:untypedAtomic • Les solutions : • Privilégier les value index qui sont plus signifiants que les structural index • Se limiter aux index définis par le résultat d'un XQuery • Typer explicitement les index • Caster automatiquement les opérantes des comparaisons • Pour le full-index : extension du modèle existant en relationnel Exemple :
Indexation XML • Implémentation : • Deux arbres B+ : path index et value index • Path index • à partir des Reverse Path (des feuilles vers root) • associe chaque revPath à un identifieur (pathID) • Value Index • clés de la forme : pathID , value , nodeID , rid • value est de la valeur du node, casté dans le type de l'index • nodeID identifie le nœud dans le document par des Dewey identifier Exemple : creation d'index sur : //name Query : /book/author/name -> accès direct Query : //name= 'lewis Caroll' -> parcours de l'index
Numérotation de Dewey Storing and quering Orderd XMLusing a realtional Database System Tatarinov, Viglas, Beyer, Shanmugasundaram, Sheikita, Zhang
L'exécution d'une requête Un nouveau composant XParseur • Compilation vers un format interne commun • Transformation de la requête en graphe • Réécriture de la requête • Normalisation • Simplification • Optimisation • Analyse de coût d'exécution • heuristique • Génération du plan d'exécution physique • Génération du code exécutable • Phase de Run-Time Internal Query graph model
La réécriture de requêtes • Modélisation des requêtes • Représentation des requêtes par un modèle de graphe de query : le QGM • Utilisation d'une sémantique réseau pour représenter le data Flow • Basé sur les outils de réécriture de query de la database Starbust • Représentation des séquences XQuery comme une valeur de colonne relationnelle dans le QGM • Représentation des path expressions par un arbre de pattern • Approche à grain moyen : • 1 expression path => 1 arbre de pattern avec une seule variable de saut Objectifs : • Normaliser la représentation du QGM • Obtenir le même graphe pour des query ayant la même sémantique • Rendre l'optimiseur plus efficace • Optimiser le data flow • Consolider les opérations • Elimination des calculs redondants • Appliquer transformations logiques
L'internal query graph model (QGM) Extensible/Rule based query rewrite Optimization in Starbust Pirahesh, Hellerstein, Hasan [sigmod 1992] • Plus extensible que l'algèbre relationnelle • Permet l'introduction de constructions nouvelles adaptées à XML (navigation XPath et XQuery) • En version simplifiée : • Opérations • Arcs entre les opérations
La réécriture de requêtes • Choix de System RX • Réutilisation du moteur relationnel • ré-utilisation des réécritures relationnelles • (ex : merge de query imbriqués) • Schémas dynamiques • ne pas appliquer de transformations basées sur le schéma • Nouvelles transformation adaptés à navigation XML • pousser la validation à la base de l'accès aux données • (regrouper les expressions path d'un block FLWOR en 1 seul pattern tree) • (éviter des navigations intermédiaires / les fragments reconstruits et exploiter les XML Index) • pousser en bas les prédicats dans les clauses where avec path expression (utiliser les matching d'index XML pour les valeurs) • Problèmes ouverts • Les comparaisons XQuery ne sont pas toujours transitivesles réécritures qui utilisent la transitivité ne sont pas applicables • Les expressions XQuery sont sensibles à l'ordre elles bloquent les autres transformations
La réécriture de requêtes Exemple :
Choix des index à utiliser • Il faut que l'index contienne un ensemble de résultats requis par la query • Utilisation d'un algorithme de matching de XPath • Critères : • Query contient un prédicat contenant le path • La colonne est dans la clause FOR • La path expression donne le même résultat que le nœud indexé • Le data type de la comparaison match le data type de l'index Exemple de path matching : OK OK non /book //book non numéric string
3 nouveaux opérateurs : XSCAN – XISCAN - XANDOR Génération du plan physique • Opérations : • à partir du QGM production • de plans d'exécution alternatifs • Estimation des coûts d'exécution • Opérateurs relationnels • Opérateurs XML • XML Navigation (XScan) rel. Table Scan • XML IndexScan (XISCAN) rel. Index Scan • AND et OR sur XML Index XANDOR • Sélection du meilleur plan • Coût • Propriétés des data XML • Choix de System RX : • Approche à gros grain des opérations du Run-time • Réutilisation de l'infrastructure relationnelle • Plan d'exécution mélangeant opérateurs relationnels et XML • Sélection des plans par mélange d'analyse de coût et d'heuristique
3 nouveaux opérateurs : XML Navigation XML Index RunTime XQuery Function Library Phase de run-time • Problèmes : • nature dynamique des XML data type • schéma ou pas de schéma • définitions de type parfois ambigües • Solutions de System RX : • extension du moteur relationnel • nouveaux composants adaptés aux données XML • XML Navigation • XML Index RunTime • XQuery Function Library
Un nouveau composant : le module XNAV XML Navigation • Evaluation du document : • Traversée du document en profondeur • Alternance entre matching et construction de tuples • Evaluation des paths sur le stockage natif • Travaille à partir des arbres de patterns fournis par le compilateur • La Query est représentée sous forme d'un arbre: le XNAV tree • Une partie structurale et une partie prédicat • L'examen du document et le matching des nœuds est suivi dans un work array avec des attributs pour enregistrer le matching
Des problèmes ouverts aux futurs chercheurs • System RX est un prototype • qui influera sur les 20 années de recherche à venir • Exemples de sujets de recherche • Les triggers et vues matérialisées • Le transformations de rewriting et d'optimisation dans les mélanges entre flux de tuples et séquences XQuery • Le parallélisme
Pour ceux qui ont envie d'aller plus loin • Anatomy of Native XML Base management System • T. fiebig, S. Helmer, C Kanne, J. Mildenberger, G. Moerkotte, R. Schiele, T. Westmann • Extensible/Rule Based Rewrite Optimization In Starbust • H. Pirahesh, J. Hellerstein, W. Hasan [sigmod 1992] • DB2 Optimization in support of full Text Search • A. Maier, D. Simmen [IEEE 2001] • Storing and querying Ordered XML Using à relational Database System • I. Ttatinov, D. Viglas, K. Beyer, J. Shanmugasundaram, E. Shekita, C. Zhang [Sigmod 2002] • From Tree Pattern to Generalized Tree Patterns: On Efficient Evaluation of XQuery • Z. Chen, H.V. Jagadish, L. Lakshmanan, S. Paparizos • Querying XML streams • V. Josifovski, M. Fontoura, A. Barta