Vous êtes sur la page 1sur 36

FRAGMENTATION

1
INTRODUCTION
• La fragmentation est le processus de décomposition d'une base de
donnée en un ensemble de sous bases de données.
• Cette décomposition doit être sans perte d'information.

• La fragmentation des données représente un sous-ensemble obtenu


par la sélection de lignes et de colonnes à partir d’une relation globale
localisée sur un site unique.

• On distingue 5 types de fragmentation :


 Fragmentation par classes
 Fragmentation horizontale
 Fragmentation horizontale dérivée
 Fragmentation verticale
 Fragmentation hybride

2
INTRODUCTION
• Pourquoi fragmenter :

 Amélioration des performances (placer les traitements à l’endroit


où se trouvent les données).

 Favoriser les accès locaux.

 Équilibrer la charge de travail entre les sites.

3
INTRODUCTION
• Les règles de fragmentation:
Les règles de fragmentation sont les suivantes :

 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.

 La reconstruction : pour toute relation décomposée en un


ensemble de fragments Ri, il existe une opération de
reconstruction.

 La Disjonction : chaque élément de R ne doit pas être dupliqué

4
INTRODUCTION
• Les méthodologies de la fragmentation:

Il existe 2 stratégies de fragmentation :

 En fonction des hypothèses : Informations sur les contraintes de


placement .

 En fonction des besoins : Informations sur les requêtes


généralement posées.

5
Techniques de fragmentation
• Répartition des classes d'objet:

Cette technique consiste en la répartition de classes (relation en


relationnel, classe en orienté-objet) qui peuvent être réparties sur
différents fragments. Toutes les occurrences d'une même classe
appartiennent ainsi au même fragment.

 L'opération de partitionnement est la définition de sous-schémas.


 L'opération de recomposition est la réunion de sous-schémas.

6
Techniques de fragmentation
• Exemple:

La base de données relationnelle peut être


fragmentée en : {Compte, Client} et {Agence}

7
Techniques de fragmentation
• Fragmentation horizontale
Les occurrences d'une même classe peuvent être réparties dans des
fragments différents.

 L'opérateur de partitionnement est la sélection (σ).


 L'opérateur de recomposition est l'union (∪).

8
Techniques de fragmentation
• Exemple:
Soit la relation : Clients( NClient, Nom, Ville) :

Client1 : σ
σVille = Paris (Client)
Client2 : σVille != Paris (Client)

La reconstruction est réalisée par l’union des fragments :


Client = Client1 U Client2
9
Techniques de fragmentation
• Fragmentation horizontale dérivée
La fragmentation horizontale dérivée consiste à Placer deux tables en
relation de manière à localiser les jointures. Une des deux tables doit être
fragmentée en fonction de l’autre.
 L'opérateur de partitionnement est la sélection ( ).
 L'opérateur de recomposition est l'union (∪).
• exemple :
R est fragmentée horizontalement en R1,…Rk
S est fragmentée en S1,… Sk
tel que Si=S Ri avec i [1..k]
Pour reconstruire S= U (S Ri)
pour effectuer cette fragmentation il faut que : S a une clé étrangère de R.

10
Techniques de fragmentation
Exemple:
Contexte

On considère une base de données comprenant les tables suivantes:

ETUDIANT (numE, nomE, pnomE, numC)


CENTRE (numC, villeC, adrC, telC)
avec : villeC ∈ {‘Paris’, ‘Lyon’, ‘Marseille’}

Hypothèses

• Chaque site gère son centre


• Chaque centre gère ses étudiants

11
Techniques de fragmentation
Solution:

1) fragmente les centres horizontalement selon les sites:

• Centre1 = σvilleC = ‘Paris’(Centre)


• Centre2 = σvilleC = ‘Lyon’(Centre)
• Centre3 = σvilleC = ‘Marseille’(Centre)

2) réaliser une semi jointure de la relation Etudiant avec les fragments de la


relation centre :

• Etudiant1 = Etudiant Centre1


• Etudiant2 = Etudiant Centre2
• Etudiant3 = Etudiant Centre3

12
Techniques de fragmentation
exercice
• Soit la base de données suivante :

• Fragmenter les agences avec leurs clients avec leurs comptes.

13
Techniques de fragmentation
• Solution:

• on fragmente les agences horizontalement selon les sites :


