Vous êtes sur la page 1sur 80

Bases de Donnes Rparties

I. Gnralits sur les bases de donnes rparties


1.1 Introduction
1.2 Architecture des systmes rpartis
1.3 Principe des bases de donnes rparties
1.3.1 Les objectifs de la rpartition
1.3.2 Dfinition
1.3.3 SGBDR
1.4 Architecture dune BDR
1.5 Inconvnients des systmes rpartis
II. Conception de bases de donnes rparties
2.1 Introduction
2.2 Conception descendante
2.2.1 La fragmentation
2.2.2 L'allocation des fragments
2.3 Conception ascendante
III. Traitement des requtes
IV. Transactions rparties
V. Mise en place dune BDD distribue sous Oracle
Introduction

L'volution des techniques


informatiques durant ces dernires
dcennies couple la lascension
fulgurante des entreprises grant des
volumes gigantesques de donnes a
permis lmergence des bases de
donnes.
Quest ce quune Base de Donnes?

Une base de donnes (BDD) est un


ensemble structur dinformations
persistantes stockes sur des supports
accessibles par un ordinateur pour
satisfaire simultanment plusieurs
utilisateurs, de manire slective, en un
temps opportun.
La BDD, contient gnralement les
informations pertinentes de lentreprise.
Cest le cur de son systme dinformation
(SI).
La qualit du SI est lie la cohrence de la
base de donnes qui doit reflter le plus
fidlement possible la situation de
lentreprise.
Les niveaux des BD
Vues externes
chaque vue reprsente
la partie de la bd relative
chaque utilisateur / application

Schma conceptuel
vue globale de la base :
les donnes stockes
et les relations parmi les donnes

R1(A number(10), B string, , primary key (A), ...) Schma logique


. Reprsente un modle de donnes
Rn (X number(15), Y string, , primary key (X), ) conforme au modle cibl de SGBD
(par ex. SGBDR)

Schma physique
dcrit comment les donnes
sont stockes dans la bd +
les index
SGBD

Le logiciel qui permet aux utilisateurs


dinteragir avec une BD est le Systme de
Gestion de Base de Donnes (SGBD).

Interagir avec la BD= dfinir, crer,


maintenir, contrler et accder la BD
Fonctions principales dun SGBD
1. Description des donnes : codification
structuration, grce un Langage de
Description de Donnes (LDD)
2. Manipulation et restitution des donnes
(insertion, mise jour, interrogation): grce
un Langage de Manipulation de Donnes
(LMD) lexemple de S.Q.L. -Structured Query
Langage-)
3. Contrle des donnes (partage, intgrit,
confidentialit, scurit)
Evolution historique des BDD
Initialement , Bases de donnes centralise :
les oprations sur les donnes (mises jour et autres traitements) sont
ralises sur un unique processeur.
La cohrence des donnes est assure grce ladministration centralise des
donnes.
Dans les annes 80, bases de donnes dcentralise:
Le stockage et les mises jour de la base de donnes sont maintenus sur le
processeur central, mais les traitements autres que les mises jour sont
dcentraliss sur les micro-ordinateurs des utilisateurs.
la cohrence de la base de donnes est toujours prserve grce la
centralisation du stockage et des mises jour.
Remarques:
Dans les systmes centraliss et dcentraliss:
le fonctionnement du systme dinformation automatis repose sur la
disponibilit du processeur central qui gre la base de donnes.
La dfaillance du processeur central provoque la quasi-paralysie du
systme de lentreprise.
Pour pallier cet inconvnient, le systme dinformation (donnes et
traitements) est rparti sur diffrents sites (processeurs de traitement
autonomes) interconnects par un rseau de communication. Les
processeurs cooprent pour assurer la gestion de linformation. On parle
alors de systme rparti.
Evolution historique des BDD
Initialement , Bases de donnes centralise :
les oprations sur les donnes (mises jour et autres
traitements) sont ralises sur un unique processeur.
La cohrence des donnes est assure grce
ladministration centralise des donnes.

Dans les annes 80, bases de donnes dcentralise


(de type serveurs de fichiers):
Le stockage et les mises jour de la base de donnes sont
maintenus sur le processeur central, mais les traitements
autres que les mises jour (applications et SGBDs) sont
dcentraliss sur les micro-ordinateurs des utilisateurs.
la cohrence de la base de donnes est toujours
prserve grce la centralisation du stockage et des
mises jour.
Evolution historique des BDD (2)
Remarques:
Dans les systmes centraliss et dcentraliss:
le fonctionnement du systme dinformation automatis
repose sur la disponibilit du processeur central
qui gre la base de donnes.
La dfaillance du processeur central provoque la
quasi-paralysie du systme de lentreprise.

