Sie sind auf Seite 1von 15

Université M’hamed Bougara de Boumerdes 2011/2012

Département de Physique. Infotronique.


Base de Données Réparties (BDR) Mme S.MECHID
Master2 : Systèmes informatiques distribués

Chapitre 2 : Conception de BD Réparties


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

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)

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

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 : :
1. La complétude : pour toute donnée d’une relation R, il existe un fragment Ri de la relation
R qui possède cette donnée.
2. La reconstruction : 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.
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)

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

Il existe deux types de fragmentation horizontale:

- Primaire
- Dérivée

A. Fragmentation horizontale primaire :

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

B. Fragmentation horizontale dérivée :

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)

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

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

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

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

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)

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

2.5 Comment Fragmenter ?


a. Fragmentation horizontale

Deux catégories de méthodes de fragmentation


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

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

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 , ..., An )
Un prédicat simple pj défini sur R est défini:
pj : Ai θ valeur
avec: θ ∈ {=, <, >, ≤, ≥, ≠}; et valeur ∈ domaine(Di)
Exemple
p1: Ville =“Alger”
p2: Salaire ≤ 10 000

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

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 ∧ Loc=SA ∧ ¬(Loc=SB)
(3) A<10 ∧ A>5 ∧ ¬(Loc=SA) ∧ Loc=SB
(4) A<10 ∧ A>5 ∧ ¬(Loc=SA) ∧ ¬(Loc=SB)
(5) A<10 ∧ ¬(A>5) ∧ Loc=SA ∧ Loc=SB
(6) A<10 ∧ ¬(A>5) ∧ Loc=SA ∧ ¬(Loc=SB)
(7) A<10 ∧ ¬(A>5) ∧ ¬(Loc=SA) ∧ Loc=SB
(8) A<10 ∧ ¬(A>5) ∧ ¬(Loc=SA) ∧ ¬(Loc=SB)

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

(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) ∧ Loc=SA ∧ Loc=SB
(14) ¬(A<10) ∧¬(A>5) ∧ Loc=SA ∧¬(Loc=SB)
(15) ¬(A<10) ∧¬(A>5) ∧¬(Loc=SA) ∧ Loc=SB
(16) ¬(A<10) ∧¬(A>5) ∧¬(Loc=SA) ∧¬(Loc=SB)
Après éliminations des fragments contradictoires, les fragments finaux sont :

F2: 5 < A < 10 ∧ Loc=SA


F3: 5 < A < 10 ∧ Loc=SB
F6: A≤5 ∧ Loc=SA
F7: A≤5 ∧ Loc=SB
F10: 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.

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

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, ..., qm}: ensemble de requêtes fréquentes


• R (A1, A2, ..., An): relation R avec n attributs, et l sites
• 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
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

⎡1 0 1 0⎤ ⎡15 20 10 ⎤
⎢0 1 1 0⎥ ⎢5 0 0⎥
U =⎢ ⎥ acc = ⎢ ⎥
⎢0 1 0 1⎥ ⎢ 25 25 25 ⎥
⎢ ⎥ ⎢ ⎥
⎣0 0 1 1⎦ ⎣3 0 0⎦

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

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

⎡1 0 1 0⎤ ⎡15 20 10 ⎤ ⎡45 0 45 0 ⎤
⎢0 1 1 0⎥ ⎢5 0 0⎥ ⎢ 0 80 5 75⎥
U =⎢ ⎥ acc = ⎢ ⎥ aff = ⎢ ⎥
⎢0 1 0 1⎥ ⎢ 25 25 25⎥ ⎢45 5 53 3 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣0 0 1 1⎦ ⎣3 0 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.

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

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

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

Exemple

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

accès tables
Transactions sites fréquence (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)

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

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

Accès T1 * Accès T2 * Accès T3 * Total


Fragment Site Fréquence Fréquence Fréquence 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)

14
Université M’hamed Bougara de Boumerdes 2011/2012
Département de Physique. Infotronique.
Base de Données Réparties (BDR) Mme S.MECHID
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

15