Vous êtes sur la page 1sur 46

Chapitre 3 :

FRAGMENTATION ET ALLOCATION

M. AZOTI & M. SANI 1


FRAGMENTATION ET ALLOCATION

1. Définitions, objectifs, caractéristiques

2. Techniques de fragmentation

3. Allocation et les différentes méthodes (BEST-FIT et allocation progressive)

M. AZOTI & M. SANI 2


FRAGMENTATION ET ALLOCATION

1. Définition
On définit la fragmentation comme étant le processus de décomposition d'une base de données logique (telle
que la voient les utilisateurs) en un ensemble de « sous » -bases de données appelées fragments sans perte de
données. La fragmentation peut être coûteuse s’il existe des applications qui possèdent des besoins opposés.

2. Objectifs
Les applications ne travaillent que sur des sous-ensembles des relations. Une distribution complète des relations
générerait soit beaucoup de traffics soit une réplication des données avec tous les problèmes que cela occasionne :
➢ Problème de mise-à-jour ;
➢ Problème de stockage.
Il est donc préférable de mieux distribuer ces sous-ensembles.
L’utilisation de petits fragments permet de faire tourner plus de processus simultanément ; ce qui entraine une
meilleure utilisation des capacités du réseau.

M. AZOTI & M. SANI 3


FRAGMENTATION ET ALLOCATION

3. Caractéristiques

➢ La fragmentation doit être sans perte d'information,


❑ Pour toute donnée d’une table R, il existe un fragment Ri de la table R qui possède cette donnée :
Règle de complétude ;
❑ La non-perte d'informations est vérifiée par recomposition de la base à partir des différents
fragments en utilisant le langage de manipulation de données (SQL par exemple) ; leur réunion doit
redonner le schéma global : Règles de reconstruction.

➢ Les différents fragments doivent « de préférence » être exclusifs (leur intersection est vide) : Règle
de disjonction
❑ Dans le cas contraire on parle de duplication ; il faut affiner la fragmentation.

M. AZOTI & M. SANI 4


FRAGMENTATION ET ALLOCATION

4. Techniques de fragmentation
Il existe différentes façons pour fragmenter une base de données. L'unité de fragmentation détermine la
nature de l'élément le plus petit dont les composants ne peuvent être fragmentés (on parle de granularité :
taille du plus petit élément). Une granularité fine donne de grandes possibilités pour la fragmentation et
autorise une répartition flexible et efficace de la base de données mais a l'inconvénient de provoquer une
certaine lourdeur pour la recomposition des informations. A l'opposé, une granularité élevée permet une
gestion simple de la fragmentation, mais fournit des possibilités très limitées pour la fragmentation. L'unité
de fragmentation est généralement laissée au libre choix de l'administrateur. Il y a quatre unités de
fragmentation de base : Relations, Tuples, Attributs et Valeurs.

M. AZOTI & M. SANI 5


FRAGMENTATION ET ALLOCATION

a. Fragmentation par relation (classe d’objets)


Ce sont les classes (relation ou table dans le modèle relationnel, entité en Entité-Association, classe dans le
modèle orienté-objet) qui peuvent être réparties dans des fragments différents. Les fragments sont donc
définis à partir des "classes" de la base de données. Il est à noter que toutes les occurrences d'une même classe
appartiennent au même fragment.
NB :
• 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.

M. AZOTI & M. SANI 6


FRAGMENTATION ET ALLOCATION

Exemple : Cas d’une banque