Pour pallier cet inconvnient, le systme dinformation


(donnes et traitements) est rparti sur diffrents
sites (processeurs de traitement autonomes)
interconnects par un rseau de communication.
Les processeurs cooprent pour assurer la gestion de
linformation. On parle alors de systme rparti.
Architecture des systmes rpartis

Les systmes rpartis recouvrent diverses


architectures :
les architectures Client / Serveur
architectures totalement rparties.
Architecture client/serveur
L'architecture Client/Serveur se base sur deux
types de processeurs gnralement distincts :
Les serveurs qui offrent un service des clients, par
exemple un serveur base de donnes ou un serveur
imprimante;
Les clients qui mettent des requtes aux serveurs
pour les besoins d'une application.
Dans l'architecture Client / Serveur la plus simple:
la quasi-totalit du SGBD se trouve sur le
serveur,
la base de donnes est centralise sur le
serveur.
les processeurs clients ne disposant que de
mcanismes de dcodage et de transmission des
requtes vers ce serveur.
Architecture client-serveur (2-tier)

BD
Rseau

Programme
SGBD
d'application
Logiciel Logiciel
intermdiaire intermdiaire
Pilote de Pilote de
tlcommunication tlcommunication

Client Serveur
Robert Godin..
Architectures totalement rparties

Une architecture totalement rpartie est une


gnralisation de l'architecture Client / Serveur :
les processeurs sont autonomes dans le sens o
ils peuvent disposer d'un SGBD et assurer la
pleine gestion d'une base de donnes locale.
De plus, s'ils ne disposent pas des ressources
ncessaires une application qui leur est soumise, ils
dterminent la localisation des donnes et des
traitements qui leur sont ncessaires et
tablissent une coopration avec les
processeurs dtenteurs de ces ressources.
Dans cette architecture, la base de donnes est
rpartie sur les diffrents sites (processeurs) du
rseau.
Base de donnes rpartie, distribue (distributed
database)

SGBD rparti (distributed DBMS)


rpartition des donnes de manire transparente

BD BD
locale locale

Rseau Rseau

Programme
SGBD rparti SGBD rparti
d'application
Logiciel Logiciel Logiciel
intermdiaire intermdiaire intermdiaire
Pilote de Pilote de Pilote de
tlcommunication tlcommunication tlcommunication
Serveur de Serveur de
Client
donnes donnes

Robert Godin.
Objectifs de la rpartition
Limiter le transfert d'information (en nombre et en
volume) en rpartissant les donnes l o elles sont le plus
utilises.
Accrotre les performances en rpartissant la charge de
travail sur plusieurs units de traitement oprant en
parallle.
Etendre la fiabilit et la disponibilit des
informations, en les dupliquant sur plusieurs sites.
Faire crotre en souplesse une BD ou mme tout le
systme de base de donnes. Le but est de ne pas
modifier l'existant lorsque l'on dsire transformer la
structure des donnes (volution du schma conceptuel),
utiliser un nouveau support ou une nouvelle technologie de
stockage, ou utiliser un nouveau SGBD. L'volution est
alors assure en faisant cooprer l'existant avec le
"nouveau" au sein d'une BD rpartie.
Dfinitions

Une base de donnes rpartie (BDR) est une collection


de bases de donnes plus ou moins htrognes,
dissmines sur plusieurs sites (ordinateurs, ou
processeurs, ) gnralement distants et
interconnects via un rseau de communication, se
comportant vis--vis des applications qui les utilisent
comme une base de donnes unique, homogne et
intgre.

Lorsque les BD qui composent une BDR reposent sur des


modles de donnes diffrents (hirarchique, rseau,
relationnel, orient objet), on parle de BDR htrogne.
Base de donnes rpartie (distribue) sur 3
sites
SGBDR

Une BDR est gre par un systme de gestion de


bases de donnes rparties (SGBDR).
Le SGBDR repose sur un systme informatique rparti
constitu dun ensemble de processeurs autonomes
relis par un rseau de communication qui leur
permet d'changer des donnes.
Un SGBDR suppose que les donnes sont stockes sur
deux processeurs au moins. Chacun tant dot de son
propre SGBD. Le tout tant transparent lutilisateur.

Un SGBDR est dit htrogne, sil est constitu de


