XML to Relational Conversion                   using Theory of Regular Tree Grammar                        Murali Mani, Do...
Sommaire1   Introduction       Motivation & Contexte       Le Problème2   Travail réalisé      Des grammaires régulières  ...
Introduction   Motivation & ContexteAvec l’arrivée d’XPath et de XQuery en 1999, les bases de donnéesXML se développent.Un...
Introduction   Le ProblèmeLes Unions XML dans du relationnel   En XML : Élèves → Étudiants | AuditeurLibre   En relationne...
Travail réalisé   Des grammaires régulièresUne grammaire de base  N                       = {Formation, Nom, Note, Eval, E...
Travail réalisé   Des grammaires régulièresUn exemple de graphe                                  formationnom             ...
Travail réalisé   Des grammaires régulièresNormal Form 1 (NF1)                          Respecte la première restriction  ...
Travail réalisé   Des grammaires régulièresNormal Form 1 (NF1)                           Respecte la première restriction ...
Travail réalisé   Des grammaires régulièresNormal Form 2 (NF2)        Enfreint la première restriction...mais fait dispara...
Travail réalisé   AlgorithmeInliningUn principe simple : représenter un élément par l’ensemble des feuilles deson sous-gra...
Travail réalisé   AlgorithmeInliningUn principe simple : représenter un élément par l’ensemble des feuilles deson sous-gra...
Travail réalisé   AlgorithmeInliningUn principe simple : représenter un élément par l’ensemble des feuilles deson sous-gra...
Travail réalisé   AlgorithmeInliningUn principe simple : représenter un élément par l’ensemble des feuilles deson sous-gra...
Travail réalisé   AlgorithmeInliningUn principe simple : représenter un élément par l’ensemble des feuilles deson sous-gra...
Travail réalisé   AlgorithmeInliningUn principe simple : représenter un élément par l’ensemble des feuilles deson sous-gra...
Travail réalisé   AlgorithmeInliningUn principe simple : représenter un élément par l’ensemble des feuilles deson sous-gra...
Travail réalisé   Création des tables  Résultat d’inlining                                                                ...
Travail réalisé   Création des tablesIntroduction des collections                Des formations d’un côté, des élèves de l...
Travail réalisé   Création des tablesIntroduction des collections                Des formations d’un côté, des élèves de l...
Travail réalisé   Création des tablesIntroduction des collections                             Avec des clés étrangères    ...
Travail réalisé   Création des tablesUn problème de tailleQui dit produit cartésien, dit explosion du nombre de tables. On...
Travail réalisé   Quelques plusIls ont aussi fait...    Les attributs    IDREF, IDREFS    Les récursions    Contraintes sé...
Conclusion   Des problèmesQuelques “problèmes”   Passage rapide sur la création des tables          Des règles précises so...
Conclusion   QuestionsA vous ?                          Des questions ?    Vincent Berthier   XML to Relational Conversion...
Algorithme d’inlininginline : currEl , currSet, attSet ⇒ ResultSet     Assign the set of attributes in A(currEl ) except I...
Prochain SlideShare
Chargement dans…5
×

XML to Relational Conversion using Theory of Regular Tree Grammar

407 vues

Publié le

TC1 : Données et Connaissances pour le web
Présentation de l'article "XML to Relational Conversion using Theory of Regular Tree Grammar" dans le cadre du contrôle continu pour le module.

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
407
Sur SlideShare
0
Issues des intégrations
0
Intégrations
8
Actions
Partages
0
Téléchargements
8
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

XML to Relational Conversion using Theory of Regular Tree Grammar

  1. 1. XML to Relational Conversion using Theory of Regular Tree Grammar Murali Mani, Dongwon Lee VLDB Conference 2002 Vincent Berthier 23 octobre 2012Vincent Berthier XML to Relational Conversion 23 octobre 2012 1 / 15
  2. 2. Sommaire1 Introduction Motivation & Contexte Le Problème2 Travail réalisé Des grammaires régulières Algorithme Création des tables Quelques plus3 Conclusion Des problèmes Questions Vincent Berthier XML to Relational Conversion 23 octobre 2012 2 / 15
  3. 3. Introduction Motivation & ContexteAvec l’arrivée d’XPath et de XQuery en 1999, les bases de donnéesXML se développent.Une question légitime apparaît alors : peut-on passer d’une base XMLà une base relationnelle ?Certaines choses faites en XML ne peuvent pas forcément l’être enrelationnel...Vincent Berthier XML to Relational Conversion 23 octobre 2012 3 / 15
  4. 4. Introduction Le ProblèmeLes Unions XML dans du relationnel En XML : Élèves → Étudiants | AuditeurLibre En relationnel ? Table : Élèves id Étudiant ou AuditeurLibre 1 21 256 728 2 Patrick Dupont Vincent Berthier XML to Relational Conversion 23 octobre 2012 4 / 15
  5. 5. Travail réalisé Des grammaires régulièresUne grammaire de base N = {Formation, Nom, Note, Eval, Etudiant, Personne AuditeurLibre, NumEtudiant, Prenom, Niveau, Coeff , Email, Tel} T = {formation, nom, note, eval, etudiant, personne auditeurLibre, numEtudiant, prenom, Niveau, Coeff , email, tel} S = {Formation} P: Formation → formation(Nom, Formation∗, AuditeurLibre∗) Formation → formation(Nom, Formation∗, Etudiant∗, Note|Eval) Etudiant → etudiant(NumEtudiant, Personne) AuditeurLibre → auditeurLibre(Personne) Personne → personne(Nom, (Email|Tel)) Note → note(Niveau, Coeff ) Eval → eval( ); Nom → nom( ) Niveau → niveau( ); Coeff → coeff ( ) Email → email( ); Tel → tel( ) Vincent Berthier XML to Relational Conversion 23 octobre 2012 5 / 15
  6. 6. Travail réalisé Des grammaires régulièresUn exemple de graphe formationnom formation etudiant note nom auditeurLibre num personne niveau credits nom tel nom email Vincent Berthier XML to Relational Conversion 23 octobre 2012 6 / 15
  7. 7. Travail réalisé Des grammaires régulièresNormal Form 1 (NF1) Respecte la première restriction {X → aX2 ; Y → aY2 } ∈ P ⇒ X = Y Vincent Berthier XML to Relational Conversion 23 octobre 2012 7 / 15
  8. 8. Travail réalisé Des grammaires régulièresNormal Form 1 (NF1) Respecte la première restriction {X → aX2 ; Y → aY2 } ∈ P ⇒ X = Y P: Formation → formation((Nom, Formation∗, AuditeurLibre∗) |(Nom, Formation∗, Etudiant∗, Note|Eval)) Etudiant → etudiant(NumEtudiant, Personne) AuditeurLibre → auditeurLibre(Personne) Personne → personne(Nom, (Email|Tel)) Note → note(Niveau, Coeff ) Eval → eval( ); Nom → nom( ) Niveau → niveau( ); Credits → coeff ( ) Email → email( ); Tel → tel( )Utilisée pour vérifier par exemple la validité d’un document par rapport àun schéma. Vincent Berthier XML to Relational Conversion 23 octobre 2012 7 / 15
  9. 9. Travail réalisé Des grammaires régulièresNormal Form 2 (NF2) Enfreint la première restriction...mais fait disparaître les unions.Avant P: Formation → formation((Nom, Formation∗, AuditeurLibre∗) |(Nom, Formation∗, Etudiant∗, Note|Eval)) Personne → personne(Nom, (Email|Tel))Après P: Formation → formation(Nom, AuditeurLibre∗, Formation∗) Formation → formation(Nom, Formation∗, Etudiant∗, Note) Formation → formation(Nom, Formation∗, Etudiant∗, Eval ) Personne → personne(Nom, Email ) Personne → personne(Nom, Tel ) Vincent Berthier XML to Relational Conversion 23 octobre 2012 8 / 15
  10. 10. Travail réalisé AlgorithmeInliningUn principe simple : représenter un élément par l’ensemble des feuilles deson sous-graphe, en omettant les collections. Exemple : Formation → formation(Nom, Formation∗, Etudiant∗, Note) Formation Nom Formation Etudiant Note Niveau Credits Formation = {} Vincent Berthier XML to Relational Conversion 23 octobre 2012 9 / 15
  11. 11. Travail réalisé AlgorithmeInliningUn principe simple : représenter un élément par l’ensemble des feuilles deson sous-graphe, en omettant les collections. Exemple : Formation → formation(Nom, Formation∗, Etudiant∗, Note) Formation Nom Formation Etudiant Note Niveau Credits Formation = {} Vincent Berthier XML to Relational Conversion 23 octobre 2012 9 / 15
  12. 12. Travail réalisé AlgorithmeInliningUn principe simple : représenter un élément par l’ensemble des feuilles deson sous-graphe, en omettant les collections. Exemple : Formation → formation(Nom, Formation∗, Etudiant∗, Note) Formation Nom Formation Etudiant Note Niveau Credits Formation = {Nom} Vincent Berthier XML to Relational Conversion 23 octobre 2012 9 / 15
  13. 13. Travail réalisé AlgorithmeInliningUn principe simple : représenter un élément par l’ensemble des feuilles deson sous-graphe, en omettant les collections. Exemple : Formation → formation(Nom, Formation∗, Etudiant∗, Note) Formation Nom Formation Etudiant Note Niveau Credits Formation = {Nom} Vincent Berthier XML to Relational Conversion 23 octobre 2012 9 / 15
  14. 14. Travail réalisé AlgorithmeInliningUn principe simple : représenter un élément par l’ensemble des feuilles deson sous-graphe, en omettant les collections. Exemple : Formation → formation(Nom, Formation∗, Etudiant∗, Note) Formation Nom Formation Etudiant Note Niveau Credits Formation = {Nom} Vincent Berthier XML to Relational Conversion 23 octobre 2012 9 / 15
  15. 15. Travail réalisé AlgorithmeInliningUn principe simple : représenter un élément par l’ensemble des feuilles deson sous-graphe, en omettant les collections. Exemple : Formation → formation(Nom, Formation∗, Etudiant∗, Note) Formation Nom Formation Etudiant Note Niveau Credits Formation = {Nom, Note.Niveau} Vincent Berthier XML to Relational Conversion 23 octobre 2012 9 / 15
  16. 16. Travail réalisé AlgorithmeInliningUn principe simple : représenter un élément par l’ensemble des feuilles deson sous-graphe, en omettant les collections. Exemple : Formation → formation(Nom, Formation∗, Etudiant∗, Note) Formation Nom Formation Etudiant Note Niveau Credits Formation = {Nom, Note.Niveau, Note.Credits} Vincent Berthier XML to Relational Conversion 23 octobre 2012 9 / 15
  17. 17. Travail réalisé Création des tables Résultat d’inlining On obtient :A partir des règles de la grammaire : formation1(Nom) formation2(Nom, Note.Niveau, Formation →formation(Nom, Formation∗, AuditeurLibre∗) Note.Credits) Formation →formation(Nom, Formation∗, Etudiant∗, Note) formation3(Nom, Note.Eval) Formation →formation(Nom, Formation∗, Etudiant∗, Eval) etudiant1(NumEtudiant, Nom, Etudiant →etudiant(NumEtudiant, Personne) Email)AuditeurLibre →auditeurLibre(Personne) etudiant2(NumEtudiant, Nom, Personne →personne(Nom, Email) Tel) Personne →personne(Nom, Tel) auditeurLibre1(Nom, Email) auditeurLibre2(Nom, Tel) Mais il manque...le mapping des collections... Vincent Berthier XML to Relational Conversion 23 octobre 2012 10 / 15
  18. 18. Travail réalisé Création des tablesIntroduction des collections Des formations d’un côté, des élèves de l’autre... formation1(Nom) etudiant1(NumEtudiant, P.Nom, P.Email) formation2(Nom, N.Niveau, N.Credits) etudiant2(NumEtudiant, P.Nom, P.Tel) formation3(Nom, Eval) auditeurLibre1(P.Nom, P.Email) auditeurLibre2(P.Nom, P.Tel) Vincent Berthier XML to Relational Conversion 23 octobre 2012 11 / 15
  19. 19. Travail réalisé Création des tablesIntroduction des collections Des formations d’un côté, des élèves de l’autre... formation1(Nom) etudiant1(NumEtudiant, P.Nom, P.Email) formation2(Nom, N.Niveau, N.Credits) × etudiant2(NumEtudiant, P.Nom, P.Tel) formation3(Nom, Eval) auditeurLibre1(P.Nom, P.Email) auditeurLibre2(P.Nom, P.Tel) Une seule solution : un “produit cartésien” En respectant les règles de la grammaire bien sûr. Vincent Berthier XML to Relational Conversion 23 octobre 2012 11 / 15
  20. 20. Travail réalisé Création des tablesIntroduction des collections Avec des clés étrangères formation1auditeurLibre1formation1(nom, auditeurLibre1, formation1auditeurLibre1formation1) formation1auditeurLibre1formation2(nom, auditeurLibre1, formation1auditeurLibre1formation2) formation1auditeurLibre1formation3(nom, auditeurLibre1, formation1auditeurLibre1formation3) formation1auditeurLibre2formation1(nom, auditeurLibre2, formation1auditeurLibre1formation1) etc. Vincent Berthier XML to Relational Conversion 23 octobre 2012 11 / 15
  21. 21. Travail réalisé Création des tablesUn problème de tailleQui dit produit cartésien, dit explosion du nombre de tables. On peutessayer de factoriser... mais au prix du “nullable”. Par exemple : Table : Étudiant + AuditeurLibre → Élèves Nom NumEtudiant P.Email P.Tel null null null Table : Formation Nom Formation N.Niveau N.Credits Eval Élèves null null null null null Vincent Berthier XML to Relational Conversion 23 octobre 2012 12 / 15
  22. 22. Travail réalisé Quelques plusIls ont aussi fait... Les attributs IDREF, IDREFS Les récursions Contraintes sémantiques Vincent Berthier XML to Relational Conversion 23 octobre 2012 13 / 15
  23. 23. Conclusion Des problèmesQuelques “problèmes” Passage rapide sur la création des tables Des règles précises sont données pour les contraintes sémantiques Mais tout est laissé à l’imagination du lecteur lorsqu’il s’agit de choisir comment organiser les tables... Analyse légère On convertit une base de données en XML On reconvertit le fichier XML avec ce que nous proposons On vérifie qu’on retrouve bien ce qu’on avait Conclusion : ça marche ! Vincent Berthier XML to Relational Conversion 23 octobre 2012 14 / 15
  24. 24. Conclusion QuestionsA vous ? Des questions ? Vincent Berthier XML to Relational Conversion 23 octobre 2012 15 / 15
  25. 25. Algorithme d’inlininginline : currEl , currSet, attSet ⇒ ResultSet Assign the set of attributes in A(currEl ) except IDREF and IDREFS attributes to attSet. Let the element type definition of currEl be given by M(currEl ) = (r1 |r2 |...|rn ). Set ResultSet = φ For each ri , we do the following Set currSet = attSet Let the elements which occur in ri with occurence constraints [1, 1] after simplification be {e1 , e2 , ..., en }. For each ei do the following. If M(ei ) ∈ τ then currSet = currSet × ei ˆ Else currSet = currSet × inline(ei , φ, φ) If currSet = φ, currSet = currEl ResultSet = ResultSet ∪ currSet. Return ResultSet Vincent Berthier XML to Relational Conversion 23 octobre 2012 16 / 15

×