1 / 70

Bases de données reparties

Bases de données reparties. Définition. Base de données reparties? Est une BD stockée sur plusieurs sites(machine +BD locale) connectes par un réseau. Logiquement reliées Physiquement distribuées. Apps. Requêtes. BD logique. Vue logique. Computer 1. Computer 2. Computer 3.

nysa
Download Presentation

Bases de données reparties

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bases de données reparties

  2. Définition • Base de données reparties? • Est une BD stockée sur plusieurs sites(machine +BD locale) connectes par un réseau. • Logiquement reliées • Physiquement distribuées

  3. Apps. Requêtes BD logique Vue logique Computer 1 Computer 2 Computer 3 Emplacement physique R1,R2 R3 R4,R5 Logiquement reliées • Les applications voient les données comme une seule BD indépendamment de son emplacement physique

  4. Computer 1 Computer 2 Computer 3 Emplacement physique Physiquement distribuées • La BD est placée sur différentes machines d’un réseau. R1,R2 R3 R4,R5

  5. Problématique • Les pressions pour la distribution : • Il devient impératif de décentraliser l’information (cas des multinationales), • Augmentation du volume de l’information (14 fois de 1990 à 2000), • Augmentation du volume des transactions (10 fois dans les 5 prochaines années).

  6. Pour améliorer le débit des E/Ss : • Partitionnement des données, • Accès parallèle aux données, • Utiliser plusieurs noeuds (avec un bon coût/ performance), et les faire communiquer par un réseau. • Les BDRs se sont développées, grâce au progrès technologiques réalisés au niveau de l’infrastructure réseau et des postes de travail.

  7. Objectifs 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 des données 6. Transparence vis à vis de la fragmentation 7. Transparence vis à vis de la réplication 8. Traitement des requêtes distribuées 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

  8. Problèmes à surmonter 1. Coût : la distribution entraîne des coûts supplémentaires en terme de communication, et en gestion des communications (–hardware et software à installer pour gérer les communications et la distribution). 2. Problème de concurrence. 3. Sécurité : la sécurité est un problème plus complexe dans le cas des bases de données réparties que dans le cas des bases de données centralisées.

  9. Objectives • Permet aux utilisateurs de partager des données géographiquement reparties. • Besoin de décentralisation des organisations, critères économiques • Avantages • Partage des données  • Fiabilité, disponibilité des données • Accroissement de la vitesse de traitement • Inconvénients • Complexité des SGBDs • Risque d'erreurs + important • Surcoût du traitement du à la communication inter-sites

  10. SGBD Reparti • Un SGBD reparti assure la gestion d'une bd repartie • Objectifs • Exécution des transactions - locales : accès aux données sur site - globales : accès sur plusieurs sites • Définition : données locales/réparties • Cohérence des données • Contrôle de concurrence • Reprise après panne • Optimisation de question • Indépendance des applications - machine - système d'exploitation - protocole réseau - système de gestion de bases de données - localisation des données

  11. Conception des BDs reparties

  12. Deux approches • Descendante : Top-down (du centralisée au distribuée) • Ascendante Bottom-up ( a partir de SGBDs existants vers des vues intégrées)

  13. Architecture d’une BDR

  14. La répartition d'une base de donnée intervient dans les trois niveaux de son architecture en plus de la répartition physique des données : • Niveau externe: les vues sont distribuées sur les sites utilisateurs. • Niveau conceptuel: le schéma conceptuel des données est associé, par l'intermédiaire du schéma de répartition (lui même décomposé en un schéma de fragmentation et un schéma d'allocation), aux schémas locaux qui sont réparties sur plusieurs sites, les sites physiques. • Niveau interne: le schéma interne global n'a pas d'existence réelle mais fait place à des schémas internes locaux répartis sur différents sites.

  15. Approche descendante • On commence par définir un schéma global de la base de données répartie (description globale et unifiée de toutes les données de la BDR). Puis, on le distribue sur les différents sites en des schémas locaux. • Pour déterminer les schémas locaux, on peut utiliser plusieurs méthodes: - Stocker une relation sur un seul site - La réplication - La fragmentation - Réplication + fragmentation

  16. Réplication • Copie de chaque relation sur plusieurs site. • Réplication complète= copie sur tous les sites. • Avantages • Disponibilité des données. • Augmentation du parallélisme • Diminution du coût imposé par les transmissions • Inconvénients • Difficulté d’assurer la cohérence des différentes copies. • Propagation des mises à jour.

  17. Fragmentation • Elle consiste à découper les relations en sous-relations appelées fragments. • La répartition se fait donc en deux étapes: la fragmentation et l’allocation de ces fragments aux sites intéressés. • Pourquoi fragmenter? • Généralement les applications utilisent des sous-ensembles de relations. • Une relation entière peut représenter une unité de distribution très grande • Utilisation de petits fragments permet de faire tourner plus d’un processus simultanément. • Comment fragmenter? • On distingue trois possibilité de fragmentation: • Fragmentation Horizontale • Fragmentation Verticale • Fragmentation Hybride

  18. Fragmentations correctes? • Complitude: R fragmentée en R1 R2 ,…,Rn chaque élément se trouvant dans R doit figurer dans au moins un fragment Ri • Évite les pertes de données pendant la fragmentation • Reconstruction: soit la relation R , F= {R1, R2,., Rn} • il est toujours possible de reconstruire R en appliquant des opérations sur F • Disjonction – fragments de R contient des sous ensembles de R. RiRj= . • Garantit l’absence de redondance

  19. Fragmentation horizontale • Les fragmentation horizontale concerne les données. • Chaque fragment représente un ensemble de tuples. • Pour fragmenter, on a besoin d’information sur la BD (schéma global,…) et les applications (requêtes utilisées,…). • Les fragments sont définis par des opérations de sélection sur les relations.

  20. Exemple

  21. Exemple

  22. Exemple de fragmentation horizontale Relations with BUDGET > 200.000 go into Proj1 and the rest goes into Proj2. Proj1= (budget>200.000) Proj Proj2= (budget ≤ 200.000) Proj

  23. La reconstruction de la relation est définie par l’union des fragments. • Les requêtes de l’utilisateur incluent des prédicats plus complexes qui sont des combinaison des prédicats simples. Puisqu’on peut toujours transformer une expression booléenne en une forme normale conjonctive, on se base sur les prédicats conjonctives pour fragmenter.

  24. Comment? • Comment obtenir des fragments disjoints et assurer la reconstruction ? • Génération automatique • Souvent « manuelle » par l ’administrateur. • Différentes méthodologies selon le type de fragmentation.

  25. Analyse fragmentation horizontale • Commencer avec les conditions de sélection fréquentes (FAQ) • Extraire des requêtes les conditions de sélections: • A < 10, A > 5, Ville = Tunis, Ville = Sfax • On obtient un ensemble : C={c1, c2,...cn} des conditions élémentaires (ce).

  26. Fragmentation Horizontal • Construire l’ensemble des conjonctions de ce (cc) suivant : • Simplifier chaque cc • ! Supprimer les cc tjr fausses

  27. Exemple • A < 10, A > 5, Ville = Tunis, Ville = Sfax • A < 10, A > 5, Ville = Tunis, Ville != Sfax • A < 10, A > 5, Ville != Tunis, Ville = Sfax • A < 10, A > 5, Ville != Tunis, Ville != Sfax • A < 10, A <= 5, Ville = Tunis, Ville = Sfax • A < 10, A <= 5, Ville = Tunis, Ville != Sfax • A < 10, A <= 5, Ville != Tunis, Ville = Sfax • A < 10, A <= 5, Ville != Tunis, Ville != Sfax • A >= 10, A > 5, Ville = Tunis, Ville = Sfax • A >=10, A > 5, Ville = Tunis, Ville != Sfax • A >= 10, A > 5, Ville != Tunis, Ville = Sfax • A >= 10, A > 5, Ville != Tunis, Ville !=Sfax • A >= 10, A <= 5, Ville = Tunis, Ville =Sfax • A >=10, A <= 5, Ville = Tunis, Ville !=Sfax • A >= 10, A <= 5, Ville != Tunis, Ville = Sfax • A >= 10, A <= 5, Ville != Tunis, Ville != Sfax

  28. Éliminer les inutiles ... • Conditions non satisfiables • Connaissance des contraintes d’intégrité, e.g; ville soit Tunis, soit Sfax • A < 10, A > 5, Ville = Tunis, Ville != Sfax • A < 10, A > 5, Ville != Tunis, Ville = Sfax • A < 10, A <= 5, Ville = Tunis, Ville != Sfax • A < 10, A <= 5, Ville != Tunis, Ville = Sfax • A >=10, A > 5, Ville = Tunis, Ville != Sfax • A >= 10, A > 5, Ville != Tunis, Ville = Sfax.

  29. Fragments Finaux • Regrouper les conditions sur un même attribut • 5 < A < 10, Ville = Tunis • 5 < A < 10, Ville = Sfax • A <= 5, Ville = Tunis • A <= 5, Ville = Sfax • A >=10, Ville = Tunis • A >= 10, Ville = Sfax

  30. Propriétés de la fragmentation • Complétude : • tout n-uplet t vérifie une des ce et nous avons éliminé seulement les cc impossibles • Disjonction : • Supposons t valide deux cc (cc1 et cc2) alors : • et donc t satisfait ci et $ci , contradiction !!

  31. Bonne propriétés • Obtenir une partition de l’ensemble de n-uplets telle que : pour tout B de la partition, deux n-uplets de B aient la même probabilité d’être accédés par toute application/requête importante

  32. Fragmentation verticale • La fragmentation concerne le schéma. • Les fragments sont définis par des opérations de projection. • La reconstruction est définie par jointure. • La clé doit être répétée dans chaque fragment. • Pour appliquer la fragmentation verticale, il existe deux possibilités: • Clustering: affecter chaque attribut à un fragment, puis à chaque étape fusionner certains fragments et s’arrêter lors de la satisfaction de certaines conditions. • Splitting: on part de la relations, puis on décide de la partitionner en des fragments en se basant sur des informations concernant les applications et les attributs.

  33. Exemple de fragmentation verticale

  34. Matrice d’utilisation • Soit la relation Projet(Pnum, Pnom, Budget, Loc) et soit l’ensemble de requêtes: q1= budget d’un projet étant donnée son numéro. q2= nom et budget de tous les projets. q3= nom des projets d’une ville. q4= budget total des projets d’une ville • La matrice d’utilisation est définie comme suit: Ut(qi, Aj)=1 si la requête qi utilise l’attribut Aj et Ut(qi, Aj)= 0 sinon.

  35. Exemple

  36. Matrice d’affinité • Refs(qk) pour deux attributs (Ai, Aj) = nombre d’accès effectués par une exécution de qk(sur le site s) aux attributs Ai et Aj. • Accs(qk) est la fréquence d’exécution de qksur le site s (mesurée pendant une certaine période). - La matrice d’affinité est définie comme suit: Aff(Ai,Aj)=k/Ut(qk,Ai)=1 et Ut(qk,Aj)=1site s Refs(qk)*Accs(qK)

  37. Exemple • Supposons : Refs( qk ) = 1, quelques soient s et k • Les accès suivants (3 sites): • Acc1(q1)=15 Acc2(q1) = 20 Acc3(q1) = 10 • Acc1(q2)=5 Acc2(q2) = 0 Acc3(q2) = 0 • Acc1(q3)=25 Acc2(q3) = 25 Acc3(q3) = 25 • Acc1(q4)= 3 Acc2(q4) = 0 Acc3(q4) = 0 • Aff(A1, A3) =  K=1sAccs(qk) • = Acc1(q1) +Acc2(q1) +Acc3(q1) = 45

  38. Exemple • Regroupement des attributs ayant une haute affinité

  39. Partitionnement Trouver un point dans la matrice pour créer deux ensembles d’attributs: AttrHaut(AH) et AttrBas(AB). - AR(qi)={Aj/Ut(qi, Aj)=1} - RH={qi/AR(qi)AH} - RB={qi/AR(qi)AB} - Autres =Q- {RH RB} - D’après notre exemple, on obtient: Q ={q1, q2, q3, q4} AH={A1, A3} AB={A2, A4} RH= {q1} RB= {q3} Autres= {q2, q4}

  40. Objectives - Maximiser les accès à un seul fragment. - Minimiser les accès aux deux fragments. • Total RH= qk RH site s Refs(qk)*Accs(qK)=45. • Total RB=qk RB site s Refs(qk)*Accs(qK)=75. • TotalAutres=qk autres site s Refs(qk)*Accs(qK)=8. • Trouver un point dans la matrice pour créer deux ensembles d’attributs AH et AB tels que : z=(TotalRH*TotalRB)-TotalAutres2 est maximisé. • La relation projet est partitionné en deux fragments: Projet1(Pnum, Budget). Projet2(Pnum, Pnom, Loc). • La duplication de la clé permet de garantir la construction. • Si beaucoup d’attributs alors il est peut être nécessaire de trouver plusieurs points dans la matrice. • Utiliser plutôt une approche récursive : partir de deux groups AH et AB et raffiner.

  41. Fragmentation Hybride • Fragmentation horizontale suivit de la fragmentation verticale ou vice-versa R horizontale R1 R2 Verticale R11 R12 R21 R22 R23

  42. Allocation • Supposons qu’on dispose d’un ensemble de fragments F={F1, F2, …Fn} et d’un réseau constitué d’un ensemble de sites S={S1, S2, …Sn}. • Une distribution optimale de F sur S est définie en considérant deux mesures: • Un coût minimal La fonction coût est une combinaison d’un ensemble de coûts: - Coût de stockage de chaque fragment Fi sur un site Sj. - Coût de modification de Fi sur un site Sj. - Coût d’interrogation de Fi sur un site Sj. - Coût de communication. • Une meilleure performance - Minimiser le temps de réponse.

  43. Relation Globale FRAGMENTATION Fragments ALLOCATION Relations locales Résumé

  44. SCG Intégrateur Traducteur1 Traducteur2 Traducteur n BD1 BD2 BDn Approche Ascendante (bottom up design) • On dispose de différentes bases de données (les schémas locaux) et on veut les intégrer pour construire un schéma global. • L’intégration des bases de données peut être effectuée en deux étapes: la traduction des schémas et l’intégration des schémas.

  45. Étape de Traduction • Transformer le schéma local en un autre schéma. • Exemple: transformer un schéma en modèle réseau en un schéma en modèle relationnel Schémas intermédiaires • Pré-intégration - Identification des éléments reliés (e.g. domaines équivalents) et établissement des règles de conversion (e.g. 1 inch =2.54 cm). • Comparaison - Identification des conflits de noms (synonymes, homonymes) et des conflits structurels(clé, dépendances,…). • Conformance - Résolution des conflits de noms (renommage) et des conflits structurels (changements des clés…) • Fusion et Restructuration - Fusion des schémas intermédiaires et restructuration pour créer un schéma intégré optimal. .

  46. Traitement reparti • Objectifs -> Minimiser les accès disque -> Minimiser le temps CPU -> Minimiser la transmission réseau -> Exploiter le parallélisme

  47. Étapes de traitement Décomposition de la requête utilisateur: • Elle consiste à transformer la requête utilisateur en une requête de l’algèbre relationnelle. • Décomposition: Normalisation, analyse, élimination de redondance et réécriture. • Normalisation • Transformer la requête en une forme permettant de faciliter son traitement. • On peut distinguer deux formes: forme normale conjonctive et forme normale disjonctive. • Cette transformation utilise les règles d’équivalence suivantes:

  48. p1p2  p2 p1. • p1p2  p2  p1. • p1  (p2  p3)  (p1p2)  p3. • p1  (p2 p3)  (p1 p2) p3. • p1  (p2 p3)  (p1p2) (p1p3) . • p1  (p2  p3)  (p1 p2) (p1 p3) . • (p1p2 )  p1 p2 • (p1 p2 )  p1 p2 •  ( p)  p • Analyse • L’analyse de la requête permet d’identifier les requêtes incorrectes qui doivent être rejetées.

  49. Décomposition de la requête • Les raisons principales de rejection d’une requête sont : soit la requête est type incorrect soit elle est sémantiquement incorrecte. • Exemple Soit la requête suivante: SELECT Enum FROM Employe WHERE Enom>200 Cette requête est incorrecte car la condition « >200 » est incompatible avec le type varchar de l’attribut Enom. • Il est possible d’identifier les requêtes sémantiquement incorrectes si ces requêtes ne contiennent pas de disjonction et de négation. • La requête est représentée par un graphe, nommé graphe de requête ou graphe de connexion. Si le graphe obtenu est non connexe alors la requête est sémantiquement incorrecte.

  50. Décomposition de la requête Exemple: Soit la base de données suivante: E (Enum, Enom, Titre, Salaire) /* E est la relation employé */ P (Pnum, Pnom, Budget) /* P est la relation projet */ EP(Enum, Pnum, Resp, Dur) Soit la requête: SELECT Enom, Resp FROM E, P, EP WHERE E.Enum = EP.Enum and Pnom= « maintenance » and Dur  36 and Titre =« programmeur »

More Related