Vous êtes sur la page 1sur 60

Bases de Donnes Rparties (BDR)

Clients, Distributeurs

Clients habitants Ttouan Distributeurs (Nom, Tl)

Clients habitants Tanger

Abdelouahed Sabri 2011/2012


abdelouahed.sabri@gmail.com
2

Plan
Introduction
Cest quoi une base de donnes rpartie
Avantages et Inconvnients
Objectifs
Modlisation et conception
Fragmentation
Allocation
Rpartition avance
La pratique

Abdelouahed Sabri 2011/2012


3

Introduction
Architectures
Architecture centralise:
Programme d'application et SGBD sur mme machine (mme site),
Architecture client-serveur, note 2-tiers:
Programme dapplication sur le client et SGBD sur le serveur,
Architecture 3-tiers:
Interface utilisateur sur le client, programme dapplication sur le serveur
dapplication et le SGBD sur le serveur de donnes.
Bases de donnes
Centralises
Rparties ou distribues
Fdres
Multi-bases Abdelouahed Sabri 2011/2012
4

Introduction
BD centralise:
Gre par un seul SGDB,
Stocke dans un emplacement physique unique,
Les traitements sont confis une seule et mme unit.
Multi-base:
Plusieurs SGBD, htrognes ou non, capables dinter-oprer sans modle
commun (vue commune),
BD Fdre:
Plusieurs SGBD htrognes sont utiliss comme un seul via un modle commun
(vue commune)
Ex: Utiliss dans la fusion ou acquisition des bases de donnes de compagnies
BD Rpartie:
Un seul systme grant une collection de bases de donnes logiquement relies
qui sont rparties sur diffrents sites accessible via un modle commun (vue
commune)
Abdelouahed Sabri 2011/2012
5

Introduction
Diffrence entre bases de donnes rparties et le modle
client-serveur
Client-Serveur Bd Rpartie
Plusieurs bases vues par le client Une base logique vue par lutilisateur
Plusieurs connexions Une seule connexion
Localisation explicite des bases ( connection Indpendance la localisation
string ou DSN)
Rgles de localisation dans lapplication Rgles de localisation dans le dictionnaire
1 ordre SQL 1 seule BD 1 ordre SQL plusieurs BD
n transactions mono-base 1 transaction logique
Synchronisation des transactions dans Synchronisation automatique des n sous-
lapplication transactions
Plusieurs COMMIT mono-base 1 COMMIT gnralis
Abdelouahed Sabri 2011/2012
6

Introduction

Pourquoi rpartir?
Besoin de dcentralisation des organisations,
Partage de donnes gographiquement reparties.
Principe de la rpartition:
Les donnes et traitements sont rpartis sur diffrents
sites interconnects par un rseau de communication.
La dfaillance d'un site ne peut pas entraner
l'indisponibilit totale du systme et sa probabilit peut
tre nglige grce la tolrance aux fautes, assure par
la redondance des informations et des traitements.
Abdelouahed Sabri 2011/2012
7

Introduction

Systme de Gestion de Bases de Donnes Rparties


Constitu d'un ensemble de processeurs autonomes
appels sites (stations de travail, micro-ordinateurs, )
relis par un rseau de communication qui leur permet
d'changer des donnes.
Un SGBDR suppose que les donnes soient stockes sur
au moins deux sites.
Chaque site est dot de son propre SGBD.

Abdelouahed Sabri 2011/2012


8

Introduction
Avantages de rpartir les donnes
Limiter le transfert d'information (en nombre et en volume)
en rpartissant les donnes l o elles sont le plus utilises.
Ceci est particulirement important pour une base de donnes dont
les diffrents utilisateurs sont gographiquement disperss
Exemple: Des agences d'une banque
La rpartition de charge de travail sur plusieurs units de
traitement oprant en parallle permet daccrotre les
performances.
Augmenter la fiabilit et la disponibilit en dupliquant les
donnes sur plusieurs sites
Exemple: Comptes bancaires

Abdelouahed Sabri 2011/2012


9

Introduction
Inconvnients de rpartir les donnes
Inconvnients
Complexit des SGBDs,
Problme de concurrence daccs,
Surcot du traitement: la distribution de donnes
entraine des communications inter-sites,
Scurit.

Abdelouahed Sabri 2011/2012


10

Introduction

Exemple 1:

Clients, Distributeurs

Clients habitants Ttouan Distributeurs (Nom, Tl)

Clients habitants Tanger

Abdelouahed Sabri 2011/2012


11

