Exemple
1
Exemples de SGBD supportant la répartition
2
Conception des BDR
Approche descendante
Environnement homogène
Conception à partir de zéro
Nouvelles étapes avant la conception physique
Localisation des données
Schémas locaux
Approche ascendante
On part de BD existantes (souvent hétérogènes)
3
Approche descendante
E
Conception d’une BD répartie C
BD
L
Maîtrise de la complexité de la
A
répartition (fragmentation, T
E
duplication, placement) M
Définition des schémas locaux à E
N BD1 BD2 BD3
partir du schéma global T
4
Approche ascendante
Intégration/fédération de BD I
N BDR
existantes T BD fédérée
Maîtrise de l’hétérogénéité E
G
sémantique (BD) et syntaxique R
A
(SGBD, communications,....)
T
Maîtrise de l’intégration des I
BD1 BD2 BD3
O
schémas locaux pour créer un
N
schéma global
5
Ascendante / Descendante
(d’une autre perspective)
6
Approche ascendante
Intégration des BD locales existantes dans une seule base
La distribution des données est préexistante
Sémantique des schémas participants
7
Approche descendante
La distribution des données est bien présente
Les tables du schéma global sont fragmentées (processus de
fragmentation)
Fragment
Sous-table obtenue par sélection de lignes et de colonnes à partir d’une
table globale
Les fragments sont donc placés sur des sites (processus d’allocation)
8
Objectifs de la
décomposition
9
Techniques de fragmentation
Problème de fragmentation:
Entrée: une relation d’un schéma global
Sortie: un schéma de fragmentation (ensemble de fragments)
Différents types de fragmentation
Horizontale
Verticale
Mixte
10
Fragmentation Horizontale
Décomposition de la table en groupes de lignes
Deux types de fragmentation horizontale:
Primaire
Dérivée
11
Fragmentation Horizontale
Primaire
Obtention des fragments horizontaux:
Fragmentation horizontale est définie par l’opération de sélection
Exemple
Client(N°Client, 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
12
Fragmentation Horizontale
Primaire
Client
Fragments définis par sélection nclient nom ville
Client1 = Client where ville = «
C1 Ali Rabat
Rabat » C2 Ahmed Casa
Client2 = Client where ville « C3 Nadia Rabat
C4 Sara Fès
Rabat »
Client1
nclient nom ville
C1 Ali Rabat
Reconstruction C3 Nadia Rabat
Client =Client1 U Client2
Client2
nclient nom ville
C2 Ahmed Casa
C4 sara Fès
Fragmentation Horizontale
Dérivée(1)
Fragmentation d’une table en fonction des fragments
horizontaux d’une autre table.
14
Fragmentation Horizontale
Dérivée(2)
Obtention des fragments horizontaux dérivés.
Fragments dérivés sont obtenus par l’opération de semi-jointure
Exemple
Commande(N°Client, N°Produit, Date, Qte, N°Représentant)
Commande1= SELECT * FROM Commande
WHERE N°client IN
(SELECT N°Client FROM CLIENT1)
Commande2= SELECT * FROM Commande
WHERE N°Client IN
(SELECT N°Client FROM CLIENT2)
Reconstruction de la relation initiale:
Commande = Commande1 ∪ Commande2
15
Fragmentation Horizontale
Dérivée(2)
Fragments définis par jointure
Cde
Cde1 = Cde where
Cde.nclient = Client1.nclient ncde nclient produit qté
Cde2 = Cde where D1 C1 P1 10
Cde.nclient = Client2.nclient D2 C2 P2 20
D3 C3 P3 5
Reconstruction D4 C4 P4 10
Cde = Cde1 U Cde2
Cde1 Cde2
ncde nclient produit qté ncde nclient produit qté
D1 C1 P1 10 D3 C3 P3 5
D2 C2 P2 20 D4 C4 P4 10
Fragmentation Verticale (1)
Décomposition de la table en groupes de colonnes.
17
Fragmentation Verticale (2)
Obtention des fragments verticaux:
Fragmentation verticale est définie par l’opération de projection
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
Pourquoi le N°Client est dupliqué dans les deux fragments?
18
Fragmentation Verticale (2)
Fragments définis par Cde
projection ncde nclient produit qté
Cde1 = Cde (ncde, D1 C1 P1 10
nclient) D2 C1 P2 20
D3 C2 P3 5
Cde2 = Cde (ncde, D4 C4 P4 10
produit, qté)
Reconstruction
Cde = [ncde, nclient, Cde2
Cde1
produit, qté] where
ncde nclient ncde produit qté
Cde1.ncde = Cde2.ncde
D1 C1 D1 P1 10
D2 C1 D2 P2 20
Utile si forte affinité D3 C2 D3 P3 5
D4 C4 D4 P4 10
d'attributs
Fragmentation Mixte
Obtention des fragments mixtes:
Fragmentation mixte résulte de l’application successive d’opérations de
fragmentation horizontale et de fragmentation verticale
20
Résumé de la Fragmentation
Relation Globale
FRAGMENTATION
Fragments
ALLOCATION
Relations locales
Avantages et inconvénients
de la fragmentation
+ Réduction des accès non pertinents
+ Parallélisme intra-requête
+Combinée avec d’autres techniques d’optimisation (index, vues
matérialisées, etc.)
− génération des fragments disjoints est un problème difficile
− Accès multiples aux fragments nécessitent des opérations de
jointure et d’union
− La migration des données (conséquence d’une mauvaise
fragmentation horizontale)
22
Règles de correction
Complétude
Assure que tous les tuples d’une relation sont associés à au moins
un fragment (fragmentation verticale)
Reconstruction
Assure qu’une relation peut être reconstruite à partir de ses
fragments
Disjonction
Assure que les fragments d’une relation sont disjoints deux à deux
23
Comment Fragmenter?
24
Fragmentation dirigée par
des requêtes
Optimiser les requêtes les plus fréquentes:
Règle 20/80;
Connaissance préalable des requêtes;
Fréquences d’accès des requêtes.
Travail de l’administrateur de la BD
Changement de requêtes peut entraîner une re-fragmentation
Tuning de la base de données
25
Procédure de
fragmentation (1)
Informations sur la base de données :
Prédicats simples :
É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(D i)
Exemple
p1: Ville =“Alger”
p2: Salaire ≤ 70 000
26
Procédure de
fragmentation (2)
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
∧ conjonction logique
Exemple
m1 : (Ville =“Poitiers”) ∧ (Salaire ≤ 10 000)
m2 : NOT(Ville=“Poitiers”) ∧ (Salaire ≤ 10 000)
m3 : (Ville =“Poitiers”) ∧ NOT(Salaire ≤ 10 000)
m4 : NOT(Ville =“Poitiers”) ∧ NOT(Salaire ≤ 10 000)
27
Les 3 règles de la
fragmentation
Pour toute donnée de la relation originale R il doit
avoir une sous relation Ri la contenant.
Pour toute fragmentation de la relation R en
plusieurs sous relations Ri il doit avoir un procédé
inverse de reconstitution de la relation principale R.
Aucune donnée ne doit se trouver dans plus d'un
fragment sauf dans le cas d'une fragmentation
verticale ou la clé primaire doit être présente partout.
28
Allocation
Lorsque le concepteur a fini de fragmenter sa
base, il lui faut ensuite allouer chaque fragment
sur son site correspondant.
L'allocation peut être faite de plusieurs
façons :
La réplication totale des données
L'absence de
La méthode hybride
réplication
29
Allocation
• La réplication totale des données
Cette méthode n'est pas très efficace lorsque les données sont
régulièrement mises à jour car il se pose le problème de cohérence de
données
• L'absence de réplication
Chaque donnée est mise à jour sur un seul site. Cette méthode est plus
efficace quand les données sont beaucoup plus modifiées que lues.
• La méthode hybride
Afin de bénéficier des deux méthodes citées à la fois, celle hybride
peut être utilisé. Ainsi les données en Read Only peuvent être
répliquées et les données en Read Write pas du tout . 14
Réplication
Principe de la réplication
X est répliquée signifie qu’il existe une copie de X sur un
autre serveur.
En cas de panne du serveur qui héberge R, toutes les requêtes
sont redirigées au serveur qui héberge la copie de R.
La copie de X doit être rafraichie, pour être pertinente.
Avantages et inconvénients
(+) Haute disponibilité
(+) Equilibre de charge par l’ interrogation des réplicas.
(-) Coût du stockage.
15
(-) Coût de mise à jour des réplicas.
Réplication
Mise à jour synchrone et asynchrone
Synchrone :
+ Maintenir toutes les copies en cohérence
- Perte de performance du fait de la mise en œuvre de la
validation à deux phases
Asynchrone : mise à jour différées des copies
+ Incidence minime sur les performances
- Nécessité de mise à niveau de la copie ou des copies en
cas de reprise
16
Les transactions
réparties
Une transaction désigne un ensemble d'opérations
effectuées sur une base de données.
Une transaction est soit validée par un Commit, soit
annulé par un Rollback soit interrompue par
un Abort.
Afin de garantir la stabilité du système, une
transaction doit validée quatre propriétés
indispensables : 17
L'Atomicité
Toutes les opérations d'une transaction sont menées de façon indivisible ,
toutes le opérations doivent être validées, si non tout est annulé
La cohérence
La transaction doit amener le système d'un état cohérent vers un état
cohérent, telles que toutes les contraintes d'intégrités soient respectées.
L'isolation
Une transaction en cours ne peut révéler ses résultats à d'autres transactions
si toutes ces opérations n'ont pas été validées.
La durabilité
Tout résultat produit par une transaction doit être permanent et ne doit 18
souffrir d'aucune altération, quelques soient les pannes du
Conclusio n
Les SDBDs distribuées offre une autonomie des
sites ainsi que une distribution de
l’administration.
La distribution des données entraine la révision
des notions de stockage des données, du
traitement des requêtes, du contrôle de l’accès
simultané ainsi que de la reprise.
35
Opérateur d’union
Jointure
soit la base de données commerciale suivante. Quels sont les clients qui
ont passé des commandes.
Il faut effectuer une équi-jointure avec
Client.NumCl=Commande.NumCl
37
Quels sont les clients qui n’ont pas passé des commandes le
10/12/2009 ?
Il faut effectuer une théta-jointure avec critère :
Commande.NumCl=Client.NumCl et Commande .DateCmd !
= 10/12/2009
Projection: Donner tous les libellés des produits.
Merci pour
votre
attention
40