Agence1 = σAgence = ‘Lausanne’(Agence)
Agence2 = σAgence = ‘Lyon’(Agence)
Agence3 = σAgence = ‘Marseille’(Agence)
• Puis on fragmente les comptes selon les fragments des agences :
Compte1=Compte Agence1
Compte2=Compte Agence2
Compte3=Compte Agence3
• Puis on fragmente les Clients selon les fragments des comptes :
Client1= Client compte 1
Client2= Client compte 2
Client3= Client compte 3

14
Techniques de fragmentation
• Fragmentation verticale

Toutes les valeurs des occurrences pour un même attribut se trouvent dans
le même fragment. Une fragmentation verticale est utile pour distribuer
les parties des données sur le site où chacune de ces parties est utilisée.
• L'opérateur de partitionnement est la projection (π)
• L'opérateur de recomposition est la jointure(*)

Le schéma suivant décrit la fragmentation verticale :

15
Techniques de fragmentation
• Soit la relation Commande( NC, NClient, Produit,Qté):

• La relation est fragmentée verticalement en 2 fragments définit par :


CommandeA = π NC, NClient (Commande)
CommandeB = π NC, Produit, Qté(Commande)

• La reconstruction est réalisée par la jointure :


Commande = CommandeA * CommandeB
16
Techniques de fragmentation
• Fragmentation hybride:
C'est la combinaison des deux fragmentations précédentes, horizontale
et verticale.
Les occurrences et les attributs peuvent donc être répartis dans des
partitions différentes.
• L'opération de partitionnement est une combinaison de projections et
de sélections.
• L'opération de recomposition est une combinaison de jointures et
d'unions.
• Le schéma suivant explique la fragmentation hybride :

17
Techniques de fragmentation
• Exemple:

Soit la relation client : client(N°Client,NomClient,PrenomClient,Age)


Relation Cli3 : π[NoClient, NomClient] σ[Age < 38]Client)
Relation Cli5 : π [NoClient, NomClient] σ[Age ≥38]Client)
Relation Cli4 : π [NoClient, PrénomClient]Client
Relation Cli6 : π [NoClient, Age]Client

La relation Client est obtenue avec : (Cli3 ∪Cli5) * Cli4 * Cli6

18
Techniques de fragmentation
• Exemple de perte d’informations

L’exemple ci après montre une perte d’information :


la fragmentation n’est pas reconstructible.

La fragmentation ci après est juste car elle est reconstructible.

19
Techniques de fragmentation
Exercice
• Soit les 2 schémas suivants : client et code.

Question :
Les fragments suivants sont ils correctes ?

20
Définition des fragments
• Le principe est de baser la fragmentation sur l'ensemble des requêtes
d'interrogation ou de mise à jour prédéfinies. Il faut extraire de ces
requêtes toutes les conditions de sélections, les attributs projetés et les
jointures. Les opérations de sélection sont à la base des fragmentations
horizontales, les opérations de projection sont à la base des
fragmentations verticales.

• On ne s'intéresse alors qu'aux requêtes les plus fréquentes ou les plus


sensibles.

21
Définition des fragments
• Fragmentation horizontale:
• Soient c1, c2, ..., cn les conditions de sélection qui ont été
extraites des requêtes, comme les fragments horizontaux
doivent être exclusifs, on produit l'ensemble des 2ⁿ conjonctions
de condition où chaque condition élémentaire est prise dans sa
forme positive ou dans sa forme négative :

• On ôte de cet ensemble les conjonctions de condition qui sont


toujours fausses, et on simplifie les autres.
• On ôte de cet ensemble les conjonctions de condition qui sont
toujours fausses, et on simplifie les autres.

22
Définition des fragments
• Etapes à suivre:
o Commencer avec les conditions de sélection fréquentes.
o Extraire des requêtes les conditions de sélections exemple.
o On obtient un ensemble : C={c1, c2,...cn} des conditions
élémentaires (ce).
o Construire l’ensemble des conjonctions de conditions
élémentaires (cc) suivant :

o Simplifier chaque conjonction de conditions.


o Supprimer le cc toujours fausses.

23
Définition des fragments
• Exemple 1:
Soit les 4 conditions de sélection suivantes :
A<10, A>5, Ville=Paris, Ville=Lyon
On obtient 2ⁿ =16 conjonctions de conditions, se sont les suivantes :

24
Définition des fragments
• On élimine les conditions unitils : Conditions non satisfiables ou les conditions
qui sont contre les contraintes d’intégrité, exemple; ville soit Paris, soit Lyon.
Finalement on obtient les conjonctions suivantes

• Ensuite on Regroupe les conditions sur un même attribut comme suit :


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
• Donc on aura 6 fragmentations horizontales.

