Vous êtes sur la page 1sur 15

Université M’hamed Bougara de Boumerdes Département de Physique. Infotronique. Base de Données Réparties (BDR) Master2 : Systèmes informatiques distribués

2011/2012

Mme S.MECHID

Chapitre 2 : Conception de BD Réparties

Université M’hamed Bougara de Boumerdes Département de Physique. Infotronique. Base de Données Réparties (BDR) Master2 : Systèmes informatiques distribués

2011/2012

Mme S.MECHID

Introduction Une BDR diffère d'une BD centralisée avec certains concepts nouveaux qui sont particuliers à la répartition des données.

1. Méthode de conception Il existe deux approches pour la conception d’une base de données repartie :

1.1 Conception (Approche) ascendante : (Bottom up design)

Dans cette approche on part de l’existant (Distribution pré-existante). L’objectif principal est d’intégrer les bases locales dans schéma global. Elle nécessite une consolidation, uniformisation c'est-à-dire :

1 Réconciliation sémantique

2 Identifier les données semblables

3 Accorder leurs types, gérer leur cohérence…

4 Interfacer ou adapter les SGBD…

1.2 Conception descendante : (Top down design)

Dans cette approche on part du schéma global en le scindant en schémas locaux (On part de zéro (nouvelle base) Les points suivants sont présents dans cette approche :

1 Conception du schéma conceptuel global

2 Distribution pour obtenir des schémas conceptuels locaux

3 Les tables du schéma global sont fragmentées (processus de fragmentation)

4 Les fragments sont donc placés sur des sites (processus d’allocation)

Université M’hamed Bougara de Boumerdes Département de Physique. Infotronique. Base de Données Réparties (BDR) Master2 : Systèmes informatiques distribués

2011/2012

Mme S.MECHID

2 La fragmentation

2.1 Définition.

.La fragmentation est le processus de décomposition d'une base de donnée logique en un ensemble de "sous" bases de données. Cette décomposition doit être sans perte d'information. La fragmentation peut être coûteuse s’il existe des applications qui possèdent des besoins opposés.

2.2 Les règles de fragmentation

Les règles à appliquer sont : :

: pour toute donnée d’une relation R, il existe un fragment R i de la relation

1. La complétude

R qui possède cette donnée.

: pour toute relation décomposée en un ensemble de fragments Ri, il

existe une opération de reconstruction. Pour les fragmentations horizontales, l’opération de reconstruction est l’une union. Pour les fragmentations verticales c’est la jointure.

2. La reconstruction

3. La Disjonction

: assure que les fragments d’une relation sont disjoints deux à deux

Tout algorithme de fragmentation doit satisfaire les règles correction

23 Techniques de Fragmentation 2.3.1 Fragmentation horizontale Décomposition de la table en groupes de lignes. Exemple

Table Client (NCL, Nom, Ville)

Université M’hamed Bougara de Boumerdes Département de Physique. Infotronique. Base de Données Réparties (BDR) Master2 : Systèmes informatiques distribués

Il existe deux types de fragmentation horizontale:

- Primaire

- Dérivée

A. Fragmentation horizontale primaire :

2011/2012

Mme S.MECHID

La Fragmentation horizontale est définie par l’opération de sélection

Exemple

Client (NCL, Nom, Ville) peut être fragmentée :

Client1= SELECT * FROM Client WHERE Ville = “Paris”

Client2= SELECT * FROM Client WHERE Ville <> “Paris”

Reconstruction de la relation initiale:

Client = Client1 Client2

de la relation initiale : Client = Client1 ∪ Client2 B. Fragmentation horizontale dérivée : La

B. Fragmentation horizontale dérivée :

∪ Client2 B. Fragmentation horizontale dérivée : La Fragmentation d’une table en fonction de s fragments

La Fragmentation d’une table en fonction des fragments horizontaux d’une autre table.

(Cette fragmentation est obtenue dans le cas de lien père_fils)

Exemple

Commande (NCL, N°Produit, Date, Qte, N°Représentant)

Université M’hamed Bougara de Boumerdes Département de Physique. Infotronique. Base de Données Réparties (BDR) Master2 : Systèmes informatiques distribués

2011/2012

Mme S.MECHID

Commande1= SELECT * FROM Commande WHERE NCL IN (SELECT NCL FROM CLIENT1) Commande2= SELECT * FROM Commande WHERE NCL IN (SELECT NCL FROM CLIENT2) Reconstruction de la relation initiale:

Commande = Commande1 Commande2

la relation initiale: Commande = Commande1 ∪ Commande2 2.3.2 Fragmentation verticale La fragmentation verticale
la relation initiale: Commande = Commande1 ∪ Commande2 2.3.2 Fragmentation verticale La fragmentation verticale

2.3.2 Fragmentation verticale La fragmentation verticale est obtenue oar décomposition de la table en groupes de colonnes. Fragmentation verticale est définie par l’opération de projection

Table Client (N°Client, Nom, Sexe, Ville)

Exemple Client (N°Client, Nom, Sexe,Ville) peut être fragmentée :

Client1= SELECT N°Client, Nom FROM Client Client2= SELECT N°Client, Sexe, Ville FROM Client Reconstruction de la relation initiale:

Client = Client1 join Client2

Université M’hamed Bougara de Boumerdes Département de Physique. Infotronique. Base de Données Réparties (BDR) Master2 : Systèmes informatiques distribués

2011/2012

Mme S.MECHID

2.3.3 Fragmentation mixte La Fragmentation mixte résulte de l’application successive d’opérations de fragmentation horizontale et de fragmentation verticale

2.4 Avantages et inconvénients de la fragmentation

A. Avantages

1 Réduction des accès non pertinents

2 Parallélisme intra-requête

3 Combinée avec d’autres techniques d’optimisation (index, vues matérialisées, etc.) B. Inconvénients

1 génération des fragments disjoints est un problème difficile

2 Accès multiples aux fragments nécessitent des opérations de jointure et d’union

3 La migration des données (conséquence d’une mauvaise fragmentation horizontale)

Université M’hamed Bougara de Boumerdes Département de Physique. Infotronique. Base de Données Réparties (BDR) Master2 : Systèmes informatiques distribués

2.5 Comment Fragmenter ?

a. Fragmentation horizontale

Deux catégories de méthodes de fragmentation

o

o

Data-driven partitioning Hash-partitioning (Oracle10g) Range partitioning (Oracle10g) List Partitioning (Oracle10g)

Range partitioning (Oracle10g) List Partitioning (Oracle10g) Query-Driven Partitioning Prédicats définis dans les
Range partitioning (Oracle10g) List Partitioning (Oracle10g) Query-Driven Partitioning Prédicats définis dans les
Range partitioning (Oracle10g) List Partitioning (Oracle10g) Query-Driven Partitioning Prédicats définis dans les

Query-Driven Partitioning Prédicats définis dans les requêtes

Partitioning Prédicats définis dans les requêtes 2011/2012 Mme S.MECHID a. Fragmentation dirigée par des

2011/2012

Mme S.MECHID

a. Fragmentation dirigée par des requêtes La méthode préconise d’optimiser les requêtes les plus fréquentes, avec connaissance préalable des requêtes ainsi que les fréquences d’accès des requêtes. Mais Changement de requêtes peut entraîner une re-fragmentation

Procédure (Algorithme) de fragmentation

Informations sur la base de données : Avoir les pprédicats simples :

Définition :

Étant donnée une relation R(A1 , A2 ,

Un prédicat simple pj défini sur R est défini:

pj : Ai θ valeur

, An )

avec: θ ∈ {=, <, >, , , }; et valeur domaine(Di)

Exemple p1: Ville =“Alger” p2: Salaire 10 000

Université M’hamed Bougara de Boumerdes Département de Physique. Infotronique. Base de Données Réparties (BDR) Master2 : Systèmes informatiques distribués

2011/2012

Mme S.MECHID

Soit Pr = {p1, p2,

, pm} un ensemble de prédicats simples définis sur la relation Ri,

l’ensemble de minterms M = {m1, m2 ,

, mz } est défini comme suit:

M

= {mi | mi = Pj Pr

p*j }, 1 i z, 1 j z;

where p*j = pj or ¬pj

Exemple:

m1 : (Ville =“Alger ”) (Salaire 10 000)

m2 : NOT(Ville=“ Alger ”) (Salaire 10 000)

m3 : (Ville =“ Alger ”) NOT(Salaire 10 000)

m4 : NOT(Ville =“ Alger ”) NOT(Salaire 10 000)

Pour appliquer cet algorithme, il faut suivre les étapes suivantes :

Génération des minterms

élimination des minterms contradictoires

Exemple

Considérons les prédicats simples suivants:

A<10, A>5, Loc = “Poitiers”, Loc = “Paris”

Les minterms à générer sont :

(1) A<10 A>5 Loc=SA Loc=SB

(2) A<10 A>5

(3) A<10 A>5

(4) A<10 A>5

(5) A<10 ¬(A>5) Loc=SA Loc=SB

(6) A<10 ¬(A>5)

(7) A<10 ¬(A>5) ¬(Loc=SA) Loc=SB

(8) A<10 ¬(A>5) ¬(Loc=SA) ¬(Loc=SB)

¬(Loc=SA) Loc=SB

¬(Loc=SA) ¬(Loc=SB)

Loc=SA ¬(Loc=SB)

Loc=SA

¬(Loc=SB)

Université M’hamed Bougara de Boumerdes Département de Physique. Infotronique. Base de Données Réparties (BDR) Master2 : Systèmes informatiques distribués

2011/2012

Mme S.MECHID

(9) ¬(A<10) A>5

Loc=SA

Loc=SB

(10) ¬(A<10) A>5

Loc=SA ¬(Loc=SB)

(11) ¬(A<10) A>5

¬(Loc=SA) Loc=SB

(12) ¬(A<10) A>5

¬(Loc=SA) ¬(Loc=SB)

(13) ¬(A<10) ¬(A>5)

(14) ¬(A<10) ¬(A>5)

(15) ¬(A<10) ¬(A>5) ¬(Loc=SA)

(16) ¬(A<10) ¬(A>5) ¬(Loc=SA) ¬(Loc=SB)

Loc=SA Loc=SB

Loc=SA ¬(Loc=SB)

Loc=SB

Après éliminations des fragments contradictoires, les fragments finaux sont :

F2:

F3:

F6:

5 < A < 10

Loc=SA

5 < A < 10

Loc=SB

A 5

Loc=SA

F7:

Loc=SB

F10:

A 5 A 10

Loc=SA

F11:

A 10

Loc=SB

b. Fragmentation verticale

Nous signalons que pour une relation avec m attributs (non-primary key), le nombre de fragments verticaux possible est approximativement égale à mm Techniques de fragmentation

o Groupement: (1) chaque attribut forme un fragment, (2) jointure des fragments tant qu’un critère de performance est satisfait.

Université M’hamed Bougara de Boumerdes Département de Physique. Infotronique. Base de Données Réparties (BDR) Master2 : Systèmes informatiques distribués

2011/2012

Mme S.MECHID

o Splitting: on débute par la relation globale, on génère ensuite des partitions en se basant sur le comportement des applications (requêtes). Principe de l’algorithme Un fragment vertical contient des attributs fréquemment utilisés. Les informations dont on aura besoin sont les suivantes :

Q = {q1 , q2,

R (A1, A2,

Matrice d’usage m×n: Uij : 1 si attribut Aj est référencé par qi sinon 0

Matrice d’accès m × l : accik : fréquence d’accès de la requête i sur le site k

Matrice de référence m× l : ref ik : le nombre d’accès aux attributs pour chaque exécution de la requête qi sur le site k

, qm}: ensemble de requêtes fréquentes

, An): relation R avec n attributs, et l sites

Exemple

Soit la relation PROJ(PNO,PNAME,BUDGET,LOC), Sachant qu’on a 3 sites, 4 requêtes SQL :

q1: SELECT BUDGET FROM PROJ WHERE PNO = val; q2: SELECT PNAME, BUDGET FROM PROJ; q3: SELECT PNAME FROM PROJ WHERE LOC = val; q4: SELECT SUM(BUDGET) FROM PROJ WHERE LOC=val

U =


0


0

0 1

1

0 0

1

1

1

0

1

0

0

1

1

⎥ ⎥

acc =

15

⎡ 15


5

25

20

0

25

3 0

10

0


25


0

Université M’hamed Bougara de Boumerdes Département de Physique. Infotronique. Base de Données Réparties (BDR) Master2 : Systèmes informatiques distribués

2011/2012

Mme S.MECHID

Après avoir la matrice d’usage ainsi que la matrice d’accès, on calcule alors Mesure

d’affinité entre deux attributs Ai et Aj (affij ) d’une relation R qui est définie comme:

affij = Σ{ k|Uki = 1 Ukj =1} Σl acclk

U =

1

0

0

0

0 1

1

0

1

1

0

1

0

0

1

1

15

⎡ 15

acc =


25

5

20

0

25

3 0

10 ⎤ ⎡ 45 0 45 0 ⎤ ⎥ ⎢ ⎥ 0 0 80 5
10 ⎤
⎡ 45
0
45
0 ⎤
0
0
80
5
75
aff =
25 ⎥
⎢ 45
5
53
3
0
0
75
3
78
Matrice AA

Matrice d’affinité et son rôle pour la FV

La matrice d’affinité est utilisée pour guider la génération des fragments

verticaux

les attributs ayant une grande affinité seront groupés pour former un fragment

 

vertical

Remarque

On

peut

utiliser

la

théorie

des

graphes

pour

former

les

fragments

et

plus

precisement prendre les noeuds formant un cycle.

3. Processus d’allocation des fragments.

3.1 Introduction

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. Le but est de placer les fragments pour

minimiser les transferts de données entre les sites.

Université M’hamed Bougara de Boumerdes Département de Physique. Infotronique. Base de Données Réparties (BDR) Master2 : Systèmes informatiques distribués

2011/2012

Mme S.MECHID

L’allocation peut se faire avec réplication ou sans réplication. Sachant que la réplication favorise les performances des requêtes et augmente la disponibilité des données, mais est coûteuse en mise à jour des différents fragments. (Utilisation des triggers « Déclencheurs » pour détecter des mises à jour)

3.2 Problème d’allocation:

Entrées:

F = {F1, F2, …, Fn} - ensemble de fragments

S = {S1, S2, …, Sm} - ensemble de sites

Q = {Q1, Q2, …, Ql} - ensemble de requêtes

Le problème d’allocation consiste à trouver une distribution optimale de F sur S afin d’améliorer la performance (temps de réponse, données transférées, etc.)

Contraintes

o Stockage, équilibrage de la charge entre les sites

Donc on a un Problème NP-complet

Il existe plusieurs algorithmes, nous présentons ici l’algorithme « BEST FIT »

Principe

Permet de déterminer le site sur lequel stocker le fragment, là où l’on maximise les traitements locaux

n’intègre pas le problème de la réplication

Université M’hamed Bougara de Boumerdes Département de Physique. Infotronique. Base de Données Réparties (BDR) Master2 : Systèmes informatiques distribués

Exemple

2011/2012

Mme S.MECHID

Soit les informations suivantes relatives aux différents fragments :

   

temps

 

temps

temps

temps

Fragments

d'accès

mise à

 

accès

m.a.j.

local (ms)

jour local

distant

distant

R1

 

100

 

150

 

500

600

R2

 

150

 

200

 

650

700

R3

 

200

 

250

 

1000

1100

Transactions

sites

fréquence

accès tables (L= lecture, E = écriture)

     

4

accès R1 (3L, 1E)

T1

S1,S4,S5

 

1

2

accès R2 (2L)

     

2

accès R1 (2L)

T2

S2,S4

 

2

4

accès R3 (3L, 1E)

     

4

accès R2 (3L, 1E)

T3

S3,S5

 

3

2

accès R3 (2L)

Université M’hamed Bougara de Boumerdes Département de Physique. Infotronique. Base de Données Réparties (BDR) Master2 : Systèmes informatiques distribués

2011/2012

Mme S.MECHID

Si on récapitule les deux tableaux dans un seul tableau de synthèse on aura :

   

Accès T1 * Fréquence

Accès T2 * Fréquence

Accès T3 * Fréquence

Total

Fragment

Site

pondéré

R1

S1

4*1

0

0

4

 

S2

0

2*2

0

4

 

S3

0

0

0

0

 

S4

4*1

2*2

0

8

 

S5

4*1

0

0

4

R2

S1

2*1

0

0

2

 

S2

0

0

0

0

 

S3

0

0

4*3

12

 

S4

2*1

0

0

2

 

S5

2*1

0

4*3

14

R3

S1

0

0

0

0

 

S2

0

4*2

0

8

 

S3

0

0

2*3

6

 

S4

0

4*2

0

8

 

S5

0

0

2*3

6

Selon les données de la colonne « Total pondéré » on a :

On stocke R1 sur S4 On stocke R2 sur S5 On stocke R3 sur S2 ou S4 (S2 pour mieux répartir)

Université M’hamed Bougara de Boumerdes Département de Physique. Infotronique. Base de Données Réparties (BDR) Master2 : Systèmes informatiques distribués

3.3 Alternatives d’allocation

Réplication totale :

Chaque fragment est répliqué sur tous les sites

Réplication partielle :

chaque fragment est répliqué sur quelques sites

Aucune réplication :

Chaque fragment réside dans un et un seule site

2011/2012

Mme S.MECHID