Cours Bases de données réparties


Télécharger Cours Bases de données réparties

★★★★★★★★★★3.5 étoiles sur 5 basé sur 2 votes.
Votez ce document:

Télécharger aussi :


Déroulement de l’année

!

!

! Planning :

–  28/09 : Cours, Fragmentation-Transactions (C.Labbé)

–  5/10 : TD, Fragmentation (F.Jouanot)

–  12/10 : Cours-TD, Transactions (C.Labbé-J.Jouanot)

–  19/10,26/10,2/11,9/11,16/11: Cours-TP, Admin Oracle (G.Forestier)

–  23/11,30/11: Cours-TD, Relationel-objet/semi-structuré (C.Labbé-

J.Jouanot)

2

Pourquoi une Base de Données Distribuée

! Limiter le transfert d’information (nombre et volume)

! Répartition de charge

! Augmenter la fiabilité (duplication)

! Fusionner des systèmes d’informations

! Def : Une base de données distribuée est une base de données dont les différentes parties sont stockées sur des sites (géographiquement distants), reliés par un réseau. La réunion de ces parties forme la base de données distribuée.

                                                                                                   C. L. Roncancio,- C. Labbé  notes de cours        3

Approches de conception d’une Base de Données Distribuée

! Approche descendante (décomposition)

–  Conception du schéma conceptuel global

–  Distribution pour obtenir des schémas conceptuels locaux

–  Fragmentation

BDD :Schéma global – Affectation aux sites - Allocation

! Approche ascendante

–  Intégration de bases de données existantes

–  Hétérogénéité

Exemple

! Relation Employé (nss, nom, loc, ...)

! Relation Taux (pays, valeur, ...)

! 12 bureaux d’environ la même taille

–  6 à Paris, 4 à Marseille et 2 à Lyon

! 80% des requêtes dans une ville portent sur les employés de la ville

! 10% des requêtes dans une ville portent sur Taux

C. L. Roncancio,- C. Labbé  notes de cours       5

Exemple - suite

! Créer 3 bases de données : P, M, L

! Sur chaque base : les employés de la ville et une copie de Taux.

! Si trop cher :

–  fusionner M et L

–  ou maintenir Taux à M.

6

Conception d’une BDD

! De la conception en centralisé :

–  schéma conceptuel global

•  Attributs, Domaines, Tables, Vue,…

–  schéma physique • Stockage, index, pages,…

! Nouveau en distribué :

–  Définition des fragments

•  Unité de distribution logique

–  Conception « physique » : placement des fragments, stockage, chemins d’accès.

C. L. Roncancio,- C. Labbé  notes de cours       7

Pour quoi fragmenter ?

! Pas de vraie raison d’un point de vue  « distribution de données ».

! Avantages de la distribution : performances, disponibilité, tolérance aux pannes, localité...

! Grain : une relation entière est une unité de distribution trop grande

–  cas des vues, faible concurrence,

8

Comment fragmenter ?

! Grain / degré de fragmentation

–  Trop peu de fragments - faible concurrence

–  Trop de fragments - surcoût dans la reconstruction des relations

! Possibilités de fragmentation d’une relation

–  Horizontale - basée sur des sélections

–  Verticale - basée sur des projections

                                       C. L. Roncancio,- C. Labbé  notes de cours       9

Comment fragmenter (2) ?

0

Et le placement des fragments ?

! Chaque fragment sur un seul site

–  copie unique, BD partitionnée

! Duplication de fragments

(+) performances des requêtes et disponibilité

(-) coût des mises à jour et contrôle de concurrence plus complexe

! Fréquemment : duplication partielle

! Applications pour la duplication totale

C. L. Roncancio,- C. Labbé  notes de cours       1

1

Objectifs généraux

! Fragmentation

–  Favoriser les accès locaux

–  Équilibrer la charge de travail entre les sites

! Duplication

–  Favoriser les accès locaux

–  Augmenter la disponibilité des données

1

2

Informations utile...

! BD : taille des relations, CI, etc.

! Applications : FAQ et où