Nous avons trois tables dans la base :
Agence (Agence, Adresse)
Clients (NoClient, NomClient, Prenom, Age)
Compte (NoClient#, Agence#, TypeCompte, Somme).

Donc cette base peut être fragmentée en deux fragments :


• {Compte, Client}
• {Agence}.

M. AZOTI & M. SANI 7


FRAGMENTATION ET ALLOCATION

b. Fragmentation horizontale
Appelée aussi fragmentation par occurrences ou par tuples, la fragmentation horizontale est basée sur un
découpage (horizontal) des tuples des tables. Les occurrences d'une même table peuvent être réparties dans des
fragments différents (avec tous les attributs), le découpage est effectué en utilisant la sélection et la reconstruction
est effectuée en utilisant l’opération d’union. Il existe deux types de fragmentation horizontale : fragmentation
horizontale primaire et fragmentation horizontale dérivée.
On parle de fragmentation dérivée lorsqu’il y a héritage entre les classes. Elle est obtenue dans le cas de lien
mère-fille.

M. AZOTI & M. SANI 8


FRAGMENTATION ET ALLOCATION

Méthodologie de la fragmentation horizontale (primaire)


Pour décomposer une base de données en fragments horizontaux on se base sur les requêtes d'interrogation ou
de mise-à-jour les plus importantes et les plus fréquentes.
Pour ce cas, on se base sur les conditions de sélections :
➢ Soient c1, c2, ..., cn les conditions de sélection qui ont été extraites des requêtes,

➢ On forme l'ensemble des 𝟐𝒏 conjonctions de conditions (CC) où chaque condition élémentaire est prise
dans sa forme positive ou dans sa forme négative (c’est ce qui donnera toutes les combinaisons possibles des
conjonctions de conditions),

M. AZOTI & M. SANI 9


FRAGMENTATION ET ALLOCATION

NB : Le signe ˄ représente une conjonction (ET en français ou AND en anglais).

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

Les prérequis
ഥ+B
i) Premier théorème de Morgane AxB = A ഥ
ഥxB
ii) Deuxième théorème de Morgane = A + B = A ഥ
D’après les lois fondamentales de l’algèbre de Boole :
i) A + A = A
ii) A.A = A
iii)1 + A = 1
ഥ=0
iv) A.A

M. AZOTI & M. SANI 10


FRAGMENTATION ET ALLOCATION

Exemple
On considère une table CUISINIER (avec NUMEQ qui représente le numéro de l’équipe du
cuisinier) que l'on se propose de répartir en fragments horizontaux.
CUISINIER
NUMERO NOM PRENOM NUMEQ
12 ADENYO Jean 1
34 ADENYO Jeanne 2
17 MANDELA Robert 1
22 AFOLABI Aline 1
26 GODEVI Jean 2
11 ATAKUI Aline 2
38 KAGA ROBERT 2
9 KPOGNON Roberte 1
13 ALLAGOR Jean 2
20 GBENOR Jean 1

M. AZOTI & M. SANI 11


FRAGMENTATION ET ALLOCATION

On commencera par se baser sur les requêtes les plus fréquentes :

R1: SELECT numero, numeq FROM CUISINIER WHERE prenom = 'Jean' AND nom LIKE '%R%';

R2: SELECT * FROM CUISINIER WHERE numeq = '1';

R3: SELECT numero, nom FROM CUISINIER WHERE numeq = '2' AND prenom = 'Jean';

Pour effectuer la fragmentation horizontale on se base sur les critères de recherche, c'est- à-dire les
conditions exprimées dans les "WHERE" des ordres SQL. Soient

- A : prenom = 'Jean‘ (prélevée des requêtes R1 et R3)

- B : nom LIKE '%R%‘ (prélevée de la requête R1)

- C : numeq = '1‘ (prélevée de la requête R2)

- D : numeq = '2‘ (prélevée de la requête R3)

M. AZOTI & M. SANI 12


FRAGMENTATION ET ALLOCATION

Les conditions de sélection :

- C1 = A ʌ B
- C2 = C
- C3 = D ʌ A

Nous avons trois (03) contraintes donc le nombre de conjonctions est 𝟐𝟑 = 8.

A partir des conditions Ci, on peut construire l'ensemble des conjonctions CCj (i=1..8) de conditions :

CC = {C1 ʌ C2 ʌ C3, ¬C1 ʌ C2 ʌ C3, C1 ʌ ¬C2 ʌ C3, C1 ʌ C2 ʌ ¬C3, ¬C1 ʌ ¬C2 ʌ C3, C1 ʌ ¬C2 ʌ ¬C3,
¬C1 ʌ C2 ʌ ¬C3, ¬C1 ʌ ¬C2 ʌ ¬C3}

M. AZOTI & M. SANI 13


FRAGMENTATION ET ALLOCATION

Evaluons chacun des termes :


• C1 ʌ C2 ʌ C3 = (A ʌ B) ʌ C ʌ (D ʌ A)
= A.B.C.D.A
ത car D = ¬C  D = Cത
= A.B.C.C.A
= 0 car C.Cത = 0

• ¬C1 ʌ C2 ʌ C3 = ¬ (A ʌ B) ʌ C ʌ (D ʌ A)
= AxB.C.D.A
= AxB.C.Cത .A car D = ¬C  D = Cത
=0 (cf. i) car C.Cത = 0

M. AZOTI & M. SANI 14


FRAGMENTATION ET ALLOCATION

