Ch3 Bases de données réparties

Embed Size (px)

Citation preview

  • 7/28/2019 Ch3 Bases de donnes rparties

    1/20

    Module 215

    Bases de Donnes Avances

    Bases de donnes rparties

    1 - Introduction

    2 F t ti

  • 7/28/2019 Ch3 Bases de donnes rparties

    2/20

    2 F t ti

    Introduction

    Contenu : 1. Besoins2. Aspects caractristiques3. Dmarche de conception

    1. BesoinsDans une base de donnes centralise, il y a un seul SGBD, un seul stockage physique, une seule unitde traitement. Dans une base de donnes rparties, il peut y avoir plusieurs SGBD, plusieurs sites destockage et plusieurs units de traitement.Les raisons qui prsident la cration des bases de donnes rparties sont multiples :

    q limiter le transfert d'informationsq rpartir la charge de travail entre plusieurs units de traitement ou de stockageq augmenter la fiabilitq augmenter la disponibilitq faciliter l'interoprabilit

    http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-
  • 7/28/2019 Ch3 Bases de donnes rparties

    3/20

    Cette base doit obir 3 principes de "transparence" :

    q transparence de localisation : lutilisateur accdent au schma conceptuel via des vues ; il nesait pas sur quel site se trouvent physiquement les donnes

    q transparence de partitionnement : lutilisateur ne sait pas comment la base est partitionneq transparence de duplication : lutilisateur ne sait pas sil existe des copies des informations, ni

    ll t t i ll i t t

  • 7/28/2019 Ch3 Bases de donnes rparties

    4/20

  • 7/28/2019 Ch3 Bases de donnes rparties

    5/20

    Les deux phases suivantes sont des phases critiques et dlicates pour des bases de donnes rparties:

    3) Cration du schma de fragmentation : la base de donnes sera dcoupe enfragments distincts constituant une partition de la base : l'intersection des fragmentsdoit tre vide et leur runion doit redonner le schma global.

    4) Cration du schma d'allocation : les fragments doivent tre distribus "au mieux"entre les diffrents sites.

    Les deux dernires phases concernent les sites locaux :

    5) Cration d'un schma local pour chaque site, relatif aux fragments dvolus ce site.

    6) Cration des schmas internes : implmentation des donnes des fragments sur lessupports physiques de stockage.

    http://-/?-
  • 7/28/2019 Ch3 Bases de donnes rparties

    6/20

    Fragmentation

    Contenu :

    1. Dcomposition en fragments2. Rpartition par classes d'objets3. Fragmentation horizontale4. Fragmentation verticale5. Fragmentation par valeurs

    6. Mthodologie de la fragmentationhorizontale7. Mthodologie de la fragmentationverticale8. Schma de localisation9. Mises jour

    1. Dcomposition en fragmentsIl s'agit de dcomposer la base de donnes en fragments sans perte d'information. On procde

    d l i i t

  • 7/28/2019 Ch3 Bases de donnes rparties

    7/20

    2 - Rpartition par classes d'objets

    Le mot "classe" est utilis ici de manire trs gnrique ; il peut dsigner une "vraie" classe(modle objet), une entit (modle entit-association), une relation ou table (modle

    relationnel), ...

    Les fragments sont dfinis partir des "classes" de la base de donnes.

    exemple : soit une base de donnes constitue de 3 tables EQUIPE, CUISINIER,RESTAURANT. Ces trois tables correspondront trois fragments.

  • 7/28/2019 Ch3 Bases de donnes rparties

    8/20

    Encore appele fragmentation par occurrences, la fragmentation horizontale est base sur undcoupage des tuples des "classes".

    exemple : Considrons la table CUISINIER. Elle peut tre divise en deux fragments parrpartition des tuples en deux catgories :

    La recomposition s'effectuera par une simple opration d'union.

  • 7/28/2019 Ch3 Bases de donnes rparties

    9/20

  • 7/28/2019 Ch3 Bases de donnes rparties

    10/20

    La recomposition s'effectuera avec l'opration :

    cuisinier = (fragment 1 >

  • 7/28/2019 Ch3 Bases de donnes rparties

    11/20

    Pour effectuer la fragmentation horizontale on se base sur les critres de recherche, c'est dire les conditions exprimes dans les "WHERE" des ordres SQL.

    On a

    C1 = AB,C2 = C,C3 = DA

    o dsigne le "ET LOGIQUE" et A, B, C, D reprsentent les prdicats suivants :

    A 'J '

  • 7/28/2019 Ch3 Bases de donnes rparties

    12/20

    C1C2C3 = ABDC1C2C3 = ABCDC1C2C3 = (AB)CC1C2C3 = (AC)(BCD)

    o dsigne le "OU LOGIQUE".Supposons, comme hypothse supplmentaire, qu'il n'y a que deux quipes de cuisiniers (1 et2) ce qui implique CD = , C = D, D = C. On a alors les 5 conjonctions significatives deconditions :

    CC1 = C1C2C3 = ABDCC2 = C1C2C3 = ABCCC3 = C1C2C3 = ABDCC4 = C1C2C3 = (AB)CCC5 = C1C2C3 = AD

    Ces 5 conditions dfinissent les fragments horizontaux (exclusifs) :

  • 7/28/2019 Ch3 Bases de donnes rparties

    13/20

    attributs, c'est dire aux projections des relations sur certains attributs. Nous allonsreprendre l'exemple prcdent pour expliciter concrtement la mthodologie de fragmentationverticale.

    exemple : Reprenons les requtes les plus frquentes :q R1 : SELECT numero, numeq FROM CUISINIER WHERE prenom = 'Jean' AND nom

    LIKE '%R%';q R2 : SELECT * FROM CUISINIER WHERE numeq = '1';q R3 : SELECT numero, nom FROM CUISINIER WHERE numeq = '2' AND prenom =

    'Jean';

    Les projections sont :

    P1 : (numero, numeq)P3 : (numero, nom)

    P2 n'est pas considre comme une projection car tous les attributs sont demands dans larequte R2. A partir de P1 et P3, on construit l'ensemble IP des intersections deprojections :

    IP = { I Pj* pour j = 1,n et Pj* = Pj ou ~Pj}

    Pj d i l l d Pj l' bl d ib d l bl CUISINIER

  • 7/28/2019 Ch3 Bases de donnes rparties

    14/20

    Le fragment 1 est concern par les requtes R1 et R3, donc par tous les lments del'ensemble IP construits partir de P1 et P3, soit P1I P3, ~P1I P3, P1I ~P3, ~P1I ~P3

    IP1 = {(numero), (numero, nom), (numero, numeq), (numero, prenom)}

    Le fragment 2 est concern par les requtes R1 et R2, donc seulement par les projections P1et ~P1, donc par les lments de IP P1I P1 = P1 et ~P1I ~P1 = ~P1, donc :

    IP2 = {(numero, numeq), (numero, nom, prenom)}

  • 7/28/2019 Ch3 Bases de donnes rparties

    15/20

  • 7/28/2019 Ch3 Bases de donnes rparties

    16/20

    exemple : reprenons l'exemple prcdent et supposons que deux sites soient pris enconsidration. Supposons que la requte R1 soit mise de A ou B, que la requte R2 soitmise de A seulement et que la requte R3 soit mise de B seulement. Pour les troisrequtes, les fragments suivants sont concerns :R1 --> fragment 13, fragment 21R2 --> fragment 21, fragment 22, fragment 41R3 --> fragment 12, fragment 31

    On fera donc les affectations

    site A : fragment 13, fragment 21, fragment 22, fragment 41site B : fragment 12, fragment 31

    On notera que l'on a fait un choix arbitraire pour le fragment 21. Pour les autres fragments,on cherche quilibrer les sites :

    site A : fragment 11, fragment 51site B : fragment 14, fragment 32

    On peut alors constater que certains fragments peuvent tre recombins :

    site A : fragment 11, fragment 13, fragment 2, fragment 4, fragment 5

    B f 12 f 14 f

  • 7/28/2019 Ch3 Bases de donnes rparties

    17/20

    exemple : insrer 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 prsent, ils'agit de CC3) ; ensuite il faut insrer le tuple dans tous les fragments verticaux.

    Suppression

    exemple : suppression du cuisinier Jean DUBOUT :DELETE FROM CUISINIER WHERE nom = 'DUBOUT' AND prenom = 'Jean' ;

    On utilise "au mieux" les conditions CC :

    d " ' d l B

  • 7/28/2019 Ch3 Bases de donnes rparties

    18/20

    exemple : modification de l'affectation du cuisinier DUBOUTUPDATE CUISINIER SET numeq = 1 WHERE nom = 'DUBOUT' ;

    La condition de slection est B ; il faut donc chercher dans les fragments concerns parCC3, CC4, CC5. On trouve l'enregistrement dans le fragment 3. On modifie puis on vrifieque la CC est toujours vrifie ; ce n'est plus le cas ici puisque numeq = 1. La nouvellecondition est BC soit CC4. On dplace alors le tuple dans le fragment 4.

    http://-/?-
  • 7/28/2019 Ch3 Bases de donnes rparties

    19/20

    Optimisation des requtes

    Une requte sur une base de donnes rparties ncessite gnralement des transferts de donnes entre sites. Ces transferts sont responsables au premier chef d'un allongement du tempsde rponse car les traitements internes sont bien plus rapides que le transport des donnes. On raisonnera sur un exemple pour illustrer la problmatique.

    exemple : soit une base de donnes compose de deux tables et rpartie sur 4 sites S1, S2, S3, S4.

    Supposons que la requte soit formule sur un site S0 :

    SELECT prenom FROM CUISINIER, EQUIPE WHERE CUISINIER.numeq = EQUIPE.numeq AND nomeq = "les chefs" ;

    On peut envisager plusieurs stratgies dont les deux suivantes :

  • 7/28/2019 Ch3 Bases de donnes rparties

    20/20

    q Dans la stratgie 1, on commence par slectionner les tuples sur l'attribut nomeq='les chefs' dans les fragments E1 et E2 sur les sites S3 et S4 respectivement. Les rsultatsE'1 et E'2 sont ensuite transfrs sur les sites S1 et S2 respectivement. Sur ces sites les jointures avec C1 et C2 sont effectues. Les rsultats C'1 et C'2 sont ensuitetransfres sur le site de consultation S0. L'union des tuples est effectue puis la projection sur l'attribut prenom.

    q Dans la stratgie 2, on commence par transfrer tout sur le site de consultation o l'on effectue les oprations adquates pour obtenir le rsultat cherch.

    Comparons les deux stratgies en supposant les donnes suivantes : le temps d'accs ta un tuple ncessite 1 unit de temps, le temps de transfert d'un tuple entre deux sitesncessite 10 units de temps. On suppose que C1 et C2 contiennent chacun 50 tuples et que E1 et E2 contiennent chacun 10 tuples ce qui signifie qu'une quipe possde en moyenne 5cuisiniers.

    stratgie 1temps de cration de E'1 : 10tatemps de cration de E'2 : 10taE'1 contient 0 ou 1 tupleE'2 contient 1 ou 0 tupletemps de transfert de E'1 : 0 ou trtemps de transfert de E'2 : tr ou 0temps de cration de C'1 : 0 ou 50tatemps de cration de C'2 : 50ta ou 0C'1 contient 0 ou 5 tuples

    C'2 contient 5 ou 0 tuplestemps de transfert de C'1 : 0 ou 5trtemps de transfert de C'2 : 5tr ou 0temps de cration de R : 5ta

    En dfinitive le temps de rponse est 75ta + 6tr, soit 135 units.

    stratgie 2temps de transfert de C1 : 50trtemps de transfert de C2 : 50trtemps de transfert de E1 : 10trtemps de transfert de E2 : 10trtemps de cration de E' : 20ta

    temps de cration de R : 100ta + 5ta = 105ta

    En dfinitive, le temps de rponse est 125ta + 120tr soit 1325 units.

    Bien que notre calcul soit grossier et approximatif, il permet de faire une nette distinction entre les deux stratgies : la stratgie 1 est bien meilleure que la stratgie 2.