Introduction
Exemple 2: Une banque peut avoir des agences Casa, Rabat et Fs.
BD centralise:
1. Le sige principal de la banque grerait tous les comptes des clients,
2. Les agences devraient communiquer avec le sige social pour avoir accs
aux donnes.
BD rpartie:
Les informations sur les comptes sont distribues dans les agences et celles-ci
sont interconnectes (entirement ou partiellement) afin qu'elles puissent
avoir accs aux donnes externes.
Cependant, la rpartition de la base de donnes bancaire est invisible aux
agences en tant qu'utilisateurs, et la seule consquence directe pour elles est
que l'accs certaines donnes est beaucoup plus rapide.

Abdelouahed Sabri 2011/2012


12

Objectifs dune base de donnes repartie


Les 12 principaux objectifs dfinis par C.J. Date[1] sont:
1) Transparence pour lutilisateur, 8) Traitement rparti des requtes,
2) Autonomie de chaque site, 9) Indpendance vis--vis du
3) Absence de site privilgi, matriel,
4) Continuit de service, 10) Indpendance vis--vis du
5) Transparence vis--vis de la systme dexploitation,
localisation de donnes, 11) Indpendance vis--vis du
6) Transparence vis--vis de la rseau,
fragmentation, 12) Indpendance vis--vis du
7) Transparence vis--vis de la SGBD
rplication,

[1] C.J. Date: auteur du livre An Introduction to Database Systems (8th Edition)
Abdelouahed Sabri 2011/2012
13

Objectifs dune base de donnes repartie (suite)

Transparence de localisation:
Les utilisateurs accdent au schma conceptuel via des
vues. Un utilisateur ne sait pas sur quel site se trouvent
physiquement les donnes
Exemple: un client peut ouvrir un compte Fs et effectuer
rgulirement des oprations Rabat C'est le systme qui
recherche le site o sont mmorises ses informations et non
l'utilisateur qui doit l'indiquer.

Abdelouahed Sabri 2011/2012


14

Objectifs dune base de donnes repartie (suite)


Transparence de partitionnement:
lutilisateur ne sait pas comment la base est partitionne.

Transparence de duplication:
lutilisateur ne sait pas sil existe plusieurs copies d'une mme
information ou non.
Lors de la modification d'une information, c'est le systme qui doit se
proccuper de mettre jour toutes les copies.

Exemple: Un client possde des comptes (courant, pargne logement, ...)


Fs mais effectue rgulirement des retraits d'argent Rabat, les
informations le concernant soient rparties entre Fs Rabat: l'historique
des oprations du compte courant est conserv Rabat, la gestion de ses
autres comptes est assure Fs, et le solde du compte courant est dupliqu
Fs et Rabat.
Abdelouahed Sabri 2011/2012
15

Objectifs dune base de donnes repartie (suite)


Indpendance vis--vis du SGBD:
Un systme rparti ne doit pas tre dpendant en aucun cas des
diffrents SGBDs, la relation globale doit tre exprime dans un
langage normalis indpendant des constructeurs.
Autonomie de chaque site:
Vise garder une administration locale spare et indpendante
pour chaque serveur participant la base de donnes rpartie afin
d'viter une administration centralise.
Toute manipulation sur un site (reprise aprs panne, mises jour des
logiciels) ne doit pas altrer le fonctionnement des autres sites.

Abdelouahed Sabri 2011/2012


16

Modlisation dune base de donnes rparties


Une base de donnes est gnralement modlise en 3 niveaux:
Externe, Conceptuel et Interne.
Schma interne: Description de lorganisation physique des donnes
Stockage physique
Schma conceptuel: Description dunivers modliser avec
ventuellement les contraintes lis ces objets (contraintes dintgrits)
Domaine des concepteurs de Bases de donnes
Schma externe: Application accdant aux donnes : des vues (accs
limits) Domaine des crateurs dapplications

Lavantage de se dcoupage est de permettre des modifications un


niveau sans que cela interfre (le moins possible) sur les autres
niveaux
Abdelouahed Sabri 2011/2012
17

Modlisation dune base de donnes rparties


Pour une base de donnes rparties, la rpartition a lieu dans les
trois niveaux:
les vues des utilisateurs sont prsentes
sur leur site (site utilisateur); elles
correspondent au niveau externe.
Il y a donc rpartition des vues.
le schma conceptuel (global) est associ
aux schmas locaux des sites physiques
via un schma de fragmentation (la
manire dont la base est dcoupe) et un
schma d'allocation (la manire dont les
fragments sont rpartis).
il n'y a pas de schma interne global,
mais des schmas locaux internes.
Abdelouahed Sabri 2011/2012
18

Conception dune base de donnes rpartie