! Sites : capacités de stockage / traitement.

! Réseaux et système

! Les deux dernières servent essentiellement dans l’allocation

C. L. Roncancio,- C. Labbé  notes de cours       1

3

Fragmentation Horizontale

! Fragments définis par sélection

Ex : Clients( NClient, Nom, Ville)

Client1 = ! Ville = Paris (Client)

Client2 = ! Ville != Paris (Client)

! Reconstruction par union des fragments

Ex : Client = Client1 U Client2

1

4

Fragmentation Horizontale – Exemple

Relation Client

NoClient

Nom

Ville

C1

Dupont

Paris

C2

Martin

Grenoble

C3

Martin

Paris

C4

Talon

Lille

C. L. Roncancio,- C. Labbé  notes de cours       1

5

Fragmentation Horizontale - Suite exemple

NoClient

Nom

Ville

C1

Dupont

Paris

C3

Martin

Paris

Client1

NoClient

Nom

Ville

C4

Talon

Lille

C2

Martin

Grenoble

Client2

1

6

Fragmentation Horizontale Dérivée

! Fragments définis par (semi) jointure

! Ex : Commande( NC, NClient, Produit,Qté)

Commande1 = Commande " Client1

Commande2 = Commande " Client2

! Reconstruction par union des fragments

Ex : Commande = Commande1 U Commande2

C. L. Roncancio,- C. Labbé  notes de cours       1

7

Fragmentation Horizontale Dérivée Exemple

Relation Commande

NC

NClient

Produit

Qte

Co1

C1

P1

10

Co2

C1

P2

200

Co3

C2

P3

30

Co4

C4



P4

5

1

8

Fragmentation Horizontale Dérivée – Suite exemple

Relation Commande1

NC

NClient

Produit

Qte

Co1

C1

P1

10

Co2

C1

P2

200

Relation Commande2

NC

NClient

Produit

Qte

Co3

C2

P3

30

Co4

C4

P4

5

C. L. Roncancio,- C. Labbé  notes de cours       1

9

Fragmentation Verticale

! Fragments définis par projection ! Ex : Commande( NC, NClient, Produit,Qté) CommandeA = #NC, NClient (Commande)

CommandeB = # NC, Produit, Qté(Commande)

! Reconstruction par jointure

Ex : Commande = CommandeA * CommandeB

! Utile si forte affinité des attributs

2

0

Fragmentation Verticale - Exemple

Relation Commande

NC

NClient

Produit

Qte

Co1

C1

P1

10

Co2

C1

P2

200

Co3

C2

P3

30

Co4

C4

P4

5

C. L. Roncancio,- C. Labbé  notes de cours       2

1

Fragmentation Verticale – Suite Exemple

NC

NClient

Co1

C1

Co2

C1

Co3

C2

Co4

C4

NC

Produit

Qte

Co1

P1

10

Co2

P2

200

Co3

P3

30

Co4

P4

5

Relation CommandeA

Relation CommandeB

2

2

Propriétés de la fragmentation

! Reconstruction

–  Possible avec les opérateurs de l’algèbre relationnelle

–  Critères de fragmentation horizontale simples ou complexes

! Complétude

–  Horizontale : chaque n-uplet de R est dans un fragment

–  Verticale : chaque attribut est dans un fragment

–  Pas de perte d’information

–  Similaire à la normalisation

C. L. Roncancio,- C. Labbé  notes de cours       2

3

Exemple perte d’information (1)

! RA      a  b  c

               1  2  3

               4  5  6

! RA1    a  b                RA2    b c

               1 2                            2 3

               4 5                            5 6

2

4

Exemple perte d’information (2)

! RA      a  b  c        RA1 * RA2  =  a  b  c

               1  2 3                                 1  2  3

               4  5  6                                 4  5  6

! RA1    a  b                RA2    b c

               1 2                            2 3

               4 5                            5 6

C. L. Roncancio,- C. Labbé  notes de cours       2

5

Exemple perte d’information (3)

! RA      a  b  c

               1  2  3

               4  5  6

               7  2  8

