Bases de données réparties

5 605 vues

Publié le

Un Système de Gestion de Bases de Données Réparties est constitué d'un ensemble de processeurs autonomes «appelés sites » (stations de travail, micro-ordinateurs, …) reliés par un réseau de communication qui leur permet d'échanger des données. Un SGBDRé suppose que les données soient stockées sur au moins deux sites. Chaque site est doté de son propre SGBD.
Ce support de cours propose une vue d’ensemble sur les avantages et inconvénients de répartition de données. Aussi, il présente les différentes techniques de répartition

Publié dans : Formation
0 commentaire
5 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

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

Aucune remarque pour cette diapositive

Bases de données réparties

  1. 1. Bases de Données Réparties (BDRé) Abdelouahed Sabri 2011/2012 abdelouahed.sabri@gmail.com Clients, Distributeurs Clients habitants Tétouan Clients habitants Tanger Distributeurs (Nom, Télé)
  2. 2. Plan Introduction C’est quoi une base de données répartie Avantages et Inconvénients Objectifs Modélisation et conception Fragmentation Allocation Répartition avancée La pratique Abdelouahed Sabri 2011/2012 2
  3. 3. Introduction Architectures Architecture centralisée: • Programme d'application et SGBD sur même machine (même site), Architecture client-serveur, notée 2-tiers: • Programme d’application sur le client et SGBD sur le serveur, Architecture 3-tiers: • Interface utilisateur sur le client, programme d’application sur le serveur d’application et le SGBD sur le serveur de données. Bases de données Centralisées Réparties ou distribuées Fédérées Multi-bases Abdelouahed Sabri 2011/2012 3
  4. 4. Introduction BD centralisée: Gérée par un seul SGDB, Stockée dans un emplacement physique unique, Les traitements sont confiés à une seule et même unité. Multi-base: Plusieurs SGBD, hétérogènes ou non, capables d’inter-opérer sans modèle commun (vue commune), BD Fédérée: Plusieurs SGBD hétérogènes sont utilisés comme un seul via un modèle commun (vue commune)  Ex: Utilisés dans la fusion ou acquisition des bases de données de compagnies BD Répartie: Un seul système gérant une collection de bases de données logiquement reliées qui sont réparties sur différents sites accessible via un modèle commun (vue commune) Abdelouahed Sabri 2011/2012 4
  5. 5. Introduction Différence entre bases de données réparties et le modèle client-serveur Abdelouahed Sabri 2011/2012 5 Client-Serveur Bd Répartie Plusieurs bases vues par le client Une base logique vue par l’utilisateur Plusieurs connexions Une seule connexion Localisation explicite des bases (« connection string » ou DSN) Indépendance à la localisation Règles de localisation dans l’application Règles de localisation dans le dictionnaire 1 ordre SQL  1 seule BD 1 ordre SQL  plusieurs BD n transactions mono-base 1 transaction logique Synchronisation des transactions dans l’application Synchronisation automatique des n sous- transactions Plusieurs COMMIT mono-base 1 COMMIT généralisé
  6. 6. Introduction Pourquoi répartir? Besoin de décentralisation des organisations, Partage de données géographiquement reparties. Principe de la répartition: Les données et traitements sont répartis sur différents sites interconnectés par un réseau de communication.  La défaillance d'un site ne peut pas entraîner l'indisponibilité totale du système et sa probabilité peut être négligée grâce à la tolérance aux fautes, assurée par la redondance des informations et des traitements. Abdelouahed Sabri 2011/2012 6
  7. 7. Introduction Système de Gestion de Bases de Données Réparties Constitué d'un ensemble de processeurs autonomes «appelés sites » (stations de travail, micro-ordinateurs, …) reliés par un réseau de communication qui leur permet d'échanger des données. Un SGBDRé suppose que les données soient stockées sur au moins deux sites. • Chaque site est doté de son propre SGBD. Abdelouahed Sabri 2011/2012 7
  8. 8. Introduction Avantages de répartir les données Limiter le transfert d'information (en nombre et en volume) en répartissant les données là où elles sont le plus utilisées. Ceci est particulièrement important pour une base de données dont les différents utilisateurs sont géographiquement dispersés  Exemple: Des agences d'une banque La répartition de charge de travail sur plusieurs unités de traitement opérant en parallèle permet d’accroître les performances. Augmenter la fiabilité et la disponibilité en dupliquant les données sur plusieurs sites  Exemple: Comptes bancaires Abdelouahed Sabri 2011/2012 8
  9. 9. Introduction Inconvénients de répartir les données Inconvénients Complexité des SGBDs, Problème de concurrence d’accès, Surcoût du traitement: la distribution de données entraine des communications inter-sites, Sécurité. Abdelouahed Sabri 2011/2012 9
  10. 10. Introduction Exemple 1: Abdelouahed Sabri 2011/2012 10 Clients, Distributeurs Clients habitants Tétouan Clients habitants Tanger Distributeurs (Nom, Télé)
  11. 11. Introduction Exemple 2: Une banque peut avoir des agences à Casa, à Rabat et à Fès. BD centralisée: 1. Le siège principal de la banque gérerait tous les comptes des clients, 2. Les agences devraient communiquer avec le siège social pour avoir accès aux données. BD répartie: • Les informations sur les comptes sont distribuées dans les agences et celles-ci sont interconnectées (entièrement ou partiellement) afin qu'elles puissent avoir accès aux données externes. Cependant, la répartition de la base de données bancaire est invisible aux agences en tant qu'utilisateurs, et la seule conséquence directe pour elles est que l'accès à certaines données est beaucoup plus rapide. Abdelouahed Sabri 2011/2012 11
  12. 12. Objectifs d’une base de données repartie Les 12 principaux objectifs définis par C.J. Date[1] sont: Abdelouahed Sabri 2011/2012 12 1) Transparence pour l’utilisateur, 2) Autonomie de chaque site, 3) Absence de site privilégié, 4) Continuité de service, 5) Transparence vis-à-vis de la localisation de données, 6) Transparence vis-à-vis de la fragmentation, 7) Transparence vis-à-vis de la réplication, 8) Traitement réparti des requêtes, 9) Indépendance vis-à-vis du matériel, 10) Indépendance vis-à-vis du système d’exploitation, 11) Indépendance vis-à-vis du réseau, 12) Indépendance vis-à-vis du SGBD [1] C.J. Date: auteur du livre An Introduction to Database Systems (8th Edition)
  13. 13. Objectifs d’une base de données repartie (suite) Transparence de localisation: Les utilisateurs accèdent au schéma conceptuel via des vues. Un utilisateur ne sait pas sur quel site se trouvent physiquement les données • Exemple: un client peut ouvrir un compte à Fès et effectuer régulièrement des opérations à Rabat  C'est le système qui recherche le site où sont mémorisées ses informations et non l'utilisateur qui doit l'indiquer. Abdelouahed Sabri 2011/2012 13
  14. 14. Objectifs d’une base de données repartie (suite) Transparence de partitionnement: l’utilisateur ne sait pas comment la base est partitionnée. Transparence de duplication: l’utilisateur ne sait pas s’il existe plusieurs copies d'une même information ou non. Lors de la modification d'une information, c'est le système qui doit se préoccuper de mettre à jour toutes les copies.  Exemple: Un client possède des comptes (courant, épargne logement, ...) à Fès mais effectue régulièrement des retraits d'argent à Rabat, les informations le concernant soient réparties entre Fès à Rabat: l'historique des opérations du compte courant est conservé à Rabat, la gestion de ses autres comptes est assurée à Fès, et le solde du compte courant est dupliqué à Fès et Rabat. Abdelouahed Sabri 2011/2012 14
  15. 15. Objectifs d’une base de données repartie (suite) Indépendance vis-à-vis du SGBD: Un système réparti ne doit pas être dépendant en aucun cas des différents SGBDs, la relation globale doit être exprimée dans un langage normalisé indépendant des constructeurs. Autonomie de chaque site: Vise à garder une administration locale séparée et indépendante pour chaque serveur participant à la base de données répartie afin d'éviter une administration centralisée. • Toute manipulation sur un site (reprise après panne, mises à jour des logiciels) ne doit pas altérer le fonctionnement des autres sites. Abdelouahed Sabri 2011/2012 15
  16. 16. Modélisation d’une base de données réparties Une base de données est généralement modélisée en 3 niveaux: Externe, Conceptuel et Interne. Schéma interne: Description de l’organisation physique des données  Stockage physique Schéma conceptuel: Description d’univers à modéliser avec éventuellement les contraintes liés à ces objets (contraintes d’intégrités)  Domaine des concepteurs de Bases de données Schéma externe: Application accédant aux données : des vues (accès limités)  Domaine des créateurs d’applications  L’avantage de se découpage est de permettre des modifications à un niveau sans que cela interfère (le moins possible) sur les autres niveaux Abdelouahed Sabri 2011/2012 16
  17. 17. Modélisation d’une base de données réparties Pour une base de données réparties, la répartition a lieu dans les trois niveaux: Abdelouahed Sabri 2011/2012 17  les vues des utilisateurs sont présentées sur leur site (site utilisateur); elles correspondent au niveau externe.  Il y a donc répartition des vues.  le schéma conceptuel (global) est associé aux schémas locaux des sites physiques via un schéma de fragmentation (la manière dont la base est découpée) et un schéma d'allocation (la manière dont les fragments sont répartis).  il n'y a pas de schéma interne global, mais des schémas locaux internes.
  18. 18. Conception d’une base de données répartie La définition du schéma de répartition est la partie la plus délicate de la phase de conception d'une base de données répartie: Il n y’a pas de méthode standard  on se base sur les besoins, L'administrateur (le concepteur) doit prendre des décisions sur comment la répartition doit être faite. L'objectif est de minimiser: • le nombre de transferts entre sites, • les temps de transfert, • le volume de données transférées, • les temps moyens de traitement des requêtes, • le nombre de copies de fragments. Abdelouahed Sabri 2011/2012 18
  19. 19. Conception d’une base de données répartie Méthodes de conception: Deux approches fondamentales sont à l'origine de la conception des bases de données réparties : 1. La conception descendante (Top down design), 2. La conception ascendante (Bottom up design). NB: Pour les deux approches il faut recueillir l'expression des besoins des utilisateurs afin de créer un schéma conceptuel unique et en déduire les vues externes à prévoir. Abdelouahed Sabri 2011/2012 19
  20. 20. Conception d’une base de données répartie Conception descendante Conception du schéma conceptuel global de la base de données répartie, Création du schéma de fragmentation : • la base de données sera découpée en fragments distincts constituant une partition de la base  l'intersection de ces fragments doit être vide et leur réunion doit redonner le schéma global. Création du schéma d'allocation : • les fragments doivent être distribués entre les différents sites. Création d'un schéma local pour chaque site, relatif aux fragments dévolus à ce site, Création des schémas internes : • implémentation des données des fragments sur les supports physiques de stockage. Abdelouahed Sabri 2011/2012 20
  21. 21. Conception d’une base de données répartie Conception ascendante Il existe plusieurs bases de données disjointes (plusieurs schémas conceptuels locaux) qu’il faut réunir en un schéma conceptuel global • Intégration (fédération) des BD existantes Abdelouahed Sabri 2011/2012 21
  22. 22. Fragmentation Définition: On définit la fragmentation comme étant le processus de décomposition d'une base de donnée logique (telle que la voient les utilisateurs) en un ensemble de « sous »-bases de données appelés fragments. Caractéristiques:  La fragmentation doit être sans perte d'information,  Pour toute donnée d’une table R, il existe un fragment Ri de la table R qui possède cette donnée.  Règle de complétude  La non perte d'informations est vérifiée par recomposition de la base à partir des différents fragments en utilisant le langage de manipulation de données (SQL par exemple)  leur réunion doit redonner le schéma global  Règles de reconstruction  Les différents fragments doivent « de préférence » être exclusifs (leur intersection est vide)  Dans le cas contraire on parle de duplication  il faut affiner la fragmentation Abdelouahed Sabri 2011/2012 22
  23. 23. Fragmentation Techniques de fragmentation Il existe différentes façons pour fragmenter une base de données L'unité de fragmentation détermine la nature de l'élément le plus petit dont les composants ne peuvent être fragmentés • On parle de granularité: taille du plus petit élément Une granularité fine donne de grandes possibilités pour la fragmentation et autorise une répartition flexible et efficace de la base de données, mais à l'inconvénient de provoquer une certaine lourdeur pour la recomposition des informations. A l'opposé, une granularité élevée permet une gestion simple de la fragmentation, mais fournit des possibilités très limitées pour la fragmentation. L'unité de fragmentation est généralement laissée au libre choix de l'administrateur. Il y a quatre unités de fragmentation de base: Relations, Tuples, Attributs, Valeurs Abdelouahed Sabri 2011/2012 23
  24. 24. Fragmentation Fragmentation par relation (classe d’objets) Ce sont les classes (relation ou table dans le modèle relationnel, entité en Entité-Association, classe dans le modèle orienté-objet) qui peuvent être réparties dans des fragments différents. Les fragments sont définis à partir des "classes" de la base de données. Toutes les occurrences d'une même classe appartiennent au même fragment. L'opération de partitionnement est la définition de sous schémas. L'opération de recomposition est la réunion de sous schémas. Abdelouahed Sabri 2011/2012 24
  25. 25. Fragmentation Fragmentation par relation (suivant) Exemple: Banque • Trois tables: Agence, Clients, Compte Abdelouahed Sabri 2011/2012 25 Compte NoClient Agence TypeCompte Somme 174 723 Lausanne courant 123 345.89 177 498 Genève courant 34 564.00 201 639 Lausanne courant 45 102.50 201 639 Lausanne dépôt 325 100.00 203 446 Genève courant 274 882.95 Client NoClient NomClient Prénom Age 174 723 Villard Jean 29 177 498 Cattell Blaise 38 201 639 Tesllis Alan 51 203 446 Kovalsky Validmir 36 Agence Agence Adresse Lausanne Rue du Lac, 3, 1002 Lausanne Genève Avenue du Mont Blanc, 21, 1200 Genève • Cette base peut être fragmentée en deux fragments: {Compte, Client} et {Agence}.
  26. 26. Fragmentation Fragmentation horizontale Appelée aussi fragmentation par occurrences ou par tuples, La fragmentation horizontale est basée sur un découpage (horizontal) des tuples des tables • Les occurrences d'une même table peuvent être réparties dans des fragments différents (avec tous les attributs) • Le découpage est effectué en utilisant la sélection, • La reconstruction est effectuée en utilisant l’opération d’union. Abdelouahed Sabri 2011/2012 26
  27. 27. Fragmentation Fragmentation horizontale (suivant) Exemple: Banque • La table Compte peut être divisée en deux fragments par répartition des tuples en deux catégories : • Compt1 = σ TypeCompte = courant(Compte) • Compt2 = σ TypeCompte = dépôt (Compte) Abdelouahed Sabri 2011/2012 27 Compt1 NoClient Agence TypeCompte Somme 174 723 Lausanne courant 123 345.89 177 498 Genève courant 34 564.00 201 639 Lausanne courant 45 102.50 203 446 Genève courant 274 882.95 Compt2 NoClient Agence TypeCompte Somme 201 639 Lausanne dépôt 325 100.00 • La recomposition est réalisée par une opération d’union Compte = Compt1 ∪ Compt2
  28. 28. Fragmentation Fragmentation verticale (par attributs) Les fragments sont construits à partir de quelques attributs d'une relation: • Ce sont les attributs (avec leur occurrences) d'une même relation qui peuvent être répartis dans des fragments différents. • Toutes les valeurs des occurrences pour un même attribut se trouvent dans le même fragment. • La répartition des attributs dans différents fragments ne peut être correcte que si l'identifiant (ou identité d'objet) est dupliqué dans chaque fragment  cet identifiant est utile pour la reconstruction (décomposition sans perte d'informations. Le découpage d'une relation en sous tables est effectuée utilisant la projection sur les colonnes composant chaque fragment. La reconstruction est effectuée par jointure des différents fragments. Abdelouahed Sabri 2011/2012 28
  29. 29. Fragmentation Fragmentation verticale (suite) Exemple: Banque • Dans les guichets bancaires on n’a besoin de connaître que les soldes des comptes, alors que les services de contentieux ont besoin de connaître les informations complètes sur chaque client. • Compt1 = ∏ NoClient, Somme(Compte) • Compt1 = ∏ Noclient, Agence, TypeCompte(Compte) Abdelouahed Sabri 2011/2012 29 Compt1 NoClient Somme 174 723 123 345.89 177 498 34 564.00 201 639 45 102.50 201 639 325 100.00 203 446 274 882.95 Compt2 NoClient Agence TypeCompte 174 723 Lausanne courant 177 498 Genève courant 201 639 Lausanne courant 201 639 Lausanne dépôt 203 446 Genève courant • La recomposition est réalisée par une opération de jointure Compte = Compt1 |x| Compt2
  30. 30. Fragmentation Fragmentation hybride (par valeurs) Cette fragmentation combine la fragmentation horizontale (par occurrences) et verticale (par attributs). • Le partitionnement est effectué par une combinaison de projections et de sélections. • Les occurrences et les attributs peuvent donc être répartis dans des différents fragments. La reconstruction est effectuée par combinaison de jointures et d'unions des différents fragments. Abdelouahed Sabri 2011/2012 30
  31. 31. Fragmentation Fragmentation hybride (par valeurs) Exemple: Banque • Compt1 = ∏ NoClient, Somme (σ TypeCompte = courant(Compte)) • Compt2 = ∏ NoClient, Somme ( σ TypeCompte = dépôt (Compte)) • Compt3 = ∏ NoClient, AgenceCompte) • Compt4 = ∏ Noclient, TypeCompte(Compte) Abdelouahed Sabri 2011/2012 31 Compt1 NoClient Somme 174 723 123 345.89 177 498 34 564.00 201 639 45 102.50 203 446 274 882.95 Compt2 NoClient Somme 201 639 325 100.00 Compt4 NoClient TypeCompte 174 723 courant 177 498 courant 201 639 courant 201 639 dépôt 203 446 courant • La reconstruction Compte= (Compt1 ∪ Compt2 ) |x| Compt3 |x| Compt4 Compt3 NoClient Agence 174 723 Lausanne 177 498 Genève 201 639 Lausanne 201 639 Lausanne 203 446 Genève
  32. 32. Fragmentation Méthodologie de la fragmentation horizontale Question: Comment décomposer une base de données en fragments horizontaux??? On se base sur les requêtes d'interrogation ou de mise à jour les plus importantes et les plus fréquentes. Pour le cas de la fragmentation horizontale on se base sur les conditions de sélections. • Soient c1, c2, ..., cn les conditions de sélection qui ont été extraites des requêtes, • On forme l'ensemble des 2n conjonctions de conditions où chaque condition élémentaire est prise dans sa forme positive ou dans sa forme négative Abdelouahed Sabri 2011/2012 32 • On ôte de cet ensemble les conjonctions de condition qui sont toujours fausses, et on simplifie les autres.
  33. 33. Fragmentation Méthodologie de la fragmentation horizontale Exemple: On considère une table CUISINIER que l'on se propose de répartir en fragments horizontaux Abdelouahed Sabri 2011/2012 33 On commencera par se baser sur les requêtes les plus fréquentes: R1: SELECT numero, numeq FROM CUISINIER WHERE prenom = 'Jean' AND nom LIKE '%R%'; R2: SELECT * FROM CUISINIER WHERE numeq = '1'; R3: SELECT numero, nom FROM CUISINIER WHERE numeq = '2' AND prenom = 'Jean'; Cuisinier NUMERO NOM PRENOM NUMEQ 12 DUPONT Jean 1 34 DUPONT Jeanne 2 17 DUBOIS Robert 1 22 DUBALAI Aline 1 26 DUGENOU Jean 2 11 DURAND Aline 2 38 DURACUIRE ROBERT 2 9 DURALUMIN Roberte 1 13 DURDUR Jean 2 20 DURALEX Jean 1
  34. 34. Fragmentation Méthodologie de la fragmentation horizontale Exemple (suite): Pour effectuer la fragmentation horizontale on se base sur les critères de recherche, c'est à dire les conditions exprimées dans les "WHERE" des ordres SQL. • Soit – A : prenom = 'Jean‘ – B : nom LIKE '%R%‘ – C : numeq = '1‘ – D : numeq = '2‘ • Les condition de sélection: – C1 = A ʌ B – C2 = C – C3 = D ʌ A • A partir des conditions Ci, on peut construire l'ensemble des conjonctions CCj (i=1..8) de conditions : Abdelouahed Sabri 2011/2012 34 CC = {C1 ʌ C2 ʌ C3, ¬C1 ʌ C2ʌ C3, C1ʌ ¬C2ʌ C3, C1ʌ C2ʌ ¬C3, ¬C1ʌ ¬C2ʌ C3, C1ʌ ¬C2ʌ ¬C3, ¬C1ʌ C2ʌ ¬C3, ¬C1ʌ ¬C2ʌ ¬C3}
  35. 35. Fragmentation Méthodologie de la fragmentation horizontale Exemple (suite): Evaluons chacun des termes : • C1ʌ C2ʌ C3 = Φ • ¬C1ʌ C2ʌ C3 = Φ • C1ʌ ¬C2ʌ C3 = A ʌ B ʌ D • C1ʌ C2ʌ ¬C3 = A ʌ B ʌ C • ¬C1ʌ ¬C2ʌ C3 = A ʌ ¬B ʌ D • C1ʌ ¬C2ʌ ¬C3 = A ʌ B ʌ ¬C ʌ ¬D • ¬C1ʌ C2ʌ ¬C3 = (¬A ∪ ¬B)ʌ C • ¬C1ʌ ¬C2ʌ ¬C3 = (¬A ʌ ¬B ʌ ¬C) ∪ (¬A ʌ ¬C ʌ ¬D) ∪ (¬B ʌ ¬C ʌ ¬D) Supposons, comme hypothèse supplémentaire (contrainte d’intégrité) , qu'il n'y a que deux équipes de cuisiniers (1 et 2) ce qui implique • ¬Cʌ ¬D = Φ, ¬C = D, ¬D = C Abdelouahed Sabri 2011/2012 35
  36. 36. Fragmentation Méthodologie de la fragmentation horizontale Exemple (suite): On a alors les 5 conjonctions de conditions significatives : • CC1 = C1ʌ ¬C2ʌ C3 = Aʌ Bʌ D F1 = SELECT *FROM cuisinier WHERE prenom='Jean' AND nom LIKE '%R%' AND numeq ='2' • CC2 = C1ʌ C2ʌ ¬C3 = Aʌ Bʌ C F2 = SELECT *FROM cuisinier WHERE prenom='Jean' AND nom LIKE '%R%' AND numeq ='1’ • CC3 = ¬C1ʌ ¬C2ʌ C3 = Aʌ ¬Bʌ D F3 = SELECT *FROM cuisinier WHERE prenom='Jean' AND nom NOT LIKE '%R%' AND numeq ='2' • CC4 = ¬C1ʌ C2ʌ ¬C3 = (¬A ∪ ¬B)ʌ C F4 = SELECT *FROM cuisinier WHERE (prenom !='Jean' OR nom NOT LIKE '%R%' ) AND numeq ='1' • CC5 = ¬ C1 ʌ ¬ C2 ʌ ¬ C3 = ¬ A ʌ D F4 = SELECT *FROM cuisinier WHERE prenom !='Jean' AND numeq ='2' Abdelouahed Sabri 2011/2012 36
  37. 37. Fragmentation Méthodologie de la fragmentation horizontale Exemple (suite): Ces 5 conditions définissent les fragments horizontaux (exclusifs) : Abdelouahed Sabri 2011/2012 37 Cuisinier NUMERO NOM PRENOM NUMEQ 12 DUPONT Jean 1 34 DUPONT Jeanne 2 17 DUBOIS Robert 1 22 DUBALAI Aline 1 26 DUGENOU Jean 2 11 DURAND Aline 2 38 DURACUIRE ROBERT 2 9 DURALUMIN Roberte 1 13 DURDUR Jean 2 20 DURALEX Jean 1 F1 NUMERO NOM PRENOM NUMEQ 13 DURDUR Jean 2 F2 NUMERO NOM PRENOM NUMEQ 20 DURALEX Jean 1 F3 NUMERO NOM PRENOM NUMEQ 26 DUGENOU Jean 2 F4 NUMERO NOM PRENOM NUMEQ 12 DUPONT Jean 1 17 DUBOIS Robert 1 22 DUBALAI Aline 1 9 DURALUMIN Roberte 1 F5 NUMERO NOM PRENOM NUMEQ 34 DUPONT Jeanne 2 11 DURAND Aline 2 38 DURACUIRE ROBERT 2 Fragmentation
  38. 38. Fragmentation Méthodologie de la fragmentation horizontale Exercice: On considère la table Compte (NoClient, Agence, TypeCompte, Somme) . Proposer un schéma de fragmentation horizontal en tenant compte des requêtes suivantes • R1 = ∏ NoClient, Agence (σTypeCompte = 'courant' and Somme > 100000(Compte)) • R2 = σ Agence = 'Lausanne’(Compte) • R3 = ∏ NoClient, Somme(σ Agence = ' Genève’ and TypeCompte = 'courant' (Compte)) Abdelouahed Sabri 2011/2012 38 Compte NoClient Agence TypeCompte Somme 174 723 Lausanne courant 123 345.89 177 498 Genève courant 34 564.00 201 639 Lausanne Courant 45 102.50 201 639 Lausanne Dépôt 325 100.00 203 446 Genève Courant 274 882.95
  39. 39. Fragmentation Méthodologie de la fragmentation verticale Question: Comment décomposer une base de données en fragments verticaux??? On se base les requêtes d’interrogation ou de mise à jour prédéfinies les plus importantes et les plus fréquentes pour extraire les attributs concernés • Les fragments verticaux sont exclusifs, sauf en ce qui concerne le (ou les) attribut(s) de jointure (clé, identifiant, OID) qui sont communs à tous les fragments et qui seront utilisés pour que la décomposition soit sans perte d'information (reconstruction). Abdelouahed Sabri 2011/2012 42
  40. 40. Fragmentation Méthodologie de la fragmentation verticale Pour le cas de la fragmentation verticale on se base sur les conditions de projections. Soient p1, p2, ..., pn les conditions de projection qui ont été extraites des requêtes, On forme l'ensemble des 2n intersections des expressions de projection où chacune est soit l'expression initiale soit son complément. Abdelouahed Sabri 2011/2012 43 On ôte de cet ensemble les conjonctions de condition qui sont toujours fausses, et on simplifie les autres. NB: Dans le cas où la requête ne possède pas d’attributs de jointure il faut les ajouter.
  41. 41. Fragmentation Méthodologie de la fragmentation verticale Exemple : On considère une table CUISINIER que l'on se propose de répartir en fragments verticaux Abdelouahed Sabri 2011/2012 44 On commencera par se baser sur les requêtes les plus fréquentes: R1: SELECT numero, numeq FROM CUISINIER WHERE prenom = 'Jean' AND nom LIKE '%R%'; R2: SELECT * FROM CUISINIER WHERE numeq = '1'; R3: SELECT numero, nom FROM CUISINIER WHERE numeq = '2' AND prenom = 'Jean'; Cuisinier NUMERO NOM PRENOM NUMEQ 12 DUPONT Jean 1 34 DUPONT Jeanne 2 17 DUBOIS Robert 1 22 DUBALAI Aline 1 26 DUGENOU Jean 2 11 DURAND Aline 2 38 DURACUIRE ROBERT 2 9 DURALUMIN Roberte 1 13 DURDUR Jean 2 20 DURALEX Jean 1
  42. 42. Fragmentation Méthodologie de la fragmentation verticale Exemple (suite): Pour effectuer la fragmentation verticale on se base sur les projections utilisées: • P1 : (numero, numeq) • P3 : (numero, nom) • P2 n'est pas considérée comme une projection car tous les attributs sont demandés dans la requête A partir des projection Pi, on construit l'ensemble IP des intersections de projections : Abdelouahed Sabri 2011/2012 45 Où ¬Pj désigne le complément de Pj sur l'ensemble des attributs de la table CUISINIER avec l'ajout obligatoire de la clé numero : • ¬P1 = (numero, nom, prenom) • ¬P3 = (numero, prenom, numeq)  IP = { P1 ∩ P3, ¬ P1 ∩ P3, P1 ∩ ¬P3, ¬P1 ∩ ¬P3}
  43. 43. Fragmentation Méthodologie de la fragmentation verticale Exemple (suite): P1 ∩ P3 = (numero, numeq) ∩ (numero, nom) = (numero) ¬ P1 ∩ P3= (numero, nom, prenom) ∩ (numero, nom) = (numero, nom) P1 ∩ ¬P3= (numero, numeq) ∩ (numero, prenom, numeq)= (numero, numeq) ¬P1 ∩ ¬P3 = (numero, nom, prenom) ∩ (numero, prenom, numeq)= (numero, prenom)  Fragments verticaux: F1 = ∏numero(Cuisinier) F2 = ∏numero, nom(Cuisinier) F3 = ∏numero, numeq(Cuisinier) F4 = ∏numero, prenom(Cuisinier) Abdelouahed Sabri 2011/2012 46
  44. 44. Fragmentation Méthodologie de la fragmentation hybride C’est la combinaison des deux fragmentations: horizontale et verticale. Abdelouahed Sabri 2011/2012 47 F1 NUMERO NOM PRENOM NUMEQ 13 DURDUR Jean 2 F2 NUMERO NOM PRENOM NUMEQ 20 DURALEX Jean 1 F3 NUMERO NOM PRENOM NUMEQ 26 DUGENOU Jean 2 F4 NUMERO NOM PRENOM NUMEQ 12 DUPONT Jean 1 17 DUBOIS Robert 1 22 DUBALAI Aline 1 9 DURALUMIN Roberte 1 F5 NUMERO NOM PRENOM NUMEQ 34 DUPONT Jeanne 2 11 DURAND Aline 2 38 DURACUIRE ROBERT 2 Fragments horizontaux Pour chaque fragment horizontal, on regarde quelles sont les requêtes qui les concernent (sélection): R1: SELECT numero, numeq FROM CUISINIER WHERE prenom = 'Jean' AND nom LIKE '%R%'; R2: SELECT * FROM CUISINIER WHERE numeq = '1'; R3: SELECT numero, nom FROM CUISINIER WHERE numeq = '2' AND prenom = 'Jean‘;
  45. 45. Fragmentation Méthodologie de la fragmentation hybride Les intersections de projection de chacun des fragments horizontaux, avec les fragments correspondants sont donc: Abdelouahed Sabri 2011/2012 48 F1 NUMERO NOM PRENOM NUMEQ 13 DURDUR Jean 2 F2 NUMERO NOM PRENOM NUMEQ 20 DURALEX Jean 1 F3 NUMERO NOM PRENOM NUMEQ 26 DUGENOU Jean 2 F4 NUMERO NOM PRENOM NUMEQ 12 DUPONT Jean 1 17 DUBOIS Robert 1 22 DUBALAI Aline 1 9 DURALUMIN Roberte 1 F5 NUMERO NOM PRENOM NUMEQ 34 DUPONT Jeanne 2 11 DURAND Aline 2 38 DURACUIRE ROBERT 2 R1: SELECT numero, numeq FROM CUISINIER WHERE prenom = 'Jean' AND nom LIKE '%R%'; R2: SELECT * FROM CUISINIER WHERE numeq = '1'; R3: SELECT numero, nom FROM CUISINIER WHERE numeq = '2' AND prenom = 'Jean'; R1 R3 R1 R2 R3 R2 Aucune
  46. 46. Fragmentation Méthodologie de la fragmentation hybride Le fragment 1 est concerné par les requêtes R1 et R3, donc par tous les éléments de l'ensemble IP construits à partir de P1 et P3, soit IP1 ={P1 ∩ P3, ¬ P1 ∩ P3, P1 ∩ ¬P3, ¬ P1 ∩ ¬P3} IP1 = {(numero), (numero, nom), (numero, numeq), (numero, prenom)} Le fragment 2 est concerné par les requêtes R1 et R2, donc seulement par les projections P1 et ¬ P1, soit IP2= {P1 ∩ P1, ¬ P1 ∩ ¬ P1} IP2 = {(numero, numeq), (numero, nom, prenom)} Le fragment 3 est concerné par la requête R3 donc seulement par les projections P3 et ~P3, soit IP3={ P3 ∩ P3 , ¬P3 ∩ ¬P3} IP3 = {(numero, nom), (numero, prenom, numeq)} Le fragment 4 est concerné par la requête R2, donc par tous les attributs IP4 = {(numero, nom, prenom, numeq)} Le fragment 5 n'est concerné par aucune des requêtes, donc par tous les attributs : IP5 = {(numero, nom, prenom, numeq)} Abdelouahed Sabri 2011/2012 49
  47. 47. Fragmentation Méthodologie de la fragmentation hybride Les différents fragments: Abdelouahed Sabri 2011/2012 50 F21 NUMERO NUMEQ 20 1 F32 NUMERO PRENOM NUMEQ 26 Jean 2 F41 NUMERO NOM PRENOM NUMEQ 12 DUPONT Jean 1 17 DUBOIS Robert 1 22 DUBALAI Aline 1 9 DURALUMIN Roberte 1 F51 NUMERO NOM PRENOM NUMEQ 34 DUPONT Jeanne 2 11 DURAND Aline 2 38 DURACUIRE ROBERT 2 F11 NUMERO 13 F12 NUMERO NOM 13 DURDUR F13 NUMERO NUMEQ 13 2 F14 NUMERO PRENOM 13 Jean F22 NUMERO NOM PRENOM 20 DURALEX Jean F31 NUMERONOM 26 DUGENOU Cuisinier NUMERO NOM PRENOM NUMEQ 12 DUPONT Jean 1 34 DUPONT Jeanne 2 17 DUBOIS Robert 1 22 DUBALAI Aline 1 26 DUGENOU Jean 2 11 DURAND Aline 2 38 DURACUIRE ROBERT 2 9 DURALUMIN Roberte 1 13 DURDUR Jean 2 20 DURALEX Jean 1
  48. 48. Schéma d’allocation Après la fragmentation, la question qu’ont doit se poser est: Ou seront affectés chacun des fragments??? L'affectation des fragments sur les sites est décidée en fonction de l'origine prévue des requêtes qui ont servi à la fragmentation. Pour chaque requête: On connaît l'ensemble des sites qui sont susceptible d'émettre cette requête, On possède de l'ensemble des fragments qui sont concernés par la requête.  Placer les fragments sur les sites où ils sont le plus utilisés, pour minimiser les transferts de données entre les sites. Pour définir le schéma de localisation, on recherche: Priorité 1: D'où sont émises les requêtes de sélection Priorité 2: D'où sont faites les mises à jour Abdelouahed Sabri 2011/2012 51
  49. 49. Schéma d’allocation Exemple: reprenons l'exemple précédent et supposons que deux sites soient pris en considération A et B R1: SELECT numero, numeq FROM CUISINIER WHERE prenom = 'Jean' AND nom LIKE '%R%'; R2: SELECT * FROM CUISINIER WHERE numeq = '1'; R3: SELECT numero, nom FROM CUISINIER WHERE numeq = '2' AND prenom = 'Jean'; Abdelouahed Sabri 2011/2012 52
  50. 50. Schéma d’allocation Exemple (suite): Supposons que la requête R1 est émise de A ou B, que la requête R2 est émise de A seulement et que la requête R3 est émise de B seulement. Pour les trois requêtes, les fragments suivants sont concernés : • R1  fragment13 • R2  fragment 21, fragment 22, fragment 41 • R3  fragment 12, fragment 31 • Pour les autres fragments, on peut dire: – Le fragment 21 peut appartenir à la requête R1 ou R2 – Le fragment 11 peut appartenir a toutes les Requêtes – Le fragment 51 n’appartient à aucune requête – Le fragment 32 n’appartient à aucune requête – Le fragment 14 n’appartient à aucune requête  On doit faire des choix pour ces fragments de façon à équilibrer les sites Abdelouahed Sabri 2011/2012 53
  51. 51. Schéma d’allocation Exemple (suite): Supposons que la requête R1 est émise de A ou B, que la requête R2 est émise de A seulement et que la requête R3 est émise de B seulement. Pour les trois requêtes, les fragments suivants sont concernés : • R1  fragment13 • R2  fragments 21, 22 et 41 • R3  fragments 12 et 31 Pour les sites: • site A: fragment 13, fragment 21, fragment 22, fragment 41, fragment 11, fragment 51 • site B: fragment 12, fragment 31, fragment 14 , fragment 32 On peut combiner quelques fragments: • site A: fragment 11, fragment 13, fragment 2, fragment 4, fragment 5 • site B: fragment 12, fragment 14 , fragment 3 Abdelouahed Sabri 2011/2012 54 • Le fragment 21 peut appartenir à la requête R1 ou R2 • Le fragment 11 peut appartenir a toutes les Requêtes • Les fragments 51, 32 et 14 n’appartiennent à aucune requête
  52. 52. Les mises-à-jour Les mises à jour consistent en trois opérations: insertion (INSERT), suppression (DELETE) et modification (UPDATE). Insertion Exemple: insérer un nouveau cuisinier dans la table CUISINIER : INSERT INTO CUISINIER VALUES(21, 'DUBOUT', 'Jean', 2); Le fragment horizontal concerné peut être retrouvé avec les CC (pour le cas présent, il s'agit de CC3) ; ensuite il faut insérer le tuple dans tous les fragments verticaux. Abdelouahed Sabri 2011/2012 55 F32 NUMERO PRENOM NUMEQ 26 Jean 2 21 Jean 2 F31 NUMERONOM 26 DUGENOU 21 DUBOUT
  53. 53. Les mises-à-jour Suppression: Exemple: suppression du cuisinier Jean DUBOUT : DELETE FROM CUISINIER WHERE nom = 'DUBOUT' AND prenom = 'Jean' ; On utilise les conditions CC : CC3 et CC4 sont concernées.  On cherchera donc dans les fragments correspondants Abdelouahed Sabri 2011/2012 56 F41 NUMERO NOM PRENOM NUMEQ 12 DUPONT Jean 1 17 DUBOIS Robert 1 22 DUBALAI Aline 1 9 DURALUMIN Roberte 1 F32 NUMERO PRENOM NUMEQ 26 Jean 2 21 Jean 2 F31 NUMERONOM 26 DUGENOU 21 DUBOUT F41 NUMERO NOM PRENOM NUMEQ 12 DUPONT Jean 1 17 DUBOIS Robert 1 22 DUBALAI Aline 1 9 DURALUMIN Roberte 1 F32 NUMERO PRENOM NUMEQ 26 Jean 2 F31 NUMERONOM 26 DUGENOU
  54. 54. Les mises-à-jour Suppression (suite): Exemple: supprimer le cuisinier de numéro 21 DELETE FROM CUISINIER WHERE numero = 21 ; Aucune CC n’est concernée  Il faut chercher dans tous les fragments Abdelouahed Sabri 2011/2012 57
  55. 55. Les mises-à-jour Modification: Exemple : modification de l'affectation du cuisinier DUBOUT UPDATE CUISINIER SET numeq = 1 WHERE nom = 'DUBOUT' ; On utilise les conditions CC : CC3, CC4, CC5 sont concernées.  On modifie puis on vérifie que les CC son toujours vérifiées: • Puisque numeq = 1, il faut l’enlever du fragment F3 et F5 • On déplace alors le tuple dans le fragment 4. Abdelouahed Sabri 2011/2012 58
  56. 56. Répartition avancée Dans le cas où la méthode classique de fragmentation- allocation ne s'avère pas satisfaisante, on peut faire appel à des techniques plus puissantes (mais aussi plus complexes à mettre en œuvre): L'allocation avec duplication de fragments, L'allocation dynamique des fragments, La fragmentation dynamique. Abdelouahed Sabri 2011/2012 60
  57. 57. Répartition avancée Allocation avec duplication Certains fragments peuvent être dupliquées sur plusieurs sites (éventuellement sur tous les sites) Avantages:  Elle permet d’améliorer les performances en terme de temps d'exécution des requêtes (en évitant certains transferts de données).  Elle permet une meilleure disponibilité des informations (connues de plusieurs sites),  Elle permet une meilleure fiabilité contre les pannes. Inconvénient:  les mises à jour doivent être effectuées sur toutes les copies d'une même donnée. En conséquence: moins un fragment est sujet à des modifications et plus il est prédisposé à la duplication. Abdelouahed Sabri 2011/2012 61
  58. 58. Répartition avancée Allocation avec duplication Deux types de duplication: synchrone et asynchrone. Duplication synchrone: • La sérialisabilité est assurée sur l’ensemble des nœuds • Une transaction est confirmée seulement lorsque tous les sites ont été mis-à-jour Duplication asynchrone: • Les mises-à-jour sont d’abord faites sur une copie primaire • Les sites de réplication sont mis-à-jour en différé, à partir de la copie primaire, après la confirmation de la transaction • Ex. d’implémentation: vues matérialisées (eq. SNAPSHOTs) Abdelouahed Sabri 2011/2012 62
  59. 59. Répartition avancée Allocation dynamique Ici, l'allocation d'un fragment peut changer en cours d'utilisation de la BDR: Le schéma d'allocation et les schémas locaux doivent être tenus à jour. Peut être utilisée comme une alternative à la duplication  elle se révèle plus efficace lorsque la base de données est disposée à de nombreuses mises à jour. Abdelouahed Sabri 2011/2012 63
  60. 60. Répartition avancée Fragmentation dynamique Dans le cas où le site d'allocation peut changer dynamiquement, il est possible que deux fragments complémentaires (verticalement ou horizontalement) se retrouvent sur le même site. Il est alors normal de les fusionner. A l'inverse, si une partie d'un fragment est appelée sur un autre site, il peut être intéressant de décomposer ce fragment et de ne faire migrer que la partie concernée. Ces modifications du schéma de fragmentation se reflètent sur le schéma d'allocation et sur les schémas locaux. Abdelouahed Sabri 2011/2012 64

×