• C1 ʌ ¬C2 ʌ C3 = (A ʌ B) ʌ ¬C ʌ (D ʌ A)

= A.B.C.D.A
= A.B.D.D.A car ¬C = D  Cത = D
= A.B.D car A.A = A
=AʌBʌD
• C1 ʌ C2 ʌ ¬C3 = (A ʌ B) ʌ C ʌ ¬ (D ʌ A)
= A.B.C.DxA
= A.B.C.(D ഥ car AxB = A
ഥ + A) ഥ+B

= A.B.C.(C + Aഥ ) car ¬D = C  Dഥ=C
= A.B.(C.C + C.A)ഥ
= A.B.CC + A.B.C.A ഥ
= A.B.CC + 0 ഥ=0
car A.A
= A.B.C car A.A = A
=AʌBʌC

M. AZOTI & M. SANI 15


FRAGMENTATION ET ALLOCATION

• ¬C1 ʌ ¬C2 ʌ C3 = ¬ (A ʌ B) ʌ ¬C ʌ (D ʌ A)
= AxB.Cത .D.A
ഥ+B
= (A ഥ).Cത .D.A ഥ+B
car AxB = A ഥ
ഥ+B
= (A ഥ).D.D.A car ¬C = D  Cത = D
ഥ+B
= (A ഥ).D.A car A.A = A
= Aഥ .D.A + B ഥ.D.A
=0+B ഥ.D.A ഥ =0
car A.A
= A.Bഥ.D
= A ʌ ¬B ʌ D

• C1 ʌ ¬C2 ʌ ¬C3 = (A ʌ B) ʌ ¬C ʌ ¬ (D ʌ A)

= A.B.C.DxA
ത D
= A.B.C.( ഥ
ഥ + A) ഥ+B
car AxB = A ഥ
= A.B.Cത .D
ഥ + A.B.Cത .A

= 0 car C. തDഥ = 0 et A.Aഥ=0

M. AZOTI & M. SANI 16


FRAGMENTATION ET ALLOCATION

• ¬C1 ʌ C2 ʌ ¬C3 = ¬ (A ʌ B) ʌ C ʌ ¬ (D ʌ A)
= AxB.C.DxA
ഥ+B
= (A ഥ).C.(D ഥ)
ഥ+A
ഥ+B
= (A ഥ
ഥ).C.(C + A)
ഥ+B
= (A ഥ
ഥ).(C.C + CA)
ഥ+B
= (A ഥ car A.A = A
ഥ).(C + CA)
ഥ .C + A
=A ഥ .C.A
ഥ +B ഥ
ഥ.C + B.CA
ഥ + A.C
= A.C ഥ +B ഥ
ഥ.C + A.C.B ഥA
car A. ഥ=A

ഥ + A.C.B
= A.C ഥ ഥ.Ccar A + A = A
+B

= A.C.(1 ഥ.C
+ B) + B
ഥ +B
= A.C ഥ.C car 1 + A = 1
ഥ+B
= (A ഥ).C

= (¬A ∪ ¬B) ʌ C

M. AZOTI & M. SANI 17


FRAGMENTATION ET ALLOCATION

• ¬C1 ʌ ¬C2 ʌ ¬C3 = ¬ (A ʌ B) ʌ ¬C ʌ ¬ (D ʌ A)



= AxB.C.DxA
ഥ+B
= (A ത D
ഥ).C.( ഥ
ഥ + A)
ഥ+B
= (A ഥ
ഥ).D.(C + A) car ¬C = D  Cത = D et ¬D = C  D
ഥ=C