La dfinition du schma de rpartition est la partie la plus
dlicate de la phase de conception d'une base de donnes
rpartie:
Il n ya pas de mthode standard on se base sur les besoins,
L'administrateur (le concepteur) doit prendre des dcisions sur
comment la rpartition doit tre faite.
L'objectif est de minimiser:
le nombre de transferts entre sites,
les temps de transfert,
le volume de donnes transfres,
les temps moyens de traitement des requtes,
le nombre de copies de fragments.
Abdelouahed Sabri 2011/2012
19

Conception dune base de donnes rpartie


Mthodes de conception:
Deux approches fondamentales sont l'origine de la
conception des bases de donnes rparties :
1. La conception descendante (Top down design),

2. La conception ascendante (Bottom up design).

NB: Pour les deux approches il faut recueillir l'expression


des besoins des utilisateurs afin de crer un schma
conceptuel unique et en dduire les vues externes prvoir.

Abdelouahed Sabri 2011/2012


20

Conception dune base de donnes rpartie


Conception descendante
Conception du schma conceptuel global de la base de donnes
rpartie,
Cration du schma de fragmentation :
la base de donnes sera dcoupe en fragments distincts constituant
une partition de la base l'intersection de ces fragments doit tre
vide et leur runion doit redonner le schma global.
Cration du schma d'allocation :
les fragments doivent tre distribus entre les diffrents sites.
Cration d'un schma local pour chaque site, relatif aux fragments
dvolus ce site,
Cration des schmas internes :
implmentation des donnes des fragments sur les supports physiques
de stockage. Abdelouahed Sabri 2011/2012
21

Conception dune base de donnes rpartie


Conception ascendante
Il existe plusieurs bases de donnes disjointes (plusieurs schmas
conceptuels locaux) quil faut runir en un schma conceptuel
global
Intgration (fdration) des BD existantes

Abdelouahed Sabri 2011/2012


22

Fragmentation
Dfinition:
On dfinit la fragmentation comme tant le processus de dcomposition
d'une base de donne logique (telle que la voient les utilisateurs) en un
ensemble de sous -bases de donnes appels fragments.
Caractristiques:
La fragmentation doit tre sans perte d'information,
Pour toute donne dune table R, il existe un fragment Ri de la table R qui possde
cette donne. Rgle de compltude
La non perte d'informations est vrifie par recomposition de la base partir des
diffrents fragments en utilisant le langage de manipulation de donnes (SQL par
exemple) leur runion doit redonner le schma global Rgles de reconstruction
Les diffrents fragments doivent de prfrence tre exclusifs (leur
intersection est vide)
Dans le cas contraire on parle de duplication il faut affiner la fragmentation
Abdelouahed Sabri 2011/2012
23

Fragmentation
Techniques de fragmentation
Il existe diffrentes faons pour fragmenter une base de donnes
L'unit de fragmentation dtermine la nature de l'lment le plus
petit dont les composants ne peuvent tre fragments
On parle de granularit: taille du plus petit lment
Une granularit fine donne de grandes possibilits pour la fragmentation et
autorise une rpartition flexible et efficace de la base de donnes, mais
l'inconvnient de provoquer une certaine lourdeur pour la recomposition des
informations.
A l'oppos, une granularit leve permet une gestion simple de la
fragmentation, mais fournit des possibilits trs limites pour la fragmentation.
L'unit de fragmentation est gnralement laisse au libre choix de
l'administrateur.
Il y a quatre units de fragmentation de base: Relations, Tuples,
Attributs, Valeurs
Abdelouahed Sabri 2011/2012
24

Fragmentation
Fragmentation par relation (classe dobjets)
Ce sont les classes (relation ou table dans le modle relationnel,
entit en Entit-Association, classe dans le modle orient-objet)
qui peuvent tre rparties dans des fragments diffrents.
Les fragments sont dfinis partir des "classes" de la base de donnes.
Toutes les occurrences d'une mme classe appartiennent au mme fragment.

L'opration de partitionnement est la dfinition de sous schmas.


L'opration de recomposition est la runion de sous schmas.

Abdelouahed Sabri 2011/2012


25

Fragmentation
Fragmentation par relation (suivant)
Exemple: Banque
Trois tables: Agence, Clients, Compte
Compte Client
NoClient Agence TypeCompte Somme NoClient NomClient Prnom Age
174 723 Lausanne courant 123 345.89 174 723 Villard Jean 29
177 498 Genve courant 34 564.00 177 498 Cattell Blaise 38
201 639 Lausanne courant 45 102.50 201 639 Tesllis Alan 51
201 639 Lausanne dpt 325 100.00 203 446 Kovalsky Validmir 36
203 446 Genve courant 274 882.95 Agence
Agence Adresse
Cette base peut tre fragmente en deux Lausanne Rue du Lac, 3, 1002 Lausanne
fragments: {Compte, Client} et Genve Avenue du Mont Blanc, 21, 1200 Genve
{Agence}.
Abdelouahed Sabri 2011/2012
26