! RA1    a  b                RA2    b c

               1 2                            2  3

               4 5                            5  6

               7 2                            2  8

2

6

Exemple perte d’information (4)

! RA      a  b  c                  ! RA1 * RA2           a  b  c

               1  2  3 1  2  3

               4  5  6 1  2  8

               7  2  8 4  5  6

! RA1    a  b                RA2                    b c        7  2  3

               1 2                            2 3                    7  2  8

               4 5                            5  6

               7 2                            2  8

C. L. Roncancio,- C. Labbé  notes de cours       2

7

Propriétés de la fragmentation (2)

! Fragments disjoints

–      Une « entité » est dans un seul fragment ! Exemple FAQ : !sal < 30 ( R) et !sal >20 ( R)

! Fragments candidats : !sal < 30 ( R) et !sal > 20 ( R)

–      Non disjoint

! Alternative / disjoint :

!sal <= 20 ( R)  et  !20 < sal < 30 ( R)  et !sal >= 30 ( R)



2

8

Disjoint vs. Non Disjoint

! Disjoint

 Bonne propriété, facilite les mises à jour

! Non Disjoint

Forme de duplication, accélère certaines requêtes

C. L. Roncancio,- C. Labbé  notes de cours       2

9

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.

3

0

Analyse fragmentation horizontale

! Commencer avec les conditions de sélection  fréquentes

(FAQ)

! Règle de  Wiederhold : 80 / 20

! Extraire des requêtes les conditions de sélections :

– A < 10, A > 5, Ville = Paris, Ville = Lyon

! On obtient un ensemble : C={c1, c2,}  des conditions élémentaires (ce).

C. L. Roncancio,- C. Labbé  notes de cours       3

1

Fragmentation horizon

! Construire l’ensemble des conjonctions de ce (cc) suivant :