SGBD de diffrents types.
Objectifs dun SGBDR (1)
Transparence pour lutilisateur :
Pour un utilisateur, le systme distribu doit ressembler
exactement un systme non distribu.
Autonomie de chaque site
Lautonomie locale dun site vise garder une administration
spare et indpendante pour chaque serveur participant la
BDR. Chaque site est responsable :
des reprises aprs panne ainsi que ses mises niveau des
logiciels (sans impacts sur les autres sites),
de la gestion de ses donnes. Chaque base conserve son
propre dictionnaire local contenant ses schmas locaux.
de la gestion des transactions qui sy excutent.
De plus, le succs de ces oprations ne doit pas dpendre
dautres sites.
Absence de site privilgi
Lautonomie locale implique que tous les sites sont considrs
comme gaux. Il nexiste aucun site central dont dpendrait
un quelconque service du systme distribu.
Objectifs dun SGBDR (2)
Continuit de service: Un des avantages des systmes distribus
est quils offrent une meilleure disponibilit et une plus grande
fiabilit :
la fiabilit est la probabilit quun systme soit fonctionnel un moment
donn. Dans le cas dun SGBDR, un site en panne nempche pas les
autres sites de fonctionner.
la disponibilit est la probabilit que le systme fonctionne de manire
continue sur une priode de temps donne. La disponibilit est rendue
possible, dune part grce lautonomie des sites, et dautre part grce
la rplication des donnes.
Transparence vis vis de la localisation des donnes
La transparence de la localisation des donnes sous-entend que ni les
applications ni les utilisateurs n'ont besoin de connatre la localisation
physique des donnes auxquelles ils accdent.
Objectifs dun SGBDR (3)
Transparence vis vis de la fragmentation
Un systme supporte la fragmentation des donnes, si une base donne
peut tre divise en fragments, et chaque fragment peut tre stock sur
un site diffrent.
La transparence vis--vis de la fragmentation implique que les
utilisateurs n'ont pas savoir si les donnes sont fragmentes ou non.
C'est le systme qui gre les partitionnements et les modifie en fonction
de ses besoins. Et c'est donc lui qui doit rechercher toutes les partitions
et les intgrer en une seule information logique qui est prsente
l'utilisateur.
Transparence vis vis de la rplication
Un systme supporte la rplication de donnes, si une BD ou plus
gnralement un fragment dune BDD peut tre reprsent par
diffrentes copies ou replicas, stockes sur diffrents sites.
La rplication doit tre transparente lutilisateur. Ainsi, les utilisateurs
n'ont pas savoir si plusieurs copies d'une mme information sont
disponibles. Tout se passe pour lutilisateur, comme si les donnes ne
sont pas rpliques du tout. La consquence directe est que lors de la
modification d'une information, c'est le systme qui doit se proccuper
de mettre jour toutes les copies.
Objectifs dun SGBDR (4)
Traitement des requtes distribues
Un traitement rparti contient des requtes formules partir dun
schma externe global ;
Ces requtes correspondent un ensemble doprations de recherches
et de mises jour sur des donnes de la BDR. Le SGBDR contrle et
analyse chaque requte et la dcompose en oprations locales (plan
dexcution rparti) qui seront soumises pour excution aux SGBD
locaux concerns. Les rponses locales sont ensuite regroupes pour
laborer la rponse la requte globale.
Gestion des transactions rparties
Dans un systme rparti, une transaction peut ncessiter lexcution de
code sur plusieurs sites. En particulier, une transaction peut impliquer
des mises jour sur plusieurs sites. On dit quune transaction met en
uvre plusieurs agents (un agent est le processus mis en uvre par
une transaction sur un site donne). Pour valider une transaction, le
systme doit sassurer que tous les agents de la transaction
commitent lunisson.
Objectifs dun SGBDR (5)
Indpendance vis vis du matriel
Le SGBD fonctionne sur diffrentes plates-formes.
Indpendance vis vis du systme dexploitation
Le SGBD fonctionne avec diffrents systmes dexploitation
Indpendance vis vis du rseau
Le SGBD est accessible travers les diffrents types de
rseaux utiliss.
Indpendance vis vis du SGBD
Le systme rparti peut tre htrogne, et supporter que
la base de donnes soit rpartie sur des SGBD diffrents. La
relation globale doit pouvoir tre exprime dans un langage
normalis indpendant des constructeurs.
Fonctions dun SGBD rparti
Un SGBDR doit offrir les mmes services quun SGBD
monolithique, soit dcharger les utilisateurs de tous les
problmes de contrle de cohrence, de scurit des
donnes, de gestion des priorits, de verrous et de
concurrence daccs.

Pour cela, il doit :