25
Définition des fragments
• Exemple 2:
Soit la relation client suivante :

Requêtes les plus souvent formulées :


R1 : SELECT nomE, pnomE FROM ETUDIANT WHERE numC = 1 ;
R2 : SELECT pnomE FROM ETUDIANT WHERE nomE LIKE '%R%' ;
R3 : SELECT numE FROM ETUDIANT WHERE numC = 2 ;

• Question: Faire une fragmentation horizontale de la relation Etudiant.

26
Définition des fragments
• Fragmentation verticale:

Les fragments verticaux sont exclusifs, sauf en ce qui


concerne le (ou les) attribut(s) de jointure qui sont
communs à tous les fragments, et ce pour que la
décomposition soit sans perte d'information.

27
Définition des fragments
• Etapes à suivre:
o Définir la matrice d’utilisation définit par :

o Définir la matrice d’affinité définit par :

Avec :
- 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.
- Acc(qk): fréquence de qk sur le site s (mesurée pendant une certaine
période).

28
Définition des fragments
• Etapes à suivre:

o Regroupement des attributs ayant une haute affinité

o Trouver un point dans la matrice pour créer des ensembles d’attributs

29
Définition des fragments
• Exercice:

Soit la relation : Projet(Pnum, Pnom, Budget, Loc).


On pose : A1=Pnum , A2= Pnom , A3=Budget et A4= Loc

Les requêtes suivantes les plus fréquemment utilisées :


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.

Pour notre exemple on pose : 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

30
Définition des fragments
• Solution:
oLa matrice d’utilisation:
A1 A2 A3 A4
q1 1 0 1 0
q2 0 1 1 0
q3 0 1 0 1
q4 0 0 1 1

o La matrice d’affinité:
Aff(A₁,A₂)=0
₁ ₂ Aff(A₁,A₃)=45
₁ ₃ Aff(A₁,A₄)=0
₁ ₄ Aff(A₂,
₂ A₃)=5

Aff(A₂, A₄)=75 Aff(A₃, A₄)=3 Aff(A₁, A₁)=45 Aff(A₂, A₂)=80
Aff(A₃, A₃)=48 Aff(A₄, A₄)=78

Donc la matrice d’affinité est:


A1 A2 A3 A4
A1 45 0 45 0
A2 0 80 5 75
A3 45 5 53 3
A4 0 75 3 78
31
Définition des fragments
• Solution:

oLe regroupement:

o La relation Projet est fragmentée en:


Projet1( Num, Budget)
Projet2( Num, Nom, Loc)

32
Définition des fragments
• Fragmentation hybride:
• On procède comme suit:
 Extraire toutes les expressions de projection concernées par les
requêtes.
 Ajouter à chacune d'elles le(s) attribut(s) de jointure si elle ne les
possède pas.
 Générer le complément de chaque expression (c'est à dire les
autres attributs) en ajoutant le (ou les) attribut(s) de jointure.

• L'étape suivante consiste, pour chaque fragment Fi produit par la


fragmentation horizontale, à rechercher toutes les requêtes qui
concernent ce fragment et à prendre les expressions de projection de
ces requêtes.

33
Exercices d’application
Exercice 1

Soit la relation Compte (NoClient, Agence,TypeCompte, Somme).


Proposer un schéma de fragmentation horizontale, puis verticale en
tenant compte des requêtes suivantes :

R1 = π[NoClient, Agence] σ[(TypeCompte = 'courant') ∧(Somme > 100 000)] Compte)


R2 = σ[Agence = 'Lausanne'] Compte.
R3 = π[NoClient, Somme] (σ[(Agence = 'Genève') ∧(TypeCompte = 'courant')]
Compte)

34
Exercices d’application
Exercice 2
Soit la base de donnée suivante :

Rémunération (Titre, salaire)


Employé (numE, nomE, Titre)
Projet (numP, nomP, budget, ville)
Affectation (numE, numP, responsabilité, durée)

1. Proposer un schéma de fragmentation horizontale pour la relation


Rémunération.
2. A partir des requêtes R1 et R2, proposer un schéma de
fragmentation horizontale pour la relation Projet.
R1 : SELECT nomP, budget FROM Projet WHERE ville = Paris.
R2 : SELECT * FROM projet WHERE budget < 200 000.
3. Fragmenter Employé selon les fragments de Rémunération.
4. Quels sont les choix de fragmentation de « Affectation ».

35
Exercices d’application

36