ഥ+B
= (A ഥ)
ഥ).(D.C + D.A
ഥ+B
= (A ഥ
ഥ).(D.A) car D.C = 0
ഥ .D.A
=A ഥ+B ഥ
ഥ.D.A
ഥ +B
= A.D ഥ
ഥ.D.A ഥA
car A. ഥ=A


= A.D.(1 ഥ)
+B

¬C1 ʌ ¬C2 ʌ ¬C3 = A.D car 1 + A = 1
= ¬A ʌ D

M. AZOTI & M. SANI 18


FRAGMENTATION ET ALLOCATION

On a alors les 5 conjonctions de conditions significatives :


• CC1 = C1 ʌ ¬C2 ʌ C3 = A ʌ B ʌ D
➔ F1 = SELECT *FROM cuisinier WHERE prenom='Jean' AND nom LIKE '%R%' AND numeq ='2'
• CC2 = C1 ʌ C2 ʌ ¬C3 = A ʌ B ʌ C
➔ F2 = SELECT *FROM cuisinier WHERE prenom='Jean' AND nom LIKE '%R%' AND numeq ='1’
• CC3 = ¬C1 ʌ ¬C2 ʌ C3 = A ʌ ¬B ʌ D
➔ F3 = SELECT *FROM cuisinier WHERE prenom='Jean' AND nom NOT LIKE '%R%' AND numeq ='2'
• CC4 = ¬C1 ʌ C2 ʌ ¬C3 = (¬A ∪ ¬B) ʌ C
➔ F4 = SELECT *FROM cuisinier WHERE (prenom !='Jean' OR nom NOT LIKE '%R%') AND numeq ='1'
• CC5 = ¬ C1 ʌ ¬ C2 ʌ ¬ C3 = ¬A ʌ D
➔ F5 = SELECT *FROM cuisinier WHERE prenom != 'Jean' AND numeq ='2'.

M. AZOTI & M. SANI 19


FRAGMENTATION ET ALLOCATION

Ces 5 conditions définissent les fragments horizontaux suivants (exclusifs) :

F1 F4
NUMERO NOM PRENOM NUMEQ NUMERO NOM PRENOM NUMEQ
13 ALLAGOR Jean 2 12 ADENYO Jean 1
17 MANDELA Robert 1
22 AFOLABI Aline 1
F2 9 KPOGNON Roberte 1
NUMERO NOM PRENOM NUMEQ
20 GBENOR Jean 1
F5
NUMERO NOM PRENOM NUMEQ
F3 34 ADENYO Jeanne 2
NUMERO NOM PRENOM NUMEQ 11 ATAKUI Aline 2
26 GODEVI Jean 2 38 KAGA ROBERT 2

M. AZOTI & M. SANI 20


FRAGMENTATION ET ALLOCATION

c. Fragmentation verticale (par attributs)


Les fragments sont construits à partir de quelques attributs d'une relation ; ce sont les attributs (avec leurs
occurrences) d'une même relation qui peuvent être répartis dans des fragments différents et toutes les valeurs des
occurrences pour un même attribut se trouvent dans le même fragment. La répartition des attributs dans différents
fragments ne peut être correcte que si l'identifiant (ou identité d'objet) est dupliqué dans chaque fragment ; cet
identifiant est utile pour la reconstruction (décomposition sans perte d'informations). Le découpage d'une relation
en sous tables est effectuée utilisant la projection sur les colonnes composant chaque fragment et la reconstruction
est effectuée par jointure des différents fragments.

M. AZOTI & M. SANI 21


FRAGMENTATION ET ALLOCATION

Méthodologie de la fragmentation verticale

Pour décomposer une base de données en fragments verticaux, on se base sur les requêtes d’interrogation ou de mise-à-
jour prédéfinies les plus importantes et les plus fréquentes pour extraire les attributs concernés. Les fragments verticaux
sont exclusifs, sauf en ce qui concerne le (ou les) attribut(s) de jointure (clé, identifiant, OID) qui sont communs à tous
les fragments et qui seront utilisés pour que la décomposition soit sans perte d'information (reconstruction).
Pour ce cas, on se base sur les conditions de projections :
➢ Soient p1, p2, ..., pn les conditions de projection qui ont été extraites des requêtes

M. AZOTI & M. SANI 22


FRAGMENTATION ET ALLOCATION

➢ On forme l'ensemble des 𝟐𝒏 intersections des conditions de projection où chacune est soit l'expression
initiale soit son complément (c’est ce qui donnera toutes les combinaisons possibles des intersections des
conditions de projection).

NB : Le signe ∩ représente l’intersection de deux ou plusieurs ensembles (ex : A ∩ B).

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

NB : Dans le cas où la requête ne possède pas d’attributs de jointure, il faut les ajouter

M. AZOTI & M. SANI 23


FRAGMENTATION ET ALLOCATION

Exemple
On considère une table CUISINIER (avec NUMEQ qui représente le numéro de l’équipe du
cuisinier) que l'on se propose de répartir en fragments horizontaux.
CUISINIER
NUMERO NOM PRENOM NUMEQ
12 ADENYO Jean 1
34 ADENYO Jeanne 2
17 MANDELA Robert 1
22 AFOLABI Aline 1
26 GODEVI Jean 2
11 ATAKUI Aline 2
38 KAGA ROBERT 2
9 KPOGNON Roberte 1
13 ALLAGOR Jean 2
20 GBENOR Jean 1

M. AZOTI & M. SANI 24


FRAGMENTATION ET ALLOCATION

On commencera par se baser sur les requêtes les plus fréquentes :

R1: SELECT numero, numeq FROM CUISINIER WHERE prenom = 'Jean' AND nom LIKE '%R%';

R2: SELECT * FROM CUISINIER WHERE numeq = '1';

R3: SELECT numero, nom FROM CUISINIER WHERE numeq = '2' AND prenom = 'Jean';

M. AZOTI & M. SANI 25


FRAGMENTATION ET ALLOCATION

Pour effectuer la fragmentation verticale, on se base sur les projections utilisées :


- R1 : P1 = (numero, numeq)
- R2: P2 n'est pas considérée comme une projection car tous les attributs sont demandés dans la requête (SELECT *
FROM...). En effet si on prend le P2 on aura la présence de tous les attributs et donc P2 ∩ P1 par exemple donnera
toujours P1 : (numero, numeq). Par conséquent, l’ensemble P2 ne sera d’aucune utilité dans ce cas.
- R3: P3 = (numero, nom)