Disposer dun dictionnaire des donnes rparties
Assurer le traitement des requtes rparties
Assurer la gestion de transactions rparties
Assurer la gestion de la cohrence et de la confidentialit
Fonctions dun SGBD rparti (suite)
Le SGBDR reoit des requtes portant sur des
objets dune BDR. Il assure la dcomposition des
requtes distribues en sous requtes locales envoyes
chaque site.
Pour les mises jour, le SGBDR doit assurer la gestion
des transactions rparties, ce qui inclut la vrification des
rgles d'intgrit multibases, le contrle des accs
concurrents, et la gestion de latomicit des transactions
rparties. Le SGBDR peut sappuyer sur les fonctions
locales de gestion des transactions pour accomplir les
fonctions globales.
En cas des bases de donnes htrognes, le
SGBDR doit assurer la traduction des requtes exprimes
dans un langage pivot, dans un langage comprhensible
par le SGBD local.
Architecture dune BDDR
Une BDR est dcrite dans un dictionnaire de donnes sous la forme
de schmas globaux distincts :
Les schmas externes: le niveau externe dcrit les donnes sous forme
de vues, chacune d'elles tant adapte une classe particulire
d'utilisateurs; un schma externe peut mixer des donnes stockes dans
diffrentes bases;
Le schma conceptuel global: toutes les donnes sont dcrites dans
ce schma en utilisant un modle de donnes, indpendamment de leur
localisation dans le systme rparti;
Le schma interne global : o sont spcifies notamment la
fragmentation des donnes (schma de fragmentation) et la localisation
de ces fragments sur les sites distants (schma dallocation). Lensemble
des fragments stocks sur un site donn constitue la base de donnes
locale.
L'utilisateur accde aux donnes rparties travers ces diffrents
schmas en utilisant un langage de type SQL.
Architecture dune BDDR (2)

Schma
interne global
Exemple de schma global

Schma conceptuel global


Client (nclient, nom, ville)
Cde (ncde, nclient, produit, qt)

Schma interne global


Client= Client1 @ Site1 U Client2 @ Site2
Cde = Cde @ Site3
Avantages des systmes rpartis

extensibilit
partage des donnes htrognes et
rparties
performances
disponibilit des donnes
Inconvnients des systmes rpartis

administration complexe :
des mcanismes de dcomposition de requtes,
la synchronisation des traitements
distribution du contrle
maintien de la cohrence due la rpartition de la base
de donnes sur plusieurs sites,
cot des transmissions des donnes sur les
rseaux locaux.
Conception des bases rparties

Une base de donnes rpartie peut tre


construite :
soit partir de rien (conception descendante ou
conception par dcomposition),
soit partir du regroupement d'une multitude de
bases de donnes dj existantes (conception
ascendante ou conception par intgration).
Les approches de conception dune BDR
sont donc diffrentes selon cas.
Conception des bases rparties

BDR
Approche Approche
dcomposition intgration ascendante
descendante

BD1 BD2 BDn



1. Conception descendante
On commence par dfinir un schma
conceptuel global de la base de donnes
rpartie, puis on le distribue sur les
diffrents sites en des schmas conceptuels
locaux.
La rpartition se fait donc en deux tapes :
dabord, la fragmentation des donnes,
puis l'allocation des fragments aux diffrents
sites.
Conception descendante (2)

Table globale

fragmentation

allocation

Site 1 Site 2
La fragmentation
La fragmentation est le processus de dcomposition d'une
base de donnes en un ensemble de sous bases de donnes.
Cette dcomposition doit tre sans perte d'information.

Grce sa simplicit, luniversalit de ses concepts et


surtout lalgbre qui lui est associe, le modle
relationnel se prte bien ltude de la rpartition
des donnes. Si bien que les bases de donnes conues
avec dautres modles (hirarchique et rseau) sont traduites
en termes relationnels pour les intgrer dans le systme
rparti. La fragmentation concernera alors les
relations, principal composant dune BD relationnelle.
Fragmentation des relations
La fragmentation dune relation obit
trois rgles de base qui sont :
La compltude : Si une relation R est dcompose
en plusieurs fragments Ri, alors toute donne de R
doit aussi se retrouver dans au moins un fragment Ri.
La Reconstruction : pour toute relation R
dcompose en un ensemble de fragments Ri, il
existe une opration de reconstruction.
La Disjonction : une donne n'est prsente que
dans un seul fragment (sauf dans le cas de la
fragmentation verticale o la cl primaire doit tre
prsente dans l'ensemble des fragments issus d'une
relation).
Fragmentation des relations (2)
Pour fragmenter une relation globale sans
perte dinformation, il suffit dappliquer
cette relation:
lopration algbrique de restriction (pour une
fragmentation horizontale)
ou lopration algbrique de projection (pour une
fragmentation verticale).
Les oprations dunion et de jointure
respectivement permettent ensuite de
reconstituer la relation initiale.
Fragmentation horizontale
Fragments dfinis par slection Client

