Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cours BD M1

377 views

Published on

C'est un cours de Théorie des BD destiné à des étudiants en Master 1 Informatique et Système à L'UFR ST de L'Université Blaise Pascal de Clermont Ferrand.

Published in: Education
  • Be the first to comment

  • Be the first to like this

Cours BD M1

  1. 1. Intégration de données Pierre Colomb Clermont Université - Université Blaise Pascal LIMOS - CNRS UMR 6158
  2. 2. Plan Préliminaire Système d’intégration Répondre à une requête Inversion de mapping
  3. 3. Plan Préliminaire Système d’intégration Répondre à une requête Inversion de mapping
  4. 4. Base de Données
  5. 5. Base de Données Schéma Instance
  6. 6. Base de Données } Schéma Base de Données Instance
  7. 7. Base de Données q requête } Schéma Base de Données Instance
  8. 8. Base de Données Sélection q requête Projection Jointure } Schéma Base de Données Instance
  9. 9. Base de données R1 A B C R2 A D
  10. 10. Base de données R1 A B C 1 2 5 2 3 3 3 3 4 R2 A D 1 3 3 4
  11. 11. Base de données R1 A B C q(y, t) :- r1 (x, y, z), r2 (x, t) 1 2 5 2 3 3 3 3 4 R2 A D 1 3 3 4
  12. 12. Base de données R1 A B C q(y, t) :- r1 (x, y, z), r2 (x, t) 1 2 5 2 3 3 3 3 4 R2 A D q B D 1 3 3 4
  13. 13. Base de données R1 A B C q(y, t) :- r1 (x, y, z), r2 (x, t) 1 2 5 2 3 3 3 3 4 R2 A D q B D 1 3 2 3 3 4 3 4
  14. 14. Base de données R1 A B C q(y, t) :- r1 (x, y, z), r2 (x, t) 1 2 5 2 3 3 3 3 4 R2 A D q B D 1 3 2 3 3 4 3 4
  15. 15. Plan Préliminaire Système d’intégration Répondre à une requête Inversion de mapping
  16. 16. Plan Préliminaire Système d’intégration Répondre à une requête Inversion de mapping
  17. 17. Système d’intégration Schéma Global Schémas Locaux Sources de données
  18. 18. Schémas R1 A B C R2 A D Schéma Global S1 A D S2 A B S3 B D Schéma Local
  19. 19. Mappings
  20. 20. Mappings
  21. 21. Mappings
  22. 22. Mappings Chaque relation du schéma local est définie comme une requête sur le schéma global
  23. 23. Mappings Chaque relation du schéma local est définie comme une requête sur le schéma global Local As View Vue = Requête nommée
  24. 24. Mappings R1 A B C R2 A D
  25. 25. Mappings R1 A B C R2 A D S1 A D
  26. 26. Mappings R1 A B C R2 A D s1 (x, y) :- r2 (x, y) S1 A D
  27. 27. Mappings R1 A B C R2 A D s1 (x, y) :- r2 (x, y) S2 A B
  28. 28. Mappings R1 A B C R2 A D s1 (x, y) :- r2 (x, y) s2 (x, y) :- r1 (x, y, z) S2 A B
  29. 29. Mappings R1 A B C R2 A D s1 (x, y) :- r2 (x, y) s2 (x, y) :- r1 (x, y, z) S3 B D
  30. 30. Mappings R1 A B C R2 A D s1 (x, y) :- r2 (x, y) s2 (x, y) :- r1 (x, y, z) S3 B D s3 (y, t) :- r1 (x, y, z), r2 (x, t)
  31. 31. Mappings R1 A B C R2 A D s1 (x, y) :- r2 (x, y) s2 (x, y) :- r1 (x, y, z) s3 (y, t) :- r1 (x, y, z), r2 (x, t)
  32. 32. Systéme d’intégration Un schéma global Mappings : Vues LAV Un schéma local
  33. 33. Plan Préliminaire Système d’intégration Répondre à une requête Inversion de mapping
  34. 34. Plan Préliminaire Système d’intégration Répondre à une requête Inversion de mapping
  35. 35. Problème q Comment calculer les réponses à une requête posée sur le schéma global ?
  36. 36. Problème R1 A B C R2 A D S1 A D S2 A B S3 B D
  37. 37. Problème R1 A B C R2 A D q(y, t) :- r1 (x, y, z), r2 (x, t) S1 A D S2 A B S3 B D
  38. 38. Problème R1 A B C R2 A D q(y, t) :- r1 (x, y, z), r2 (x, t) S1 A D S2 A B S3 B D q B D
  39. 39. Problème R1 A B C R2 A D q(y, t) :- r1 (x, y, z), r2 (x, t) S1 A D S2 A B S3 B D q B D 1 2 2 3 1 4 2 3 3 3 3 5 2 4
  40. 40. Problème R1 A B C R2 A D q(y, t) :- r1 (x, y, z), r2 (x, t) Comment ? S1 A D S2 A B S3 B D q B D 1 2 2 3 1 4 2 3 3 3 3 5 2 4
  41. 41. Problème R1 A B C R2 A D s1 (x, y) :- r2 (x, y) s2 (x, y) :- r1 (x, y, z) s3 (y, t) :- r1 (x, y, z), r2 (x, t) S1 A D S2 A B S3 B D 1 2 2 3 1 4 2 3 3 3 3 5 2 4
  42. 42. Problème R1 A B C R2 A D s1 (x, y) :- r2 (x, y) s2 (x, y) :- r1 (x, y, z) s3 (y, t) :- r1 (x, y, z), r2 (x, t) S1 A D S2 A B S3 B D 1 2 2 3 1 4 Pas exploitable 2 3 3 3 3 5 telles quelles 2 4
  43. 43. Solution Reformuler la requête q sur le schéma global en une requête q’ le schéma local Réécriture de requêtes
  44. 44. Algorithmes Bucket Algorithm MiniCon Algorithm Shared Bucket Algorithm ...
  45. 45. Plan Préliminaire Système d’intégration Répondre à une requête Inversion de mapping
  46. 46. Plan Préliminaire Système d’intégration Répondre à une requête Inversion de mapping
  47. 47. Principe ¯ ¯ ¯ si (X) :- r1 (X1 ), . . . , rm (Xn ) A chaque variable ¯ x ∈ X on associe une fonction ¯ fx (X)
  48. 48. Principe s3 (y, t) :- r1 (x, y, z), r2 (x, t) fx (y, t) fz (y, t)
  49. 49. Principe ¯ ¯ ¯ si (X) :- r1 (X1 ), . . . , rm (Xn ) ¯ Pour chaque prédicat ri (Xj ) On construit une requête ¯ ¯ ri (Xj ) :- sk (X) ¯ ¯ où chaque variable x ∈ X est remplacé par fx (X)
  50. 50. Principe s3 (y, t) :- r1 (x, y, z), r2 (x, t) r1 (fx (y, t), y, fz (y, t)) :- s3 (y, z) r2 (fx (y, t), t) :- s3 (y, z)
  51. 51. Principe q(y, t) :- r1 (x, y, z), r2 (x, t) s1 (x, y) :- r2 (x, y) s2 (y, t) :- r1 (x, y, z) s3 (y, t) :- r1 (x, y, z), r2 (x, t)
  52. 52. Principe q(y, t) :- r1 (x, y, z), r2 (x, t) q(y, t) :- r1 (x, y, z), r2 (x, t) s1 (x, y) :- r2 (x, y) s2 (y, t) :- r1 (x, y, z) s3 (y, t) :- r1 (x, y, z), r2 (x, t)
  53. 53. Principe q(y, t) :- r1 (x, y, z), r2 (x, t) q(y, t) :- r1 (x, y, z), r2 (x, t) s1 (x, y) :- r2 (x, y) r2 (x, y) :- s1 (x, y) s2 (y, t) :- r1 (x, y, z) s3 (y, t) :- r1 (x, y, z), r2 (x, t)
  54. 54. Principe q(y, t) :- r1 (x, y, z), r2 (x, t) q(y, t) :- r1 (x, y, z), r2 (x, t) s1 (x, y) :- r2 (x, y) r2 (x, y) :- s1 (x, y) s2 (y, t) :- r1 (x, y, z) r1 (x, y, fz (x, y)) :- s2 (x, y) s3 (y, t) :- r1 (x, y, z), r2 (x, t)
  55. 55. Principe q(y, t) :- r1 (x, y, z), r2 (x, t) q(y, t) :- r1 (x, y, z), r2 (x, t) s1 (x, y) :- r2 (x, y) r2 (x, y) :- s1 (x, y) s2 (y, t) :- r1 (x, y, z) r1 (x, y, fz (x, y)) :- s2 (x, y) s3 (y, t) :- r1 (x, y, z), r2 (x, t) r2 (fx (y, t), t) :- s3 (y, z) r1 (fx (y, t), y, fz (y, t)) :- s3 (y, z)
  56. 56. Principe q(y, t) :- r1 (x, y, z), r2 (x, t) r2 (x, y) :- s1 (x, y) r1 (x, y, fz (x, y)) :- s2 (x, y) r2 (fx (y, t), t) :- s3 (y, z) r1 (fx (y, t), y, fz (y, t)) :- s3 (y, z)
  57. 57. Principe q(y, t) :- r1 (x, y, z), r2 (x, t) r2 (x, y) :- s1 (x, y) r1 (x, y, fz (x, y)) :- s2 (x, y) r2 (fx (y, t), t) :- s3 (y, z) r1 (fx (y, t), y, fz (y, t)) :- s3 (y, z)
  58. 58. Principe q(y, t) :- r1 (x, y, z), r2 (x, t) r2 (x, y) :- s1 (x, y) r1 (x, y, fz (x, y)) :- s2 (x, y) r2 (fx (y, t), t) :- s3 (y, z) r1 (fx (y, t), y, fz (y, t)) :- s3 (y, z) Programme DataLog
  59. 59. Evaluation q(y, t) :- r1 (x, y, z), r2 (x, t) R1 A B C R2 A D r2 (x, y) :- s1 (x, y) r1 (x, y, fz (x, y)) :- s2 (x, y) r2 (fx (y, t), t) :- s3 (y, z) r1 (fx (y, t), y, fz (y, t)) :- s3 (y, z)
  60. 60. Evaluation q(y, t) :- r1 (x, y, z), r2 (x, t) R1 A B C R2 A D r2 (x, y) :- s1 (x, y) r1 (x, y, fz (x, y)) :- s2 (x, y) r2 (fx (y, t), t) :- s3 (y, z) r1 (fx (y, t), y, fz (y, t)) :- s3 (y, z) S1 A D 1 2 2 3 2 4
  61. 61. Evaluation q(y, t) :- r1 (x, y, z), r2 (x, t) R1 A B C R2 A D r2 (x, y) :- s1 (x, y) 1 2 r1 (x, y, fz (x, y)) :- s2 (x, y) 2 3 r2 (fx (y, t), t) :- s3 (y, z) 2 4 r1 (fx (y, t), y, fz (y, t)) :- s3 (y, z) 4 5 S1 A D 1 2 2 3 2 4
  62. 62. Evaluation q(y, t) :- r1 (x, y, z), r2 (x, t) R1 A B C R2 A D r2 (x, y) :- s1 (x, y) 1 2 r1 (x, y, fz (x, y)) :- s2 (x, y) 2 3 r2 (fx (y, t), t) :- s3 (y, z) 2 4 r1 (fx (y, t), y, fz (y, t)) :- s3 (y, z) 4 5 S2 A B 2 3 3 3
  63. 63. Evaluation q(y, t) :- r1 (x, y, z), r2 (x, t) R1 A B C R2 A D r2 (x, y) :- s1 (x, y) 2 3 f (2, 3) z 1 2 r1 (x, y, fz (x, y)) :- s2 (x, y) 3 3 f (3, 3) z 2 3 r2 (fx (y, t), t) :- s3 (y, z) 1 2 4 r1 (fx (y, t), y, fz (y, t)) :- s3 (y, z) 3 4 5 S2 A B 2 3 3 3
  64. 64. Evaluation q(y, t) :- r1 (x, y, z), r2 (x, t) R1 A B C R2 A D r2 (x, y) :- s1 (x, y) 2 3 f (2, 3) z 1 2 r1 (x, y, fz (x, y)) :- s2 (x, y) 3 3 f (3, 3) z 2 3 r2 (fx (y, t), t) :- s3 (y, z) 1 2 4 r1 (fx (y, t), y, fz (y, t)) :- s3 (y, z) 3 4 5 S3 B D 1 4 3 5
  65. 65. Evaluation q(y, t) :- r1 (x, y, z), r2 (x, t) R1 A B C R2 A D r2 (x, y) :- s1 (x, y) 2 3 f (2, 3)z 1 2 r1 (x, y, fz (x, y)) :- s2 (x, y) 3 3 f (3, 3)z 2 3 f (1, 4) 1 f (1, 4) 2 4 r2 (fx (y, t), t) :- s3 (y, z) x z f (3, 5) 3 f (3, 5) f (1, 4) 4 r1 (fx (y, t), y, fz (y, t)) :- s3 (y, z) x z x f (3, 5) 5 x S3 B D 1 4 3 5
  66. 66. Evaluation q(y, t) :- r1 (x, y, z), r2 (x, t) R1 A B C R2 A D r2 (x, y) :- s1 (x, y) 2 3 f (2, 3)z 1 2 r1 (x, y, fz (x, y)) :- s2 (x, y) 3 3 f (3, 3)z 2 3 f (1, 4) 1 f (1, 4) 2 4 r2 (fx (y, t), t) :- s3 (y, z) x z f (3, 5) 3 f (3, 5) f (1, 4) 4 r1 (fx (y, t), y, fz (y, t)) :- s3 (y, z) x z x f (3, 5) 5 x S3 B D 1 4 3 5
  67. 67. Evaluation q(y, t) :- r1 (x, y, z), r2 (x, t) R1 A B C R2 A D r2 (x, y) :- s1 (x, y) 2 3 f (2, 3)z 1 2 r1 (x, y, fz (x, y)) :- s2 (x, y) 3 3 f (3, 3)z 2 3 f (1, 4) 1 f (1, 4) 2 4 r2 (fx (y, t), t) :- s3 (y, z) x z f (3, 5) 3 f (3, 5) f (1, 4) 4 r1 (fx (y, t), y, fz (y, t)) :- s3 (y, z) x z x f (3, 5) 5 x
  68. 68. Evaluation q(y, t) :- r1 (x, y, z), r2 (x, t) R1 A B C R2 A D 2 3 f (2, 3)z 1 2 3 3 f (3, 3)z 2 3 f (1, 4) 1 f (1, 4) x z 2 4 f (3, 5) 3 f (3, 5) x z f (1, 4) 4 x f (3, 5) 5 x
  69. 69. Evaluation q(y, t) :- r1 (x, y, z), r2 (x, t) R1 A B C R2 A D 2 3 f (2, 3)z 1 2 3 3 f (3, 3)z 2 3 f (1, 4) 1 f (1, 4) x z 2 4 f (3, 5) 3 f (3, 5) x z f (1, 4) 4 x f (3, 5) 5 x
  70. 70. Evaluation q(y, t) :- r1 (x, y, z), r2 (x, t) R1 A B C R2 A D 2 3 f (2, 3)z 1 2 3 3 f (3, 3)z 2 3 f (1, 4) 1 f (1, 4) x z 2 4 q B D f (3, 5) 3 f (3, 5) f (1, 4) 4 x z x f (3, 5) 5 x
  71. 71. Evaluation q(y, t) :- r1 (x, y, z), r2 (x, t) R1 A B C R2 A D 2 3 f (2, 3)z 1 2 3 3 f (3, 3)z 2 3 f (1, 4) 1 f (1, 4) x z 2 4 q B D f (3, 5) 3 f (3, 5) f (1, 4) 4 x z x 3 3 f (3, 5) 5 x 1 4 3 5
  72. 72. Evaluation q(y, t) :- r1 (x, y, z), r2 (x, t) R1 A B C R2 A D 2 3 f (2, 3)z 1 2 3 3 f (3, 3)z 2 3 f (1, 4) 1 f (1, 4) x z 2 4 q B D f (3, 5) 3 f (3, 5) f (1, 4) 4 x z x 3 3 f (3, 5) 5 x 1 4 3 5
  73. 73. Evaluation q(y, t) :- r1 (x, y, z), r2 (x, t) R1 A B C R2 A D 2 3 f (2, 3)z 1 2 3 3 f (3, 3)z 2 3 f (1, 4) 1 f (1, 4) x z 2 4 q B D f (3, 5) 3 f (3, 5) f (1, 4) 4 x z x 3 3 f (3, 5) 5 x 1 4 3 5
  74. 74. Evaluation R1 A B C R2 A D 2 3 f (2, 3)z 1 2 3 3 f (3, 3)z 2 3 f (1, 4) 1 f (1, 4) x z 2 4 f (3, 5) 3 f (3, 5) x z f (1, 4) 4 x f (3, 5) 5 x
  75. 75. Evaluation q(x, y):-r2 (x, y) R1 A B C R2 A D 2 3 f (2, 3)z 1 2 3 3 f (3, 3)z 2 3 f (1, 4) 1 f (1, 4) x z 2 4 q A D f (3, 5) 3 f (3, 5) f (1, 4) 4 x z x f (3, 5) 5 x
  76. 76. Evaluation q(x, y):-r2 (x, y) R1 A B C R2 A D 2 3 f (2, 3)z 1 2 3 3 f (3, 3)z 2 3 f (1, 4) 1 f (1, 4) x z 2 4 q A D f (3, 5) 3 f (3, 5) f (1, 4) 4 x z x 1 2 f (3, 5) 5 x 2 3 2 4
  77. 77. Evaluation q(x, y):-r2 (x, y) R1 A B C R2 A D 2 3 f (2, 3)z 1 2 3 3 f (3, 3)z 2 3 f (1, 4) 1 f (1, 4) x z 2 4 q A D f (3, 5) 3 f (3, 5) f (1, 4) 4 x z x 1 2 f (3, 5) 5 x 2 3 2 4
  78. 78. Evaluation q(x, y):-r2 (x, y) R1 A B C R2 A D 2 3 f (2, 3)z 1 2 3 3 f (3, 3)z 2 3 f (1, 4) 1 f (1, 4) x z 2 4 q A D f (3, 5) 3 f (3, 5) f (1, 4) 4 x z x 1 2 f (3, 5) 5 x 2 3 2 4
  79. 79. Evaluation q(x, y):-r2 (x, y) R1 A B C R2 A D 2 3 f (2, 3)z 1 2 3 3 f (3, 3)z 2 3 f (1, 4) 1 f (1, 4) x z 2 4 q A D f (3, 5) 3 f (3, 5) f (1, 4) 4 x z x 1 2 f (3, 5) 5 x 2 3 2 4 Pas de fonction dans les tuples réponses !!
  80. 80. Conclusion Système d’intégration LAV Calcul des réponses à une requête non trivial Méthode basé sur l’inversion de mappings
  81. 81. Merci Pierre Colomb http://pierre.colomb.me

×