Fragmentation
Fragmentation horizontale
Appele aussi fragmentation par occurrences ou par tuples,
La fragmentation horizontale est base sur un dcoupage
(horizontal) des tuples des tables
Les occurrences d'une mme table peuvent tre rparties dans des
fragments diffrents (avec tous les attributs)
Le dcoupage est effectu en utilisant la slection,
La reconstruction est effectue en utilisant lopration dunion.

Abdelouahed Sabri 2011/2012


27

Fragmentation
Fragmentation horizontale (suivant)
Exemple: Banque
La table Compte peut tre divise en deux fragments par rpartition
des tuples en deux catgories :
Compt1 = TypeCompte = courant(Compte)
Compt2 = TypeCompte = dpt (Compte)
Compt1 Compt2
NoClient Agence TypeCompte Somme NoClient Agence TypeCompte Somme
174 723 Lausanne courant 123 345.89 201 639 Lausanne dpt 325 100.00
177 498 Genve courant 34 564.00
201 639 Lausanne courant 45 102.50
203 446 Genve courant 274 882.95

La recomposition est ralise par une opration dunion


Compte = Compt1 Compt2
Abdelouahed Sabri 2011/2012
28

Fragmentation
Fragmentation verticale (par attributs)
Les fragments sont construits partir de quelques attributs d'une
relation:
Ce sont les attributs (avec leur occurrences) d'une mme relation qui peuvent
tre rpartis dans des fragments diffrents.
Toutes les valeurs des occurrences pour un mme attribut se trouvent dans le
mme fragment.
La rpartition des attributs dans diffrents 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 (dcomposition sans perte
d'informations.
Le dcoupage d'une relation en sous tables est effectue utilisant la
projection sur les colonnes composant chaque fragment.
La reconstruction est effectue par jointure des diffrents
fragments.
Abdelouahed Sabri 2011/2012
29

Fragmentation
Fragmentation verticale (suite)
Exemple: Banque
Dans les guichets bancaires on na besoin de connatre que les soldes des
comptes, alors que les services de contentieux ont besoin de connatre les
informations compltes sur chaque client.
Compt1 = NoClient, Somme(Compte)
Compt1 = Noclient, Agence, TypeCompte(Compte)
Compt1 Compt2
NoClient Somme NoClient Agence TypeCompte
174 723 123 345.89 174 723 Lausanne courant
La recomposition est ralise
177 498 34 564.00 177 498 Genve courant
par une opration de jointure
201 639 45 102.50 201 639 Lausanne courant Compte = Compt1 |x| Compt2
201 639 325 100.00 201 639 Lausanne dpt
203 446 274 882.95 203 446 Genve courant
Abdelouahed Sabri 2011/2012
30

Fragmentation
Fragmentation hybride (par valeurs)
Cette fragmentation combine la fragmentation horizontale (par
occurrences) et verticale (par attributs).
Le partitionnement est effectu par une combinaison de projections et de
slections.
Les occurrences et les attributs peuvent donc tre rpartis dans des diffrents
fragments.
La reconstruction est effectue par combinaison de jointures et
d'unions des diffrents fragments.

Abdelouahed Sabri 2011/2012


31

Fragmentation
Fragmentation hybride (par valeurs)
Exemple: Banque
Compt1 = NoClient, Somme ( TypeCompte = courant(Compte))
Compt2 = NoClient, Somme ( TypeCompte = dpt (Compte))
Compt3 = NoClient, AgenceCompte)
Compt4 = Noclient, TypeCompte(Compte)
Compt1 Compt2 Compt3 Compt4
NoClient Somme NoClient Somme NoClient Agence NoClient TypeCompte
174 723 123 345.89 201 639 325 100.00 174 723 Lausanne 174 723 courant
177 498 34 564.00 177 498 Genve 177 498 courant
201 639 45 102.50 201 639 Lausanne 201 639 courant
203 446 274 882.95 201 639 Lausanne 201 639 dpt
203 446 Genve 203 446 courant
La reconstruction
Compte= (Compt1 Compt2 ) |x| Compt3 |x| Compt4
Abdelouahed Sabri 2011/2012
32

Fragmentation
Mthodologie de la fragmentation horizontale
Question: Comment dcomposer une base de donnes en
fragments horizontaux???
On se base sur les requtes d'interrogation ou de mise jour les
plus importantes et les plus frquentes.
Pour le cas de la fragmentation horizontale on se base sur les
conditions de slections.
Soient c1, c2, ..., cn les conditions de slection qui ont t extraites
des requtes,
On forme l'ensemble des 2n conjonctions de conditions o chaque
condition lmentaire est prise dans sa forme positive ou dans sa
forme ngative