Client1 = Client where ville = nclient nom ville


"Paris" C1 Dupont Paris
Client2 = Client where ville C2 Martin Lyon
C3 Martin Paris
"Paris" C4 Smith Lille

Client1
nclient nom ville
C1 Dupont Paris
C3 Martin Paris
Reconstruction
Client = Client1 U Client2 Client2
nclient nom ville
C2 Martin Lyon
C4 Smith Lille
Fragmentation horizontale drive
Cde
Fragments dfinis par jointure
Cde1 = Cde where ncde nclient produit qt
Cde.nclient = Client1.nclient D1 C1 P1 10
Cde2 = Cde where D2 C1 P2 20
Cde.nclient = Client2.nclient D3 C2 P3 5
D4 C4 P4 10
Reconstruction
Cde = Cde1 U Cde2

Cde1 Cde2
ncde nclient produit qt ncde nclient produit qt
D1 C1 P1 10 D3 C2 P3 5
D2 C1 P2 20 D4 C4 P4 10
Fragmentation verticale
Fragments dfinis par projection
Cde1 = Cde (ncde, nclient) Cde
Cde2 = Cde (ncde, produit, qt) ncde nclient produit qt
Reconstruction par jointure D1 C1 P1 10
D2 C1 P2 20
Cde = [ncde, nclient, produit, qt] D3 C2 P3 5
where Cde1.ncde = Cde2.ncde D4 C4 P4 10
Utile si forte affinit d'attributs

Cde1 Cde2
ncde nclient ncde produit qt
D1 C1 D1 P1 10
D2 C1 D2 P2 20
D3 C2 D3 P3 5
D4 C4 D4 P4 10
Comment?

Comment obtenir des fragments disjoints et


assurer la reconstruction ?

Gnration automatique
Ou manuelle ralise par l administrateur.
Diffrentes mthodologies selon le type de
fragmentation.
Exemple
Etant donne la relation la relation suivante
Compte (NoClient, Agence, TypeCompte,
Somme) :
Requtes frquentes sur la table compte:

Proposer un schma de fragmentation horizontale pour la table


compte?
Approche de fragmentation horizontale
Commencer avec les conditions de slection
frquentes
Extraire partir des requtes les conditions de slection (ou
prdicats de slection):
TypeCompte=Courant, Agence=Genve, Agence=Lausanne,
Somme >100 000
On obtient ainsi un ensemble : C={c1, c2,...cn} des
conditions lmentaires (ci):
C={ TypeCompte=Courant, TypeCompte=Courant,
Agence=Genve, Agence=Lausanne,
Somme >100 000, Somme <= 100 000}
Fragmentation Horizontale

Construire lensemble (cc) des 2n


conjonctions de conditions lmentaires (ou
minterms) suivant :

Supprimer les cc qui sont toujours fausses


Simplifier les cc restantes

Construire les fragments finaux sur la base


des minterms ainsi retenus.
Construction des minterms
TypeCompte=Courant TypeCompte =Courant

Somme >100 000 Somme <=100 000

Agence=Genve Agence=Lausanne

TypeCompte=Courant TypeCompte =Courant

Somme >100 000 Somme <=100 000

Agence=Genve Agence=Lausanne


Les minterms (aprs simplification)

m1: TypeCompte=Courant Somme >100 000 Agence=Lausanne

m2: TypeCompte=Courant Somme >100 000 Agence=Genve

m3: TypeCompte=Courant Somme <=100 000 Agence=Lausanne

m4: TypeCompte=Courant Somme <=100 000 Agence=Genve

m5: TypeCompte=Courant Somme >100 000 Agence=Lausanne

m6: TypeCompte=Courant Somme >100 000 Agence=Genve

m7: TypeCompte=Courant Somme <=100 000 Agence=Lausanne

m8: TypeCompte=Courant Somme <=100 000 Agence=Genve


Fragments Finaux
F1=m1COMPTE F1 NClient Agence TypeCompte Somme
174 173 Lausanne Courant 123 345

F2=m2COMPTE NClient Agence TypeCompte Somme


F2 203 446 Geneve Courant 274 882

F3=m3COMPTE
NClient Agence TypeCompte Somme
F3
201 693 Lausanne Courant 45 102
F4=m4COMPTE
NClient Agence TypeCompte Somme
F5=m5COMPTE F4 177 498 Geneve Courant 34 564

F6=F7=F8={ } NClient Agence TypeCompte Somme


201 639 Lausanne Dpt 325 100
F5
Approches de fragmentation verticale
La Fragmentation verticale dune relation R
produit des fragments R1, R2, , Rn dont
chacun constitue un sous_ensemble dattributs
de R, dont fait partie la cl primaire de R.