M. AZOTI & M. SANI 26


FRAGMENTATION ET ALLOCATION

A partir des projections Pi, on construit l'ensemble IP des intersections de projections où ¬Pj désigne
le complément de Pj sur l'ensemble des attributs de la table CUISINIER avec l'ajout obligatoire de la clé
primaire (car c’est la clé primaire qui nous permettra de relier le prénom d’un cuisinier à son nom par
exemple)
- Si P1 = (numero, numeq) alors son complément dans l’ensemble de tous les attributs de la table
CUISINIER est ¬P1 = (numero, nom, prenom) en ajoutant la clé primaire numero.
- Si P3 = (numero, nom) alors son complément dans l’ensemble de tous les attributs de la table CUISINIER
est ¬P3 = (numero, prenom, numeq) en ajoutant la clé primaire numero.

M. AZOTI & M. SANI 27


FRAGMENTATION ET ALLOCATION

Nous avons deux (02) contraintes donc le nombre d’intersection est 𝟐𝟐 = 4 donc on construit l’ensemble IP
tel que IP = {P1 ∩ P3, ¬ P1 ∩ P3, P1 ∩ ¬P3, ¬P1 ∩ ¬P3} avec :
- P1 ∩ P3 = (numero, numeq) ∩ (numero, nom) = (numero)
- ¬ P1 ∩ P3= (numero, nom, prenom) ∩ (numero, nom) = (numero, nom)
- P1 ∩ ¬P3= (numero, numeq) ∩ (numero, prenom, numeq) = (numero, numeq)
- ¬P1 ∩ ¬P3 = (numero, nom, prenom) ∩ (numero, prenom, numeq) = (numero, prenom)

Fragments verticaux obtenus :


- F1 = ∏numero(Cuisinier)
- F2 = ∏numero, nom(Cuisinier)
- F3 = ∏numero, numeq(Cuisinier)
- F4 = ∏numero, prenom(Cuisinier)

M. AZOTI & M. SANI 28


FRAGMENTATION ET ALLOCATION

NB : Dans l’algèbre relationnel, tout ce qui vient après le signe (pi) ∏ représente tout ce qui vient
après le SELECT dans une requête (ex : F1 = ∏numero(Cuisinier) correspond à SELECT numero
FROM CUISINIER). On a donc fragments verticaux suivants :

M. AZOTI & M. SANI 29


FRAGMENTATION ET ALLOCATION

d. Fragmentation hybride (par valeurs)

Cette fragmentation combine les fragmentations horizontale (par occurrences) et verticale (par attributs). Le
partitionnement est effectué par une combinaison de projections et de sélections et la reconstruction est
effectuée par combinaison de jointures et d'unions des différents fragments. Les occurrences et les attributs
peuvent donc être répartis dans des différents fragments.

M. AZOTI & M. SANI 30


FRAGMENTATION ET ALLOCATION

❖ Méthodologie de la fragmentation hybride et exemple


C’est la combinaison des deux fragmentations : horizontale et verticale. Pour chaque fragment
horizontal, on regarde quelles sont les requêtes qui les concernent (sélection).

Fragmentation horizontale

M. AZOTI & M. SANI 31


FRAGMENTATION ET ALLOCATION

Voici les requêtes fréquentes utilisées pour cet exemple :


