Académique Documents
Professionnel Documents
Culture Documents
Clients, Distributeurs
Plan
Introduction
Cest quoi une base de donnes rpartie
Avantages et Inconvnients
Objectifs
Modlisation et conception
Fragmentation
Allocation
Rpartition avance
La pratique
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
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
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.
Introduction
Exemple 1:
Clients, Distributeurs
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.
[1] C.J. Date: auteur du livre An Introduction to Database Systems (8th Edition)
Abdelouahed Sabri 2011/2012
13
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.
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.
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.
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.
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
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.
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
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
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 :
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
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).
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.
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';
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 :
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)
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)}
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';
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
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
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
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.
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.
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)
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.
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.