Vous êtes sur la page 1sur 40

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

Vous aimerez peut-être aussi