R1: SELECT numero, numeq FROM CUISINIER WHERE prenom = 'Jean' AND nom LIKE '%R%';
R2: SELECT * FROM CUISINIER WHERE numeq = '1';
R3: SELECT numero, nom FROM CUISINIER WHERE numeq = '2' AND prenom = 'Jean';
Les intersections de projection de chacun des fragments horizontaux obtenus au préalable avec les trois (03) requêtes précédentes sont donc :
i) F1 → R1 et R3 ;
ii) F2 → R1 et R2 ;
iii) F3 → R3 ;
iv) F4 → R2 ;
v) F5 → Aucune.

M. AZOTI & M. SANI 32


FRAGMENTATION ET ALLOCATION

• Le fragment 1 est concerné par les requêtes R1 et R3, donc par tous les éléments de l'ensemble
IP construits à partir de P1 et P3, soit IP1 = {P1 ∩ P3, ¬ P1 ∩ P3, P1 ∩ ¬P3, ¬ P1 ∩ ¬P3}
→ IP1 = {(numero), (numero, nom), (numero, numeq), (numero, prenom)};
• Le fragment 2 est concerné par les requêtes R1 et R2, donc seulement par les projections P1 et ¬
P1, soit IP2= {P1 ∩ P1, ¬ P1 ∩ ¬ P1}
→ IP2 = {(numero, numeq), (numero, nom, prenom)};
• Le fragment 3 est concerné par la requête R3 donc seulement par les projections P3 et ~P3, soit
IP3 = {P3 ∩ P3, ¬P3 ∩ ¬P3}
→ IP3 = {(numero, nom), (numero, prenom, numeq)};
• Le fragment 4 est concerné par la requête R2, donc par tous les attributs
→ IP4 = {(numero, nom, prenom, numeq)};
• Le fragment 5 n'est concerné par aucune des requêtes, donc par tous les attributs
→IP5 = {(numero, nom, prenom, numeq)}.

M. AZOTI & M. SANI 33


FRAGMENTATION ET ALLOCATION

M. AZOTI & M. SANI 34


FRAGMENTATION ET ALLOCATION

I. L’allocation

Après la fragmentation, la question qu’on doit se poser est : Où sera affecté chacun des fragments ?

L’allocation est le fait d’allouer un espace de stockage à un fragment de donné. 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.

Pour chaque requête on connaît l'ensemble des sites qui sont susceptibles d'émettre cette requête et
on possède l'ensemble des fragments qui sont concernés par la requête. Ainsi on place les fragments
sur les sites où ils sont le plus utilisés pour minimiser les transferts de données entre les sites. En
général, pour définir le schéma de localisation, on recherche :
✓ Priorité 1 : D'où sont émises les requêtes de sélection ;
✓ Priorité 2 : D'où sont faites les mises à jour.

M. AZOTI & M. SANI 35


FRAGMENTATION ET ALLOCATION

Caractéristiques

L’allocation peut être :


➢ Répliquée :
➢ Centralisée :
• Une copie de la base sur chaque site,
• Taille de la base limitée par les capacités du site
• Maximise la fiabilité,
central,
• Possible si la base est petite et si l’inefficacité
• Disponibilité faible ;
des mises à jour est tolérable ;
➢ Partitionnée :
➢ Répliquée de manière sélective :
• Limite l’espace disque local,
• Les fragments critiques sont répliqués,
• Meilleur si la fiabilité de la solution centralisée n’est
• Les fragments non critiques sont localisés sur
pas suffisante,
un seul site,
• Intéressant s’il y a une partie importante de
• Grande flexibilité.
traitement local ;

M. AZOTI & M. SANI 36


FRAGMENTATION ET ALLOCATION

Problèmes 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.) de Q.

➢ Contraintes
❑ Stockage ;
❑ Équilibrage de la charge entre les sites.

M. AZOTI & M. SANI 37


FRAGMENTATION ET ALLOCATION

Méthodes d’allocation

Méthode « BEST FIT »

Méthode « ABS: All Beneficial Sites

Méthode « Allocation Progressive »

M. AZOTI & M. SANI 38


FRAGMENTATION ET ALLOCATION

Méthodes d’allocation

Méthode « BEST FIT »

➢ 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 réplication.

Soient les informations relatives aux différents fragments recueillis d’une étude préalable (les fragments de
cet exemple diffèrent des fragments que nous avons obtenus précédemment) :

M. AZOTI & M. SANI 39


FRAGMENTATION ET ALLOCATION