Il existe deux approches pour la fragmentation


verticale :
Le regroupement,
Lclatement.
Dans lapproche par regroupement (ou
clustering), on commence par assigner
chaque attribut un fragment, puis on
procde successivement au regroupement de
certains fragments jusqu ce quun certain
critre soit satisfait.
Dans lapproche par clatement (ou splitting),
on commence par une relation et on dcide
dun partitionnement bnfique sur la base
des attributs rfrencs par les diffrentes
applications.
Fragmentation verticale par clatement
Informations requises:
Linformation majeure requise est lie aux applications qui
sexcutent sur la BDD rpartie.
Principe de base:
le partitionnement vertical place dans un mme
fragment tous les attributs qui ont une forte affinit:
ncessit de dfinir une mesure daffinit entre attributs qui
indique quel point ils sont proches.
Deux attributs ont une affinit sils sont usuellement accds
ensemble
Une fois les affinit calcules, la fragmentation verticale se
base :
dabord sur un clustering des attributs forte affinit entre eux,
puis lclatement de la relation en fragments suivant ces clusters.
Etapes de la fragmentation verticale par clatement

1. Calculer la matrice dutilisation des attributs


2. Calculer la matrice daffinit entre attributs.
3. Clusteriser la matrice daffinits
4. Partitionner la matrice daffinits
5. Dfinir les fragments verticaux
Exemple dApplication
Considrons la relation suivante
Projet (numP, nomP, budget, ville).
Trouver un schma de fragmentation verticale pour
la relation Projet, en tenant compte des requtes
suivantes :
1- Matrice dutilisation

Pour une requte Ri et un attribut Aj, on


associe une valeur dusage (ou dutilisation),
note Ut(Ri, Aj), dfinie comme suit :

En calculant Ut(Ri, Aj) pour chaque requte Ri


et chaque attribut Aj , on construit la
matrice dutilisation Ut.
1- Matrice dutilisation (exemple)

NumP NomP Budget Ville

(A1) (A2) (A3) (A4)


R1 1 0 1 0

R2 0 1 1 0

R3 0 1 0 1

R4 0 0 1 1
2-Affinits dattributs

1. Informations requises:
Etant donnes les requtes Rk dfinies sur les
attributs Ai de la relation R.
Une requte Rk sexcute sur un site l.
On note:
Refl (Rk) est le nombre daccs aux attributs Ai et Aj
pour chaque excution de Rk sur le site l.

Accl (Rk) reprsente la frquence daccs de la requte


Rk au site l.
Affinits dattributs -suite-

2. Mesure daffinit:
Laffinit Aff(Ai, Aj) entre deux attributs Ai et Aj, est dfinie
comme suit :

Aff(Ai, Aj)
k/
ref R * acc R
site l
l k l k

Ut Rk , Ai 1
Ut Rk , Aj 1

Ensemble de tous les


Ensemble des requtes qk qui utilisent sites
Ai et Aj
2-Affinits dattributs (Exemple)
Supposons : Refl (Rk) = 1, quelques soient le site l et la requte Rk
Et supposons les accs suivants (sur les 3 sites supposs):
Acc1(R1)=15 Acc2(R1) = 20 Acc3(R1) = 10
Acc1(R2)=5 Acc2(R2) = 0 Acc3(R2) = 0
Acc1(R3)=25 Acc2(R3) = 25 Acc3(R3) = 25
Acc1(R4)= 3 Acc2(R4) = 0 Acc3(R4) = 0

Aff(A1, A3) = K=1 s Accs(Rk)


= Acc1(R1) +Acc2(R1) +Acc3(R1) = 45

Aff(A2, A2) = K=2,3, s Accs(Rk)


= [Acc1(R2) +Acc2(R2) +Acc3(R2)]+[Acc1(R3) +Acc2(R3) +Acc3(R3)]
= 80
2- Matrice daffinits obtenue (exemple)

Aff(Ai,Aj) A1 A2 A3 A4

A1 45 0 45 0

A2 0 80 5 75

A3 45 5 53 3

A4 0 75 3 78
3- Clustering de la matrice daffinits

Il sagit dans cette tape de regrouper dans des


clusters, les attributs trs forte affinits.
Le clustering est bas sur lalgorithme BEA (Bond
Energy Algorithm) de Mc.Cormick -1972-:
Entre : matrice daffinits (Aff),
Sortie : matrice daffinits clusterise (CA)
obtenue par permutations sur Aff.
Principe: La permutation est ralise de
sorte maximiser laffinit globale des
attributs.
3.1 Algorithme BEA
Lalgorithme BEA permute les lignes et les colonnes de la matrice daffinits
Aff et gnre la matrice daffinits clusterise CA.