CC ={" Ci*         ou Ci*est soit cisoit¬ci}

i=1,n

CC =??

! Simplifier chaque cc

! Supprimer les cc tjr fausses

3

2

Exemple

A < 10,  A > 5, Ville = Paris, Ville = Lyon

A < 10, A > 5, Ville = Paris, Ville != Lyon

A < 10, A > 5, Ville != Paris, Ville = Lyon

A < 10, A > 5, Ville != Paris, Ville != Lyon

A < 10, A <= 5, Ville = Paris, Ville = Lyon

A < 10, A <= 5, Ville = Paris, Ville != Lyon

A < 10, A <= 5, Ville != Paris, Ville = Lyon

A < 10, A <= 5, Ville != Paris, Ville != Lyon

A >= 10, A > 5, Ville = Paris, Ville = Lyon

A >=10, A > 5, Ville = Paris, Ville != Lyon

A >= 10, A > 5, Ville != Paris, Ville = Lyon

A >= 10, A > 5, Ville != Paris, Ville !=Lyon

A >= 10, A <= 5, Ville = Paris, Ville =Lyon

A >=10, A <= 5, Ville = Paris, Ville !=Lyon A >= 10, A <= 5, Ville != Paris, Ville = Lyon

                                           A >= 10, A <= 5, Ville != Paris, Ville != LyonC. L. Roncancio,- C. Labbé  notes de cours           3

3

Éliminer les inutiles ...

•   Conditions non satisfiables

•   Connaissance des contraintes d’intégrité, e.g; ville soit Paris, soit Lyon.

A < 10, A > 5, Ville = Paris, Ville != Lyon

A < 10, A > 5, Ville != Paris, Ville = Lyon

A < 10, A <= 5, Ville = Paris, Ville != Lyon

A < 10, A <= 5, Ville != Paris, Ville = Lyon

A >=10, A > 5, Ville = Paris, Ville != Lyon

A >= 10, A > 5, Ville != Paris, Ville = Lyon

3

4

Fragments finaux

!Regrouper les conditions sur un même attribut

       5 < A < 10, Ville = Paris

       5 < A < 10, Ville = Lyon

       A <= 5, Ville = Paris

       A <= 5, Ville = Lyon

       A >=10, Ville = Paris

       A >= 10, Ville = Lyon

C. L. Roncancio,- C. Labbé  notes de cours       3

5

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 :

" ci tq ci # cc1et¬ci # cc2

et donc t satisfit ci et $ci , contradiction !!

3

6

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

C. L. Roncancio,- C. Labbé  notes de cours       3

7

Bonne propriétés - exemple

Emp( Enum, Nom, Ville,Sal, …)

! FAQ :

–  select * from Emp where Ville = Paris

–  select * from Emp where Ville = Lyon

! Ensemble vide de conditions : partition P1 = {B1}

! Mauvais : certains n-uplets de B1 ont 0 chances de répondre à la première requête,  d’autres non

3

8

Ne pas oublier les règles – suite exemple

La partition ne doit pas être un raffinement d’une autre qui est déjà bonne

! Partition P2  avec conditions : Ville = Paris  et Ville = Lyon ! Partition P3  avec conditions :

(Ville = Paris et Sal < 10000) … et (Ville = Lyon et Sal >= 10000)

! P3 n’est pas minimale : il vaut mieux commencer par une minimale et distribuer plus si nécessaire.

C. L. Roncancio,- C. Labbé  notes de cours       3

9

Analyse Fragmentation Horizontale Dérivée

! R est fragmentée en R1,…Rk ! S est fragmentée en S " R1,…,S " Rk ! Conditions pour que ça marche :

Reconstruction   S = U (S " Ri)

Disjonction  (i != j)  (S " Ri)   (S " " Rj) = "

Conception : association 1-n entre entités R et S

Intégrité : S a une clé étrangère de R

… Condition suffisante pour reconstruction et disjonction

4

0

 Analyse Fragmentation Verticale

Emp( Enum, Nom, Ville,Sal)

Emp1( Enum, Nom, Ville)    Emp2( Enum,Sal)

! Complétude et reconstruction

Jointure sans perte d’information

Condition suffisante : répéter la clé dans chaque fragment

Autre choix : utiliser une dépendance fonctionnelle pour la décomposition (cf. normalisation)

! Disjonction : seulement répéter la clé

C. L. Roncancio,- C. Labbé  notes de cours       4

1

Comment fragmenter verticalement ?

! Utiliser le sens commun...essayer d’automatiser ! Heuristiques :

" Clustering - rapprochement en partant d’un attribut par fragment

" Splitting - décomposition en partant d’un fragment unique pour obtenir une partition selon l’affinité des attributs

4

2

 Outil - Matrice d’affinité (1)

Exemple Projet(Pnum, Pnom, Budget, Loc)

                            A1        A2     A3        A4

q1: budget d’un projet étant donné 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

C. L. Roncancio,- C. Labbé  notes de cours       4

3

Matrice d ’utilisation

!                                           "1 si qiutilise Aj

Ut(qi,Aj ) = #

                                                           $      0 sinon

! Example

     A1  A2  A3  A4 q1   1 0     1     0 q2   0 1     1     0 q3   0 1     0     1 q4   0 0     1     1

4

4

 Matrice d’affinité - Définition

! Refs( qk ), pour  deux attributs (Ai, Ak) =   nombre d’accès faits par une exécution de qk (sur le site s) à Ai et Ak

! Accs( qk) = fréquence de qk sur le site s (mesurée pendant une certaine période)

! Matrice d’affinité

Aff (Ai,Aj ) = " "Refs(qk)Accs(qk)

k tq                    s

Ut(qk ,Ai )=1

#Ut(qk ,A j )=1

C. L. Roncancio,- C. Labbé  notes de cours       4

5

Matrice d’affinité - Exemple

! Supposons :   Refs( qk )  = 1 %s, 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

4

6

Matrice d’affinité - Exemple (2)

! Aff(A1, A3) = & K=1 &Accs(qk)

  = Acc1(q1) +Acc2(q1) +Acc3(q1)  = 45 ! La matrice :

      A1  A2  A3  A4

A1  45   0     45   0

A2  0    80     5   75

A3  45   5     53   3

A4   0   75     3   78

C. L. Roncancio,- C. Labbé  notes de cours       4

7

Regroupement des attributs

! Regroupement des attributs ayant une haute affinité ! Exemple :

       A1  A3  A2 A4

A1   45   45    0    0

A3   45   53    5    3

A2    0    5    80   75

A4    0    3    75   78

4

8

Partitionnement

! Trouver un point dans la matrice pour créer deux ensembles d’attributs : AttrHaut (AH) et AttrBas (AB) ! Quelle requête accède quel ensemble ?

–  AR(qi) = {Ai / Ut(qi,Ai) = 1 }

–  RH = { qi / AR( qi) ’ AH }

–  RB = { qi / AR( qi) ’ AB }

–  Autres = Q – { RH ( RB }

C. L. Roncancio,- C. Labbé  notes de cours       4

9

Partitionnement - Exemple

! Q = { q1, q2, q3, q4 }

! AH = { A1, A3 }

! AB = { A2, A4}

! RH = { q1 }

! RB = { q3 }

! Autres = { q2, q4 }

5

0

Partitionnement (suite)

! Objectif :

–  Maximiser les accès à un seul fragment

–  Minimiser les accès aux deux fragments

! TotalAccès = )qi *Q )%site sRefs(qi)Accs(qi)

= 128

! TotalRH = )qi *RH )%site sRefs(qi)Accs(qi)