Méthode « BEST FIT »


Tableau 1: Fragments à allouer Tableau 3 : Tableau décisif de la méthode "BEST FIT"

Fragme Temps Temps Temps Temps mise à Accès T1 * Accès T2 * Accès T3 * Total
Fragment Site
nts d’accès mise à accès jour distant Fréquence Fréquence Fréquence pondéré
F1 S1 4*1 0 0 4
local(ms) jour local distant
S2 0 2*2 0 4
F1 100 150 500 600
S3 0 0 0 0
F2 150 200 650 700
S4 4*1 2*2 0 8
F3 200 250 1000 1100 S5 4*1 0 0 4
F2 S1 2*1 0 0 2
Tableau 2 : Transactions sur les fragments par rapport aux sites
S2 0 0 0 0
Transactions Sites Fréquence Accès Tables (L= lecture, S3 0 0 4*3 12
E = écriture) S4 2*1 0 0 2
4 accès F1 (3L, 1E)
T1 S1, S4, S5 1 S5 2*1 0 4*3 14
2 accès F2 (2L)
F3 S1 0 0 0 0
2 accès F1 (2L)
T2 S2, S4 2 S2 0 4*2 0 8
4 accès F3 (3L,1E)
S3 0 0 2*3 6
4 accès F2 (3L, 1E) S4 0 4*2 0 8
T3 S3, S5 3
2 accès F3 (2L) S5 0 0 2*3 6

On stocke F1 sur S4, F2 sur S5 et F3 sur S2 ou S4 (S2 pour mieux répartir).


M. AZOTI & M. SANI 40
FRAGMENTATION ET ALLOCATION

Méthode « ABS: All Beneficial Sites

Principes
✓ Stocker un fragment sur tous les sites où le bénéfice du stockage est supérieur à son coût ;
✓ Bénéfice = (temps de traitement distant – temps de traitement local) * fréquence ;
✓ Coût du stockage copie = coût de la mise à jour locale + coût des mises à jour distantes.

Formules

Coût m.a.j Local = Accès écriture * Fréquence * Temps m.a.j local

Coût m.a.j Distant = Accès écriture * Fréquence * Temps m.a.j distant

Coût m.a.j = Coût m.a.j Local + Coût m.a.j Distant

Interro Local = Accès lecture * Fréquence * Temps d’accès local

Interro Distant = Accès lecture * Fréquence * Temps d’accès distant

Bénéfice Copie = Interro Distant – Interro Local

M. AZOTI & M. SANI 41


FRAGMENTATION ET ALLOCATION

Méthode « ABS: All Beneficial Sites


Tableau 1: Fragments à allouer
Fragme Temps Temps Temps Temps mise à
nts d’accès mise à accès jour distant
local(ms) jour local distant
F1 100 150 500 600 Prenons le fragment F1, sur le site S1. Ce
F2 150 200 650 700 fragment a pour mise-à-jour locale la
F3 200 250 1000 1100 transaction T1 et des mises-à-jour distantes
Tableau 2 : Transactions sur les fragments par rapport aux sites de T1 sur S4 et S5. Puis en interrogation
locale T1 de S1.
Transactions Sites Fréquence Accès Tables (L= lecture,
E = écriture)
4 accès F1 (3L, 1E)
T1 S1, S4, S5 1
2 accès F2 (2L)
2 accèsF1 (2L)
T2 S2, S4 2
4 accès F3 (3L,1E)

4 accès F2 (3L, 1E)


T3 S3, S5 3
2 accès F3 (2L)

M. AZOTI & M. SANI 42


FRAGMENTATION ET ALLOCATION

Méthode « ABS: All Beneficial Sites

➢ Calcul des Interrogations


➢ Calcul du coût de m.a.j Interrogation de T1 de S1 pour F1
Mise à jour local de T1 sur S1 pour F1 Interro Local = Accès lecture * Fréquence * Temps d’accès local
Coût m.a.j local = Accès écriture * Fréquence * Temps m.a.j local = 3*1*100
= 1*1*150 = 150 = 300
Mise à jour distant de T1 sur S4 et S5 de F1 Interro Distant = Accès lecture * Fréquence * Temps d’accès
Coût m.a.j distant = Accès écriture * Fréquence * Temps m.a.j distant distant
= 1*1*600 + 1*1*600 = 3*1*500
= 2*1*1*600 = 1500
Coût m.a.j distant = 1200 ➢ Calcul de Bénéfice
Coût m.a.j = Coût m.a.j local + Coût m.a.j distant Bénéfice Copie = Interro Distant – Interro Local
= 150 + 1200 = 1500 – 300
= 1350 = 1200