On te de cet ensemble les conjonctions de condition qui sont toujours


fausses, et on simplifie les autres.
Abdelouahed Sabri 2011/2012
33

Fragmentation
Mthodologie de la fragmentation horizontale
Exemple:
On considre une table CUISINIER que l'on se propose de rpartir
Cuisinier
en fragments horizontaux NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
34 DUPONT Jeanne 2
17 DUBOIS Robert 1
22 DUBALAI Aline 1
26 DUGENOU Jean 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
9 DURALUMIN Roberte 1
13 DURDUR Jean 2
20 DURALEX Jean 1

On commencera par se baser sur les requtes les plus frquentes:


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';

Abdelouahed Sabri 2011/2012


34

Fragmentation
Mthodologie de la fragmentation horizontale
Exemple (suite):
Pour effectuer la fragmentation horizontale on se base sur les critres de
recherche, c'est dire les conditions exprimes dans les "WHERE" des
ordres SQL.
Soit
A : prenom = 'Jean
B : nom LIKE '%R%
C : numeq = '1
D : numeq = '2
Les condition de slection:
C1 = A B
C2 = C
C3 = D A
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}
Abdelouahed Sabri 2011/2012
35

Fragmentation
Mthodologie de la fragmentation horizontale
Exemple (suite):
Evaluons chacun des termes :
C1 C2 C3 =
C1 C2 C3 =
C1 C2 C3 = A B D
C1 C2 C3 = A B C
C1 C2 C3 = A B D
C1 C2 C3 = A B C D
C1 C2 C3 = (A B) C
C1 C2 C3 = (A B C) (A C D) (B C D)
Supposons, comme hypothse supplmentaire (contrainte dintgrit) ,
qu'il n'y a que deux quipes de cuisiniers (1 et 2) ce qui implique
C D = , C = D, D = C

Abdelouahed Sabri 2011/2012


36

Fragmentation
Mthodologie de la fragmentation horizontale
Exemple (suite):
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
F4 = SELECT *FROM cuisinier WHERE prenom !='Jean' AND numeq ='2'
Abdelouahed Sabri 2011/2012
37

Fragmentation
Mthodologie de la fragmentation horizontale
Exemple (suite):
Ces 5 conditions dfinissent les fragments horizontaux (exclusifs) :
F1
NUMERO NOM PRENOM NUMEQ
13 DURDUR Jean 2
F2
Cuisinier
NUMERO NOM PRENOM NUMEQ
NUMERO NOM PRENOM NUMEQ 20 DURALEX Jean 1
12 DUPONT Jean 1
F3
34 DUPONT Jeanne 2
17 DUBOIS Robert 1 NUMERO NOM PRENOM NUMEQ
22 DUBALAI Aline 1 26 DUGENOU Jean 2
Fragmentation F4
26 DUGENOU Jean 2
11 DURAND Aline 2 NUMERO NOM PRENOM NUMEQ
38 DURACUIRE ROBERT 2 12 DUPONT Jean 1
9 DURALUMIN Roberte 1 17 DUBOIS Robert 1
13 DURDUR Jean 2 22 DUBALAI Aline 1
20 DURALEX Jean 1 9 DURALUMIN Roberte 1
F5
NUMERO NOM PRENOM NUMEQ
34 DUPONT Jeanne 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
Abdelouahed Sabri 2011/2012
38