= 45

C. L. Roncancio,- C. Labbé  notes de cours       5

1

Partitionnement (suite 2)

! TotalRB = )qi*RB )%site sRefs(qi)Accs(qi)

= 75

! TotalAutres

                = )qi *Autres )%site s Refs(qi)Accs(qi)

= 8

5

2

Partitionnement (suite 3)

! Trouver un point dans la matrice pour créer deux ensembles d’attributs AH et AB tels que :

      z = (TotalRH * TotalRB) – TotalAutres2

est maximisé

C. L. Roncancio,- C. Labbé  notes de cours       5

3

Fin exemple !

! La relation Projet est fragmentée en

Projet1( Num, Budget)

Projet2( Num, Nom, Loc)

! Dans l’exemple (simple) la clé est dans l’ensemble d’attributs considéré

! Duplication de la clé pour garantir la reconstruction

5

4

Partitionnement (fin)

! 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.

C. L. Roncancio,- C. Labbé  notes de cours       5

5

Fragmentation Hybride

! Fragmentation horizontale suivit de verticale ou vice-versa

Reconstruction

                                        R                                                 (

Horizontale

Verticale

            R11                    R22                  R11                  R22

                  R12                                             R12

5

6

Allocation

! Problème d’optimisation très difficile

! Minimiser coûts: stockage, traitement, communication

! Maximiser performances: temps de réponse,  débit du système

! Modèle coût / performances

! Utiliser modèle simple / sens commun

e.g: considérer les com.  / Accès

C. L. Roncancio,- C. Labbé  notes de cours       5

7

Exemple Client + Commandes

! Client1 = ! Ville = Paris (Client)

Client2 = ! Ville != Paris (Client)

Commande1 = Commande " Client1           Commande2 = Commande " Client2

! Allocation

@Site1 : Client1, Commande1

@Site2 : Client2, Commande2

5

8

Duplication

! Redondance

! Compromis requêtes (plus vite) / mises à jour (plus lent)

Quelques fois ralentissement des requêtes…

! Bons candidats : peu de modifications, beaucoup de consultations e.g. « style annuaire  »

! Approche itérative : pour chaque fragment potentiellement duplicable, Bénéfice ? Coût ?

Ok si (Bénef – Coût) > 0   ou Maximale

C. L. Roncancio,- C. Labbé  notes de cours       5

9

Conclusion

! Fragmentation des relations

–  Décomposition / reconstruction

–  Horizontale simple / dérivée, verticale, hybride

–  Propriétés : reconstruction, complétude, disjonction

! Allocation / duplication

–  Modèle de coût

–  Approche itérative

6

0



949