La permutation est base sur le principe suivant :


On dmarre avec 2 colonnes quelconques de la matrice daffinits.
Le placement dun attribut Ak entre deux attributs Ai et Aj apporte une
contribution calcule comme suit :

Contr Ai , Ak , A j
2 Bond Ai , Ak 2 Bond Ak , A j 2 Bond Ai , A j
o :

Bond Ax , A y Aff Az , Ax Aff Az , A y
z 1, n
Bond A0 , Ak 0 ( tel que A0 n' existe pas )
Bond An , An 1 0 ( tel que An 1 n' existe pas )

Lattribut Ak sera plac l o sa contribution est maximale.


Algorithme BEA: Calcul daffinits (exemple)

Permutation 1: (A0, A3, A1)

Contr A0 , A3 , A1 2 Bond A0 , A3 2 Bond A3 , A1 2 Bond A0 , A1


2 * Bond A3 , A1
8820
o :
Bond A3 , A1 Aff Ai , A3 Aff Ai , A1
i 1,4
Aff A1 , A3 Aff A1 , A1 Aff A2 , A3 Aff A2 , A1
Aff A3 , A3 Aff A3 , A1 Aff A4 , A3 Aff A4 , A1
45 * 45 0 * 5 45 * 53 0 * 3
4410
Permutation 2: (A1, A3, A2)

Contr A1 , A3 , A2 2 Bond A1 , A3 2 Bond A3 , A2 2 Bond A1 , A2


2 * 4410 2 * 890 2 * 225
10150
avec :
Bond A1 , A3 4410
Bond A3 , A2 Aff Ai , A3 Aff Ai , A2
i 1,4
Aff A1 , A3 Aff A1 , A2 Aff A2 , A3 Aff A2 , A2
Aff A3 , A3 Aff A3 , A2 Aff A4 , A3 Aff A4 , A2
0 * 45 80 * 5 5 * 53 75 * 3
890
Bond A1 , A2 Aff Ai , A1 Aff Ai , A2
i 1,4
Aff A1 , A1 Aff A1 , A2 Aff A2 , A1 Aff A2 , A2
Aff A3 , A1 Aff A3 , A2 Aff A4 , A1 Aff A4 , A2
45 * 0 0 * 80 45 * 5 0 * 75
255
Permutation 3: (A2, A3, A4)

Contr A2 , A3 , A4 2 Bond A2 , A3 2 Bond A3 , A4 2 Bond A2 , A4


19814
avec :
Bond A2 , A3 Bond A3 , A2 890
Bond A3 , A4 Aff Ai , A3 Aff Ai , A4
i 1,4
Aff A1 , A3 Aff A1 , A4 Aff A2 , A3 Aff A2 , A4
Aff A3 , A3 Aff A3 , A4 Aff A4 , A3 Aff A4 , A4
45 * 0 5 * 75 3 * 53 3 * 78
1068
Bond A2 , A4 Aff Ai , A2 Aff Ai , A4
i 1,4
Aff A1 , A2 Aff A1 , A4 Aff A2 , A2 Aff A2 , A4
Aff A3 , A2 Aff A3 , A4 Aff A4 , A2 Aff A4 , A4
0 * 0 80 * 75 5 * 3 75 * 78
11865
Permutation 4: (A4, A3, A5)

Contr A4 , A3 , A5 2 Bond A4 , A3 2 Bond A3 , A5 2 Bond A4 , A5


2 Bond A4 , A3
2136
avec :
Bond A3 , A5 Bond A4 , A5 0
Bond A4 , A3 Bond A3 , A4 Aff Ai , A3 Aff Ai , A4
i 1,4
Aff A1 , A3 Aff A1 , A4 Aff A2 , A3 Aff A2 , A4
Aff A3 , A3 Aff A3 , A4 Aff A4 , A3 Aff A4 , A4
45 * 0 5 * 75 3 * 53 3 * 78
1068
Permutations des attributs (exemple)
On a donc les contributions suivantes:
Contr A0 , A3 , A1 8820
Contr A1 , A3 , A2 10150
Contr A2 , A3 , A4 19814
Contr A4 , A3 , A5 2136

La permutation de A3 qui a donn une contribution maximale est


donc : (A1, A3, A2)
Do A3 sera plac entre A1 et A2 dans la matrice clusterise CA

Les mmes calculs sont effectus pour trouver lemplacement de


A4 dans la matrice clustrerise: les rsultats montrent une forte
contribution lorsque A4 est place droite de A2.
3.2 Matrice daffinits clusterise (exemple)

CA
A1 A3 A2 A4

A1 45 45 0 0

A3 45 53 5 3

A2 0 5 80 75

A4 0 3 75 78
4- Partitionnement de la matrice CA

Le partitionnement consiste trouver le point de la matrice CA


qui la partitionne en deux sous ensembles AH et AB tels que:
AH : ensemble des attributs situs en haut du point de partitionnement
de la matrice,
AB : ensemble des attributs situs en bas du point de partitionnement
de la matrice.
Relativement ces deux ensembles, on dfinit les ensembles
suivants :
AR(Ri)={Aj / Ut(Ri, Aj)=1}
RH={Ri / AR(Ri) AH}
RB={Ri / AR(Ri) AB}
Autres =Q - {RH RB} o Q est lensemble des requtes
Partitionnement de la matrice CA (suite)

Pour chacun de ces ensembles, on calcule :


Total Acces Re f R acc R
Ri Qsitel
l i l i

Total RH Re f R acc R
Ri RH sitel
l i l i

Total RB Re f R acc R
Ri RB sitel
l i l i

Total Autres Re f R acc R


Ri Autres sitel
l i l i

Il sagit de trouver le point sur la matrice CA qui


cre les sous ensembles AH et AB de sorte
maximiser Z:
Z Total RH Total RB Total Autres
2
Partitionnement de la matrice CA (exemple)

Relativement notre exemple, les ensembles


suivants sont dabord dfinis:
Q ={R1, R2 , R3 , R4 }
AR(R1)={A1 , A3}
AR(R2)= {A2 , A3}
AR(R3)={A2 , A4}
AR(R4)= {A3 , A4}
Partitionnement de la matrice CA (exemple) suite-

On rappelle la matrice daffinits clusterise en indiquant les


positions possibles du point de partitionnement: p

A1 A3 A2 A4

A1 45 45 0 0

1
A3 45 53 5 3
2
A2 0 5 80 75
3

A4 0 3 75 78

4
Si le point de partitionnement est en
position 1 :
AH={ A1 }
AB= { A2 , A3, A4 }
RH={ }
RB={q2 , q3 , q4 }
Autres = { q1 }
Totalacc=128
TotalRH= 0
TotalRB=83
Totalautres=45
Z=83*0 452 <0
Si le point de partitionnement est en
position 2 :
AH={ A1 , A3 }
AB= { A2 , A4 }
RH={q1}
RB={q3 }
Autres = {q2 , q4 }
Totalacc=128
TotalRH=45
TotalRB=75
Totalautres=8
Z=45*75 82 =3311
Si le point de partitionnement est en
position 3 :
AH={ A1, A2 , A3, }
AB= {A4 }
RH={q1 , q2}
RB={ }
Autres = {q3 , q4 }
Totalacc=128
TotalRH=50
TotalRB=0
Totalautres= ? ( calculer)
Z=50*0 ? <0
5- Fragmentation verticale (exemple)

La relation Projet (numP, nomP, budget,


ville) sera donc partitionne selon le point de
partitionnement plac en position 2.

Soit donc les deux fragments verticaux rsultants:


Projet 1 (numP, budget)
Projet 2 (numP, nomP, ville)

Ladjonction de la cl dans chaque fragment


est ncessaire pour la reconstruction de la
relation.
La Fragmentation Hybride

Fragmentation horizontale suivie de la fragmentation


verticale ou vice-versa
R
horizontale
R1 R2
Verticale

R11 R12 R21 R22 R23


Allocation des fragments aux sites
Ltape qui suit la fragmentation des donnes, est
leur allocation diffrents sites:
Lallocation des fragments est transparente
pour lutilisateur.
Lallocation rpond des critres techniques
essentiellement, tels que le cot de stockage, le
cot de mise jour, la performance daccs:
Le but est de placer les fragments sur les sites o ils sont le
plus utiliss, et ce pour minimiser les transferts de donnes
entre les sites.
Allocation des fragments aux sites
Client1 Client2
nclient nom ville nclient nom ville
C1 Dupont Paris C2 Martin Lyon
C3 Martin Paris C4 Smith Lille

Cde1 Cde2
ncde client produit qt ncde client produit qt
D1 C1 P1 10 D3 C2 P3 5
D2 C1 P2 20 D4 C4 P4 10

Site 1 Site 2
Allocation des fragments aux sites
Lorsque les donnes sont alloues aux sites, elles
peuvent tre rpliques ou non (ie. maintenues
en copies uniques).
Rgle intuitive de rplication:
si le ratio (lectures/mj) est > 1, la duplication
est avantageuse.