Fragmentation
Mthodologie de la fragmentation horizontale
Exercice:
On considre la table Compte (NoClient, Agence, TypeCompte,
Somme) . Proposer un schma de fragmentation horizontal en
tenant compte des requtes suivantes
R1 = NoClient, Agence (TypeCompte = 'courant' and Somme > 100000(Compte))
R2 = Agence = 'Lausanne(Compte)
R3 = NoClient, Somme( Agence = ' Genve and TypeCompte = 'courant' (Compte))

Compte
NoClient Agence TypeCompte Somme
174 723 Lausanne courant 123 345.89
177 498 Genve courant 34 564.00
201 639 Lausanne Courant 45 102.50
201 639 Lausanne Dpt 325 100.00
203 446 Genve Courant 274 882.95
Abdelouahed Sabri 2011/2012
42

Fragmentation
Mthodologie de la fragmentation verticale
Question: Comment dcomposer une base de donnes en
fragments verticaux???
On se base les requtes dinterrogation ou de mise jour
prdfinies les plus importantes et les plus frquentes pour extraire
les attributs concerns
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 utiliss pour que la dcomposition soit
sans perte d'information (reconstruction).

Abdelouahed Sabri 2011/2012


43

Fragmentation
Mthodologie de la fragmentation verticale
Pour le cas de la fragmentation verticale on se base sur les
conditions de projections.
Soient p1, p2, ..., pn les conditions de projection qui ont t
extraites des requtes,
On forme l'ensemble des 2n intersections des expressions de
projection o chacune est soit l'expression initiale soit son
complment.

On te de cet ensemble les conjonctions de condition qui sont


toujours fausses, et on simplifie les autres.

NB: Dans le cas o la requte ne possde pas dattributs de jointure il


faut les ajouter.
Abdelouahed Sabri 2011/2012
44

Fragmentation
Mthodologie de la fragmentation verticale
Exemple :
On considre une table CUISINIER que l'on se propose de rpartir
en fragments verticaux Cuisinier
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
34 DUPONT Jeanne 2
17 DUBOIS Robert 1
22 DUBALAI Aline 1
26 DUGENOU Jean 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
9 DURALUMIN Roberte 1
13 DURDUR Jean 2
20 DURALEX Jean 1
On commencera par se baser sur les requtes les plus frquentes:
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';

Abdelouahed Sabri 2011/2012


45

Fragmentation
Mthodologie de la fragmentation verticale
Exemple (suite):
Pour effectuer la fragmentation verticale on se base sur les projections
utilises:
P1 : (numero, numeq)
P3 : (numero, nom)
P2 n'est pas considre comme une projection car tous les attributs sont
demands dans la requte
A partir des projection Pi, on construit l'ensemble IP des intersections de
projections :

O Pj dsigne le complment de Pj sur l'ensemble des attributs de la table


CUISINIER avec l'ajout obligatoire de la cl numero :
P1 = (numero, nom, prenom)
P3 = (numero, prenom, numeq)

IP = { P1 P3, P1 P3, P1 P3, P1 P3}


Abdelouahed Sabri 2011/2012
46

Fragmentation
Mthodologie de la fragmentation verticale
Exemple (suite):
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:
F1 = numero(Cuisinier)
F2 = numero, nom(Cuisinier)
F3 = numero, numeq(Cuisinier)
F4 = numero, prenom(Cuisinier)

Abdelouahed Sabri 2011/2012


47

Fragmentation
Mthodologie de la fragmentation hybride
Cest la combinaison des deux fragmentations: horizontale et verticale.
F1
Pour chaque fragment horizontal, on NUMERO NOM PRENOM NUMEQ
regarde quelles sont les requtes qui 13 DURDUR Jean 2
F2
les concernent (slection): NUMERO NOM PRENOM NUMEQ
20 DURALEX Jean 1
F3
R1: SELECT numero, numeq FROM NUMERO NOM PRENOM NUMEQ
CUISINIER WHERE prenom = 'Jean' 26 DUGENOU Jean 2
F4
Fragments
AND nom LIKE '%R%'; horizontaux
NUMERO NOM PRENOM NUMEQ
R2: SELECT * FROM CUISINIER 12 DUPONT Jean 1
WHERE numeq = '1'; 17 DUBOIS Robert 1
22 DUBALAI Aline 1
R3: SELECT numero, nom FROM 9 DURALUMIN Roberte 1
CUISINIER WHERE numeq = '2' AND F5
NUMERO NOM PRENOM NUMEQ
prenom = 'Jean; 34 DUPONT Jeanne 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
Abdelouahed Sabri 2011/2012
48

Fragmentation
Mthodologie de la fragmentation hybride
Les intersections de projection de chacun des fragments
horizontaux, avec les fragments correspondants sont donc:
F1
NUMERO NOM PRENOM NUMEQ R1 R3
13 DURDUR Jean 2
F2
R1: SELECT numero, numeq FROM NUMERO NOM PRENOM NUMEQ R1 R2
CUISINIER WHERE prenom = 20 DURALEX Jean 1
F3
'Jean' AND nom LIKE '%R%';
NUMERO NOM PRENOM NUMEQ R3
R2: SELECT * FROM CUISINIER 26 DUGENOU Jean 2
WHERE numeq = '1'; F4
NUMERO NOM PRENOM NUMEQ R2
R3: SELECT numero, nom FROM 12 DUPONT Jean 1
CUISINIER WHERE numeq = '2' 17 DUBOIS Robert 1
22 DUBALAI Aline 1
AND prenom = 'Jean'; 9 DURALUMIN Roberte 1
F5
NUMERO NOM PRENOM NUMEQ Aucune
34 DUPONT Jeanne 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
Abdelouahed Sabri 2011/2012
49

Fragmentation
Mthodologie de la fragmentation hybride
Le fragment 1 est concern par les requtes R1 et R3, donc par tous les lments
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 requtes 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 requte 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 requte R2, donc par tous les attributs
IP4 = {(numero, nom, prenom, numeq)}
Le fragment 5 n'est concern par aucune des requtes, donc par tous les attributs :
IP5 = {(numero, nom, prenom, numeq)}

Abdelouahed Sabri 2011/2012


50

Fragmentation
Mthodologie de la fragmentation hybride
Les diffrents fragments:
F11 F12 F13 F14
NUMERO NUMERO NOM NUMERO NUMEQ NUMERO PRENOM
13 13 DURDUR 13 2 13 Jean
F21 F22
NUMERO NUMEQ NUMERO NOM PRENOM
Cuisinier
20 1 20 DURALEX Jean
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1 F31 F32
34 DUPONT Jeanne 2 NUMERO NOM NUMERO PRENOM NUMEQ
17 DUBOIS Robert 1 26 DUGENOU 26 Jean 2
22 DUBALAI Aline 1 F41
26 DUGENOU Jean 2 NUMERO NOM PRENOM NUMEQ
11 DURAND Aline 2 12 DUPONT Jean 1
38 DURACUIRE ROBERT 2 17 DUBOIS Robert 1
9 DURALUMIN Roberte 1 22 DUBALAI Aline 1
13 DURDUR Jean 2 9 DURALUMIN Roberte 1
20 DURALEX Jean 1
F51
NUMERO NOM PRENOM NUMEQ
34 DUPONT Jeanne 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
Abdelouahed Sabri 2011/2012
51

Schma dallocation
Aprs la fragmentation, la question quont doit se poser est:
Ou seront affects chacun des fragments???
L'affectation des fragments sur les sites est dcide en fonction de
l'origine prvue des requtes qui ont servi la fragmentation.
Pour chaque requte:
On connat l'ensemble des sites qui sont susceptible d'mettre cette
requte,
On possde de l'ensemble des fragments qui sont concerns par la
requte.
Placer les fragments sur les sites o ils sont le plus utiliss, pour
minimiser les transferts de donnes entre les sites.
Pour dfinir le schma de localisation, on recherche:
Priorit 1: D'o sont mises les requtes de slection
Priorit 2: D'o sont faites les mises jour
Abdelouahed Sabri 2011/2012
52

Schma dallocation
Exemple:
reprenons l'exemple prcdent et supposons que deux sites
soient pris en considration A et B
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';

Abdelouahed Sabri 2011/2012


53

Schma dallocation
Exemple (suite):
Supposons que la requte R1 est mise de A ou B, que la requte R2 est
mise de A seulement et que la requte R3 est mise de B seulement.
Pour les trois requtes, les fragments suivants sont concerns :
R1 fragment13
R2 fragment 21, fragment 22, fragment 41
R3 fragment 12, fragment 31
Pour les autres fragments, on peut dire:
Le fragment 21 peut appartenir la requte R1 ou R2
Le fragment 11 peut appartenir a toutes les Requtes
Le fragment 51 nappartient aucune requte
Le fragment 32 nappartient aucune requte
Le fragment 14 nappartient aucune requte
On doit faire des choix pour ces fragments de faon quilibrer les sites
Abdelouahed Sabri 2011/2012
54

Schma dallocation
Exemple (suite):
Supposons que la requte R1 est mise de A ou B, que la requte R2 est
mise de A seulement et que la requte R3 est mise de B seulement.
Pour les trois requtes, les fragments suivants sont concerns :
R1 fragment13 Le fragment 21 peut appartenir la requte R1 ou R2
R2 fragments 21, 22 et 41 Le fragment 11 peut appartenir a toutes les Requtes
R3 fragments 12 et 31 Les fragments 51, 32 et 14 nappartiennent aucune requte
Pour les sites:
site A: fragment 13, fragment 21, fragment 22, fragment 41, fragment 11,
fragment 51
site B: fragment 12, fragment 31, fragment 14 , fragment 32
On peut combiner quelques fragments:
site A: fragment 11, fragment 13, fragment 2, fragment 4, fragment 5
site B: fragment 12, fragment 14 , fragment 3
Abdelouahed Sabri 2011/2012
55

Les mises--jour
Les mises jour consistent en trois oprations: insertion
(INSERT), suppression (DELETE) et modification
(UPDATE).
Insertion
Exemple: insrer un nouveau cuisinier dans la table CUISINIER :
INSERT INTO CUISINIER VALUES(21, 'DUBOUT', 'Jean', 2);
Le fragment horizontal concern peut tre retrouv avec les CC
(pour le cas prsent, il s'agit de CC3) ; ensuite il faut insrer le
tuple dans tous les fragments verticaux.
F31 F32
NUMERO NOM NUMERO PRENOM NUMEQ
26 DUGENOU 26 Jean 2
21 DUBOUT 21 Jean 2

Abdelouahed Sabri 2011/2012


56

Les mises--jour
Suppression:
Exemple: suppression du cuisinier Jean DUBOUT :
DELETE FROM CUISINIER WHERE nom = 'DUBOUT' AND
prenom = 'Jean' ;
On utilise les conditions CC : CC3 et CC4 sont concernes.
On cherchera donc dans les fragments correspondants

F31 F32 F31 F32


NUMERO NOM NUMERO PRENOM NUMEQ NUMERO NOM NUMERO PRENOM NUMEQ
26 DUGENOU 26 Jean 2 26 DUGENOU 26 Jean 2
21 DUBOUT 21 Jean 2
F41
F41 NUMERO NOM PRENOM NUMEQ
NUMERO NOM PRENOM NUMEQ 12 DUPONT Jean 1
12 DUPONT Jean 1 17 DUBOIS Robert 1
17 DUBOIS Robert 1 22 DUBALAI Aline 1
22 DUBALAI Aline 1 9 DURALUMIN Roberte 1
9 DURALUMIN Roberte 1
Abdelouahed Sabri 2011/2012
57

Les mises--jour
Suppression (suite):
Exemple: supprimer le cuisinier de numro 21
DELETE FROM CUISINIER WHERE numero = 21 ;
Aucune CC nest concerne
Il faut chercher dans tous les fragments

Abdelouahed Sabri 2011/2012


58

Les mises--jour
Modification:
Exemple : modification de l'affectation du cuisinier DUBOUT
UPDATE CUISINIER SET numeq = 1 WHERE nom = 'DUBOUT' ;
On utilise les conditions CC : CC3, CC4, CC5 sont concernes.
On modifie puis on vrifie que les CC son toujours vrifies:
Puisque numeq = 1, il faut lenlever du fragment F3 et F5
On dplace alors le tuple dans le fragment 4.

Abdelouahed Sabri 2011/2012


60

Rpartition avance
Dans le cas o la mthode classique de fragmentation-
allocation ne s'avre pas satisfaisante, on peut faire appel
des techniques plus puissantes (mais aussi plus complexes
mettre en uvre):
L'allocation avec duplication de fragments,
L'allocation dynamique des fragments,
La fragmentation dynamique.

Abdelouahed Sabri 2011/2012


61

Rpartition avance
Allocation avec duplication
Certains fragments peuvent tre dupliques sur plusieurs sites
(ventuellement sur tous les sites)
Avantages:
Elle permet damliorer les performances en terme de temps d'excution
des requtes (en vitant certains transferts de donnes).
Elle permet une meilleure disponibilit des informations (connues de
plusieurs sites),
Elle permet une meilleure fiabilit contre les pannes.
Inconvnient:
les mises jour doivent tre effectues sur toutes les copies d'une mme
donne.
En consquence:
moins un fragment est sujet des modifications et plus il est prdispos
la duplication. Abdelouahed Sabri 2011/2012
62

Rpartition avance
Allocation avec duplication
Deux types de duplication: synchrone et asynchrone.
Duplication synchrone:
La srialisabilit est assure sur lensemble des nuds
Une transaction est confirme seulement lorsque tous les sites ont t
mis--jour
Duplication asynchrone:
Les mises--jour sont dabord faites sur une copie primaire
Les sites de rplication sont mis--jour en diffr, partir de la
copie primaire, aprs la confirmation de la transaction
Ex. dimplmentation: vues matrialises (eq. SNAPSHOTs)

Abdelouahed Sabri 2011/2012


63

Rpartition avance
Allocation dynamique
Ici, l'allocation d'un fragment peut changer en cours
d'utilisation de la BDR:
Le schma d'allocation et les schmas locaux doivent tre tenus
jour.
Peut tre utilise comme une alternative la duplication elle se
rvle plus efficace lorsque la base de donnes est dispose de
nombreuses mises jour.

Abdelouahed Sabri 2011/2012


64

Rpartition avance
Fragmentation dynamique
Dans le cas o le site d'allocation peut changer
dynamiquement, il est possible que deux fragments
complmentaires (verticalement ou horizontalement) se
retrouvent sur le mme site. Il est alors normal de les
fusionner.
A l'inverse, si une partie d'un fragment est appele sur un
autre site, il peut tre intressant de dcomposer ce
fragment et de ne faire migrer que la partie concerne.
Ces modifications du schma de fragmentation se refltent
sur le schma d'allocation et sur les schmas locaux.

Abdelouahed Sabri 2011/2012