Conclusion
Bénéfice Copie – Coût m.a.j = 1200 – 1350 = - 150 qui est < 0
On ne peut donc pas allouer le fragment F1 sur le site S1.
M. AZOTI & M. SANI 43
FRAGMENTATION ET ALLOCATION
M.a.j. Interr. Interr. bénéfice bénéfice
Fragment Site M.a.j. distantes Coût m.a.j. Interrogations
locales locales distantes copie - coût
F1 S1 T1 T1 de S4 et S5 1*1*150+2*1*1*600 = 1350 T1 de S1 3*1*100 = 300 3*1*500 = 1500 1200 -150 <0

S2 T1 de S1, S4 et S5 3*1*1*600 = 1800 T2 de S2 2*2*100 = 400 2*2*500 = 2000 1600 -200 <0

S3 T1 de S1, S4 et S5 3*1*1*600 = 1800 0 <0


3*1*100+2*2*100 = 3*1*500+ 2*2*500 =
S4 T1 T1 de S1 et S5 1*1*150+2*1*1*600 = 1350 T1 et T2 de S4 2800 1450 >0
700 3500
S5 T1 T1 de S1 et S4 1*1*150+2*1*1*600 = 1350 T1 de S5 3*1*100 3*1*500 1200 -150 <0

F2 S1 T3 de S3 et S5 2*1*3*700 = 4200 T1 de S1 2*1*150= 300 2*1*650= 1300 1000 -3200 <0

S2 T3 de S3 et S5 2*1*3*700 = 4200 0 <0

S3 T3 T3 de S5 1*1*3*200 + 1*1*3*700 = 2700 T3 de S3 3*3*150 = 1350 3*3*650 = 5850 4500 1800 >0

S4 T3 de S3 et S5 2*1*3*700 = 4200 T1 de S4 2*1*150 =300 2*1*650= 1300 1000 -3200 <0


2*1*150+3*3*150 = 3*3*650+2*1*650 =
S5 T3 T3 de S3 1*1*3*200+1*1*3*700 = 2700 T1 et T3 de S5 5500 2800 >0
1650 7150
F3 S1 T2 de S2 et S4 2*1*2*1100 = 4400 0 <0
1*1*2*250 + 1*1*2*1100 =
S2 T2 T2 de S4 T2 de S2 2*3*200 = 1200 2*3*1000 =6000 4800 2100 >0
2700
S3 T2 de S2 et S4 2*1*2*1100 = 4400 T3 de S3 3*2*200 = 1200 3*2*1000= 6000 4800 400 >0
1*1*2*250 + 1*1*2*1100 =
S4 T2 T2 de S2 T2 de S4 2*3*200 = 1200 2*3*1000= 6000 4800 2100 >0
2700
S5 T2 de S2 et S4 2*1*2*1100 = 4400 T3 de S5 3*2*200 = 1200 3*2*1000 = 6000 4800 400 >0

M. AZOTI & M. SANI 44


FRAGMENTATION ET ALLOCATION

Méthode « Allocation Progressive »


Exemple
Principes Soient 2 fragments F1 et F2, 2 sites S1 et S2
➢ Alloue la première copie de
Bénéfice Coût Résultat B - C
fragment au site qui maximise
F1 sur S1 200 150 50
Bénéfice – Coût ;
F1 sur S2 175 170 5
➢ Puis, calcul Bénéfice – Coût F2 sur S1 30 60 -30
connaissant cette première copie : F2 sur S2 45 50 -5
❑ Coût ne change pas ;
➢ D’après la méthode ABS : F1 a deux copies, sur S1 et S2, puis F2 sur S2
❑ Bénéfice peut changer car le temps
➢ Avec l’allocation Progressive : F1 sur S1 et F2 sur S2 alors, on ne fait pas
d’accès distant peut diminuer.
de copie de F2 sur S1 ni de F1 sur S2

Remarques
➢ Ne tiennent pas compte de la topologie du réseau ;
➢ Difficulté à estimer les temps moyens ;
➢ Parfois on se concentre sur les transactions critiques et non sur l’ensemble des transactions.

M. AZOTI & M. SANI 45


FRAGMENTATION ET ALLOCATION

M. AZOTI & M. SANI 46

Vous aimerez peut-être aussi