You are on page 1of 88

Bases de donnes distribues et

fdres
et Transactionnel Rparti
Plan

Introduction
Contexte et dfinition
Exemple
Dfinitions complmentaires
Avantages et inconvnients
Objectifs techniques des SGBD distribus
Multi clients multiserveurs
Transparence la localisation des donnes
Meilleure disponibilit
Autonomie locale
Accs intgr des donnes htrognes
Architecture des SGBD distribus
Organisation des schmas
Architecture de rfrence
Niveaux de transparence la localisation
Client/Multibases :
RDA, DRDA, SQL-CLI, UDA/ODBC
Vues distribues
SGBD distribus

Page 2
Plan

Conception des SGBD distribus


Conception ascendante
Fdration de BD
Conception descendante
Techniques de fragmentation
Allocation des fragments
Allocation optimale
Rplication dans les bases de donnes distribues
Rplication : objectifs et problmes
Rplication symtrique/asymtrique
Techniques de diffusion de mises jour
Optimisation des requtes distribues
Fonction de cot optimiser
Schma gnral de traitement et doptimisation dune requte distribue
Exemple
Un aperu sur les SGBD du commerce
Un peu dhistoire : Ingres/STAR
IBM DB2, Informix, Oracle, Sybase
valuation des SGBD distribus
Bibliographie

Page 3
Contexte

Contexte
Technologique :
Rseautique, des technologies de la communication de donnes,
incarnes par lInternet, linformatique mobile, le sans fil et les
priphriques intelligents

Financier :
Organisationnel : downsizing des
dcentralisation matriels et logiciels
des activits
Bases de donnes distribues

Une base de donnes distribue permet de rassembler


des ensembles de donnes plus au moins htrognes
dissmins dans un rseau dordinateur
sous forme dune base de donnes
Page 4
globale homogne et intgre
Dfinition et Exemple

Dfinition : BD DISTRIBUEE
ensemble de base de donnes logiquement relies entre
elles, gres par des sites diffrents et apparaissant
lutilisateur comme une base unique

Rpartition possible de donnes

Paris
Consommateurs
Commandes

Bordeaux Dijon
Vins Vins
Producteurs Producteurs
Produits Produits

Page 5
Schma global

BUVEURS(NB, nom, prnom, ville)


COMANDES(NB,NV,date,qt) producteurs

VINS(NV,cru,anne,degr)
Produits
PRODUCTEURS(NP,nom,rgion)
PRODUIT(NV,NP,qt)
Consommateurs Vins
Commandes

schma global
relationnel Schma global
(entit association)

schma global :
dfinition de lensemble des types de
donnes de la base
pas forcment matrialis : chaque base
locale implmente une partie, ces parties sont
les seules matrialise sur le disque
Page 6
SGBD distribu

Dfinition :
SGBD distribu (Distributed DBMS) ou
SGBD rparti : Systme grant une
collection de BD logiquement relies,
distribues sur diffrents sites en
fournissant un moyen daccs rendant
la distribution transparente

Objectifs
Rend la rpartition (ou distribution)
transparente
Dfinition des donnes rparties :
Cohrence des donnes
---> dictionnaire des donnes rparties
traitement des requtes rparties
---> Requte distribue : Requte mise par un
client dont lexcution ncessite lexcution
de n sous
requtes sur n serveur (n > 1)
gestion de transactions rparties Topologie dun systme de
gestion de la cohrence et de la scurit gestion de base de
Autonomie locale des sites Donnes distribue
Support de lhtrognit

Page 7
Note : SGBD distribu ou rparti sont des termes que nous considrerons comme quivalents. On utilisera ici de prfrence distribu.
Dfinitions complmentaires

BD Interoprables
BD capable dchanger des donnes en comprenant
mutuellement ce quelles reprsentent

Base de donne fdre - a priori htrogne (Federated


BD)
Plusieurs BD htrognes capables dinteroprer via
une vue commune (modle commun)
Multibase
Plusieurs BD (htrognes ou non) capables
dinteroprer sans une vue commune (absence de
modle commun)

Page 8
Exemple de base de donnes fdres

Page 9
Dfinitions complmentaires

Traitement distribu
Il est essentiel de distinguer un SGBD
distribu du traitement distribu

Traitement distribu : Une base de


donnes centralise accessible par le
biais dun rseau informatique.

SGBD parallles: Nous marquons galement une distinction entre un


SGBD distribu et un SGBD parallle.

SGBD parallle: Un SGBD fonctionnant sur plusieurs processeurs et


plusieurs disques, conu pour excuter des oprations autant en parallle
que possible, de faon amliorer les performances.
Les SGBD parallles associent plusieurs machines plus modestes pour
atteindre le mme dbit quune seule machine plus ambitieuse, offrant en
outre une meilleure volutivit et une meilleure fiabilit que les SGBD
monoprocesseurs.

Page 10
Avantages des BD Distribues

Reflte une structure organisationnelle :Amlioration du


partage et de lautonomie locale
Disponibilit amliore: une panne dans un site dun SGBDD
ou une rupture de ligne de communication isolant un ou
quelques sites nimmobilise pas lensemble du systme
Performances amliores: les donnes se trouvent prs du
site de la plus grande demande/la concurrence pour les
services de lunit centrale et des entres sorties se trouve
nettement rduite par rapport un SGBD centralis.
conomie : lajout de stations de travail un rseau est
nettement moins coteux que lextension dun gros systme
centralis.
Facilit daccroissement (scalability)

Page 11
Inconvnients des BD Distribues

Complexit: un SGBDD masque sa nature rpartie aux yeux des


utilisateurs et fournit un niveau acceptable de performances, de fiabilit
et de disponibilit
Scurit: Dans un systme centralis, laccs aux donnes est dun
contrle facile, tandis que dans un systme distribu, non seulement il
faut contrler laccs aux donnes dupliques dans des emplacements
multiples, mais le rseau lui-mme doit tre scuris.
Contrle dintgrit de donnes plus difficile: Lintgrit de base de
donnes fait rfrence la validit et la cohrence des donnes
stockes.
Complexit plus grande du design de bases de donnes : le
design dune base de donnes distribue doit prendre en considration
la fragmentation des donnes, lallocation des fragments des sites
spcifiques et la rplication des donnes.
Cot : la distribution entrane des cots supplmentaires en
terme de communication, et en gestion des communications
(hardware et software installer pour grer les communications
et la distribution).
Page 12
Objectifs techniques des SGBD distribus

Multiclients multiserveurs
Client 1 Client 2
U1
RD U2
u3

Requte Transaction
Distribue distribue

Serveur 1 Serveur 2 Serveur 3

Fonctionnement multiclients multiserveurs

Requte distribue : requte mise par un client dont lexcution necessite


lexcution de N sous requtes sur N serveurs avec N>1
Transaction distribue: transaction mettant en oeuvre plusieurs serveurs

Page 13
Objectifs techniques des SGBD distribus

Transparence la localisation des


donnes (location transparency)
Proprit dun SGBD distribu permettant
dcrire des requtes avec des noms
dobjets rfrencs(les tables en relationnel)
ne contenant pas la localisation des donnes
Exemple: requte noms et prnoms des buveurs parisiens ayant pass une
commande de Volnay de degr >12 en quantit suprieure 100 depuis le 1 JANVIER 1992

Select Nom, prnom Mme requte quelque soit


From BUVEURS B, VINS V, COMMANDES C la localisation des tables

WHERE V.CRU= volnay AND V.DEGRE>12 SGBDR recherche les sites


AND C.QTE>100 and C.NV=V.NV and capables de gnrer des
C.DATE> 1/10/92 AND B.NB=C.NB lments de rponse une
requte
And B.VILLE=PARIS
Page 14
Objectifs techniques des SGBD distribus

Meilleure disponibilit
Ne plus dpendre dun site central unique
Gestion de copies : se replier sur une copie quand un
site tombe en panne (notion de rplication)
Autonomie locale
Cache
Schma local
Distant

Cache Cache
Schma local Schma local
Distant Distant

VN
V N+1

Page 15
Objectifs techniques des SGBD distribus

Accs intgr des donnes htrognes

Modle unifi
Langage pivot

Objet relationnel Fichier

Unification des modles et des langages

Intgration de schmas (schema integration):


Procd consistant rapprocher des schmas smantiquement
diffrents afin de construire un schma unique quivalent

Page 16
Niveaux de transparence la localisation

Trois types daccs :


Client / Multibases :
RDA (Remote Data Access) - Standard ISO
DRDA (Distributed Relational Database
Architecture) dIBM
SQL-CLI (Call Level Interface) de lOpen Group
ODBC (Open Database Connectivity) de Microsoft
UDA Microsoft
JDBC (Java Database Connection) de SUN
Vues distribues (sur BD fdres)
SGBD distribu

Page 17
RDA - Remote Data Access
Les usagers connaissent la localisation
Si une jointure est ncessaire, elle doit tre ralise
par lapplication

Application multibases

Protocole RDA

Protocole RDA Protocole RDA Protocole RDA

SGBD local SGBD local SGBD local

BD locale BD locale BD locale

Page 18
RDA - Remote Data Access (2)
Exemple
Site 1 : Cartes grises
Personne (N personne, nom, prnom, adresse, )
Voiture (N vhicule, marque, type, )
Conducteur (N personne, N vhicule, NB_accidents,..)
Site 2 : Base SAMU
Accident (N accident, date, departement, N vhicule, N personne, )
Bless (N accident, N personne, gravit, .)
Site 3 : requte
Liste des blesss graves dans une voiture de marque xxx et de type yyy dans rgion parisienne
Requte en centralis :
SELECT P.nom,P.prnom FROM Personne P, Bless B, Accident A, Voiture V
WHERE P.N personne = B.N personne
AND B.gravit > commotion
AND B.N accident = A.N accident
AND A.N vhicule = V.N vhicule
AND V. marque = xxx
AND V. type = yyy
AND A.dpartement IN (75, 78 , 91, 92 ,93, 94, 95)
Solution RDA

Requte sur site 1 : SELECT N vhicule FROM Voiture WHERE marque = xxx AND type = yyy INTO temp1
Requte sur site 1 : SELECT * FROM Personne INTO temp2
Requte sur site 2 : SELECT B.N personne, A.N vhicule FROM Bless B, Accident A
WHERE B.gravit > commotion AND B.N accident = A.N accident
AND A.dpartement IN (75, 78 , 91, 92 ,93, 94, 95) INTO temp3

Conclusion
Il est ncessaire denvoyer 3 requtes pour seulement 2 sites
La totalit de la relation Personne doit tre transfre
Lintgration du rsultat final doit tre faite par lapplication :

SELECT P.nom, P.prnom FROM temp2 P, temp3 B, temp1 V


WHERE P.N personne = B.N personne
AND B.N vhicule = V.N vhicule
Difficults : Programmation et adhsion de lindustrie des SGBD au protocole RDA
Page 19
Vues distribues
La transparence la localisation est assure par la dfinition des vues
distribues
Les jointures inter-bases sont excutes par le systme
Les mises jour sont supportes au moyen des vues distribues
Un protocole de validation 2 phases est support

Application

Vues distribues Calcul final

Gestionnaire des vues distribues


Sous-requtes

SGBD local SGBD local SGBD local

BD locale BD locale BD locale

Page 20
SGBD distribu
La transparence la localisation est assure par la dfinition de la
base distribue
Les diffrentes oprations sont prises en charge par les diffrents
SGBD
Un protocole de validation 2 phases est support

Application

Schma conceptuel global


SGBD distribu

BD locale 1

SGBD distribu . SGBD distribu

BD locale 2 BD locale N

Page 21
Mthodes de conception

Approche descendante Approche ascendante

BD distribue BD fdre

BD1 BD2 BDN BD1 BD2 BDN

Matrise de la complexit de la Matrise de lhtrognit


distribution (fragmentation, smantique (BD) et
duplication, placement) syntaxique (SGBD,
communications,.)
Dfinition des schmas locaux
partir du schma global Matrise de lintgration
des schmas locaux pour
crer un schma global
Page 22
Mthode ascendante

Fdration : Cration d'un schma unique partant de plusieurs


schmas
Objectifs :
Donner aux utilisateurs une vue unique des donnes
implmentes sur plusieurs systmes a priori
htrognes (plates-formes et SGBD)
Cas typique rencontr lors de la concentration
dentreprises : faire cohabiter les diffrents systmes
tout en leur permettant dinter oprer

Procdure dintgration :
Traitement de lhtrognit smantique
Traduction des schmas : traitement de lhtrognit
syntaxique
Intgration des schmas

Page 23
Fdration de BD
Htrognit smantique
Origine : Rsulte des conceptions indpendantes des diffrentes BD
Effet : Dsaccord sur la signification des donnes
Solution : Analyse smantique compare des donnes pralable la fdration
souvent groupe avec la phase de traduction

Traduction des schmas (rsolution de lhtrognit syntaxique)


Origine : utilisation de modles diffrents dans les BD composantes
Effet : ncessite des traductions de tous les modles vers tous les modles
Solution : traduction de tous les schmas dans un modle commun (dit
canonique ou pivot)
Problmatique :
Le modle canonique doit avoir un pouvoir de modlisation ceux des
modles des BD composantes
Ncessit de complter smantiquement des modles de BD composantes
qui seraient trop pauvres
Choix du modle canonique :
Entit - Association et Relationnel
Objet

Page 24
Fdration de BD
Intgration des schmas
Schma conceptuel global

Intgrateur

Schma intermdiaire 1 Schma intermdiaire 2 Schma intermdiaire N

Traducteur 1 Traducteur 2 Traducteur N

Schma export 1 Schma export 2 Schma export N

Procdure :
Identifier les lments de base qui sont lis
Choisir la reprsentation la plus adquate pour le schma global
Page 25
Intgrer les lments des schmas intermdiaires
Fdration de BD
Dmarche dintgration

Pr-intgration :
tablissement du plan dintgration

Comparaison :
mise en vidence des conflits

Mise en conformit :
rsolution des conflits

Fusion :
fusion des schmas

Restructuration :
amlioration du schma global

Page 26
Mthode descendante

Page 27
Mthode descendante

La fragmentation: Une relation est scinde en un certain


nombre de sous-relations, appeles fragments, rparties
ensuite. (exemple: la fragmentation horizontale et la
fragmentation verticale. Les fragments horizontaux sont des
sous-ensembles de tuples et les fragments verticaux sont des
sous-ensembles dattributs).
Lallocation. Chaque fragment est stock dans un site avec
une rpartition optimale .
La rplication. Le SGBDD conserve une copie dun mme
fragment dans plusieurs sites diffrents

Page 28
Mthode descendante

La dfinition et lallocation des fragments dpendent


ncessairement de la manire dutiliser la base de donnes
La conception de la BDD doit se fonder sur des informations
tant quantitatives que qualitatives. Les informations
quantitatives servent dans lallocation, tandis que les
informations qualitatives servent lors de la fragmentation.
Les informations quantitatives reprennent, notamment :
La frquence dexcution dune transaction.
Le site partir duquel une transaction est excute.
Les critres de performance des transactions.
Les informations qualitatives peuvent inclure des dtails relatifs aux
transactions excutes, tels que :
Les relations, attributs et tuples qui reoivent un accs.
Le type daccs (en lecture ou en criture)

Page 29
Fragmentation

Intrts
Lusage : dans le contexte de la rpartition des donnes, il parat
appropri de travailler sur des sous-ensembles de relations,
constituant lunit de rpartition
Lefficacit. Un stockage des donnes proximit du lieu o elles
sont le plus utilises est essentiel et inversement, les donnes
non ncessaires aux applications locales ne sont pas
emmagasines inutilement.
Le paralllisme: Lorsque le fragment constitue lunit de
rpartition, une transaction peut tre dcoupe en plusieurs
sous-requtes qui oprent sur des fragments. Ceci a pour effet
daccrotre le degr de simultanit, c'est--dire le paralllisme,
du point de vue du systme dans sa totalit, ce qui permet aux
transactions qui le peuvent, de sexcuter en parallle et en toute
scurit.
La scurit. Les donnes qui ne sont pas indispensables aux
applications locales ne sont pas prsentes inutilement des
endroits la porte des utilisateurs non autoriss

Page 30
Fragmentation correcte

Trois rgles rgissent la fragmentation :


1) Laspect complet . Si une instance de relation R est
dcompose en fragments R1, R2, Rn, chaque donne qui
se trouve normalement dans R doit apparatre dans au moins
un des fragments. Cette rgle est indispensable pour interdire
toute perte de donne pendant la fragmentation.
2) La reconstruction. Il est toujours possible de dfinir une
opration relationnelle qui permette de reconstruire la relation R
partir de ses fragments. Cette rgle garantit la prservation
des dpendances fonctionnelles.
3) La dis-jointure. Si une donne di apparat dans le fragment Ri,
alors il ne peut apparatre dans aucun autre fragment. La
fragmentation verticale constitue une exception cette rgle,
puisque les attributs de cl primaire doivent tre rpts pour
permettre la reconstruction. Cette rgle garantit la redondance
minimale des donnes.

Page 31
Techniques de fragmentation

2 niveaux de fragmentation :
Schma : fragmentation verticale, =>
Schma dcoup en sous-relations.
Instance : fragmentation horizontale,
=>
N-uplets dune relation affects
des fragments.
Ces 2 niveaux sont combinables: fragmentation mixte

=>
Recomposition :
Jointure(s)

Union(s)


Page 32
Units de fragmentation
Classe,
Table en relationnel
Occurrence,
Fragmentation horizontale
Lien de localisation
Attribut,
Fragmentation verticale
Valeurs,
Combinaison des fragmentations horizontale et verticale

Rpartition des classes


Les relations (entires) sont dissmines sur les sites (sous-schmas).
Exemple :
3 relations : compte, client et agence,
2 sites : site 1 et site 2,
Compte et client sur site 1,
Agence sur site 2.

Page 33
Fragmentation horizontale

Relations divises en sous-relations, chacune contenant des n-uplets d1 relation


dorigine (tout n-uplet doit tre dans un fragment),

=> Fragmentation par une slection, =>


Compte1 = (TypeCompte = courant )Compte,
Compte2 = (TypeCompte = dpt )Compte,
=> Recomposition par union,

Compte = Compte1 U Compte2, =>

Page 34
Fragmentation horizontale

Relation 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 Site 1
201 639 Lausanne dpt 325 100.00 Site 2
203 446 Genve courant 274 882.95
Site 1

Page 35
Fragmentation verticale

Fragmentation verticale, =>


Fragmentation par projection,
Client1 = (NoClient, NomClient)Client
Client2 = (NoClient, Prnom,Age)Client
Recomposition par jointure,
Client = Client1 Client2
Attention garder la clef (sinon perte d information).

=>

Page 36
Fragmentation verticale

Site 2
Site 1 Site 1 Site 2

Relation Client
NoClient NomClient Prnom Age
174 723 Villard Jean 29
177 498 Cattell Blaise 38
201 639 Tsellis Alan 51
203 446 Kowalsky Vladimir 36

Page 37
Fragmentation mixte

combinaisons des prcdentes : fragmentation horizontale ou


verticale dune relation ou dun fragment obtenu
antrieurement.
Slections et projections. =>

Exemple :
Compte11 = (NoClient, Agence) (NoClient > 200 000)Compte sur le
site 11
Compte12 = (NoClient, Agence) (NoClient <= 200 000)Compte
sur le site 12
Compte2 = (NoClient, Prnom, Age)Compte sur le site 2

Compte = (Compte11 U Compte12) Compte2


Page 38
Fragmentation mixte

Relation Client
NoClient NomClient Prnom Age
174 723 Villard Jean 29
Site 12
177 498 Cattell Blaise 38
201 639 Tsellis Alan 51
Site 11
203 446 Kowalsky Vladimir 36

Site 2

Page 39
Allocation de donnes

Quatre stratgies dallocation de donnes


Allocation centralise: Cette stratgie consiste tablir une
seule base de donnes et un seul SGBD sur un site et rpartir
les utilisateurs sur le rseau. Nous avons qualifi
prcdemment cette approche de traitement centralis.
Allocation fragmente ou partitionne : Cette stratgie
partitionne, dcoupe la base de donnes en des fragments
disjoints attribus chacun un seul site
Rplication complte: Cette stratgie entretient une copie de
la totalit de la base de donnes dans chaque site
Rplication slective: Cette stratgie combine la
fragmentation, la rplication et la centralisation. Certaines
donnes sont fragmentes pour obtenir la meilleure proximit
des rfrences et dautres, utilises par de nombreux sites et
rarement modifies, sont dupliques. Sinon, les donnes
demeurent centralises

Page 40
Rplication dans les BD

PRINCIPE
Copie de chaque relation sur plusieurs sites
Rplication complte = copie sur tous les sites
Objectifs de la rplication :
Amlioration de la disponibilit des donnes
Amlioration des performances
Autonomie locale
Difficult principale de la rplication :
Synchronisation des copies
Mise jour synchrone et asynchrone
Synchrone :
+ Maintien de toutes les copies en cohrence
- Perte de performance du fait de la mise en uvre de la validation
deux phases
Asynchrone : mise jour diffres des copies
+ Incidence minime sur les performances
- Ncessit de mise niveau de la copie ou des copies en cas de reprise

Page 41
Rplication des donnes

Options de rplication de donnes :

Modle de Rplication Rplication


rplication synchrone asynchrone

Rplication Rplication
Validation Vidage et Copie de
Technologie base de rgles fonde sur le
deux phases rechargement table
ou de triggers journal

Disponibilit Consistance Performance


Donnes pas
Problmes des systmes des et
jour
et des rseaux transactions administration

Page 42
Rplication des donnes
Quelques exemples dutilisation

Mouvement dinformation (OLTP DSS)

Rplication
BD BD
production dcisionnelle

Distribution dinformation

BD
Entreprise globale

BD BD BD BD
Afrique Amrique Asie Europe

Page 43
Rplication des donnes
Illustration de stratgies de mise jour

Site matre

Difficult de conception Mises jour asynchrones partir dun


Difficult de reprise aprs panne site matre
Impact des mises jour sur le Un seul point de rfrence
fonctionnement des nuds (overhead) Faible impact des mises jour sur le
fonctionnement des nuds

Page 44
Rplication des donnes
Rplication en vue de la rsistance aux
dfaillances (Disaster Recovery)

Propagation des modifications


Base Base
principale rplique

Site de secours
Site primaire

La rplication peut tre partielle ou totale


Elle peut se fonder sur une sauvegarde totale
priodique (e.g. hebdomadaire) et la copie du
journal des transactions intervalles rguliers.
La base rplique est alors rgnre partir de
la dernire sauvegarde totale et du journal
Page 45
Optimisation des requtes distribues

tablissement dun plan dvaluation optimal


Optimisation dune fonction de cot ou de temps de rponse de la forme :

cot global = a x cot(E/S) + b x cot(Processeur) + c x cot(Communication)


+ d x cot(Transfert des donnes)

Rappel : la compilation dune requte SQL produit un arbre dvaluation


compos dun certain nombre doprateurs de base :

Projection : X R projection de la relation R sur la liste d attributs X


Slection : P R slection des tuples de R vrifiant le prdicat P
quijointure : R1 R2 jointure des relations R1 et R2 selon lattribut A (R1.A=R2.A)
A

Produit cartsien : x produit de deux relations


Union : union de 2 relations
Intersection : intersection de deux relations

Loptimisation vise transformer larbre dvaluation en un arbre optimal

Page 46
Optimisation de requtes distribues

Requte distribue : Requte mise par un client dont


lexcution ncessite lexcution de n sous requtes
sur n serveur (n > 1)
Objectifs de loptimisation: un optimiseur de SGBD
reparti doit laborer un plan dexcution reparti
optimal de la requte compose de sous requtes et
de transferts

Plan dexcution reparti (distributed execution plan)


Arbre doprations dont certaines
correspondent des oprations
locales un site et dautre des transferts de
donnes depuis un site vers un autre site

Page 47
Schma gnral de traitement et
doptimisation dune requte distribue

Requte sur la BD distribue Schma global

Normalisation de l criture de
Dcomposition de la requte la requte
Analyse -vrification
limination de la redondance
Arbre d valuation de la requte R-criture
sur les relations distribues
Site de contrle Schma de distribution
Localisation des donnes

Requtes sur les fragments

Optimisation globale Statistiques sur les


fragments

Requtes sur les fragments optimises


avec oprations de communication

Optimisation locale

Site local Schma local


Requtes locales optimises
Page 48
Optimisation dune requte distribue

Dcomposition de requte: Cette couche prend une requte exprime en


termes de relations globales et effectue une premire optimisation
partielle . Le rsultat de cette premire optimisation est un arbre dalgbre
relationnelle fond sur les relations globales.
Localisation des donnes. Cette couche prend en ligne de compte la
rpartition des donnes sur le systme. Une itration plus pousse de
loptimisation est effectue en remplaant les relations globales des
feuilles de larbre dalgbre relationnelle par leurs algorithmes de
reconstruction (ce que lon appelle parfois les programmes de localisation
de donnes), cest--dire les oprations dalgbre relationnelle qui
reconstituent les relations globales partir des fragments constitutifs.
Optimisation globale. Cette couche prend en considration des
informations statistiques pour trouver un plan dexcution proche de
loptimum. Le rsultat de cette couche est une stratgie dexcution base
sur des fragments, o viennent sajouter des primitives de communication
qui envoient les parties de la requte aux SGBD locaux pour quils les
excutent, et qui permettent ensuite de recevoir les rsultats.
Optimisation locale. Tandis que les trois premires couches sexcutent
sur le site de contrle (gnralement le site que a lanc la requte), cette
couche particulire sexcute sur chacun des sites locaux impliqus dans
la requte. Chaque SGBD local effectue ses propres optimisations

Page 49
exemple

Arbre rsultant de la traduction directe de la requte


en oprations algbriques

Select nom, prenom X B.nom, B.prnom


From buveurs(b),vins (v), commandes ( C)
Where v.cru=volnay
And v.degr>12 P B.ville= Paris
And c.qt>100
And c.nv=v.nv C.NB B.NB
And c.date>1/10/88 NB
And b.nb=c.nb
And b.ville=paris P C.date>1/1/2000 Buveurs

V.NV C.NV
P NV

V.degr>12
P
V.cru= Volnay P C.quantit=100

Vins Commandes

Page 50
exemple

Arbre optimis par restructuration algbrique

X B.nom, B.prnom
X B.nom, B.prnom

C.NB B.NB
P B.ville= Paris
NB
X C.NB
C.NB
NB
B.NB
X B.NB
B.nom, B.prnom
V.NV C.NV
P C.date>1/1/2000 Buveurs NV

V.NV C.NV V.NV


C.NV,C.NB P B.ville= Paris
NV
C.date >1/1/2000 & Buveurs
V.degr>12 P V.degr>12 &
P C.quantit>100
V.cru= Volnay
V.cru= Volnay P C.quantit=100

Commandes
Vins Commandes Vins

Page 51
Optimisation des requtes distribues
Hypothse de volume :
Buveurs (B) : 10 000 tuples
Vins (V) : 1 000 tuples
Commandes : 200 000 tuples
Hypothse de distribution des BD :
Paris : Buveurs (B)
Dijon : Vins 1 (V1) restriction NV<= 400
Commandes 1 (C1) restriction NV<= 400
Bordeaux : Vins 2 (V2) restriction NV > 400
Commandes 2 (C2) restriction NV>400
Requte mise sur le site de Paris :
Noms des buveurs parisiens nayant pas command en dcembre 2000
Slectivits supposes : 20% de parisiens et 1% nayant pas command
Stratgies :
Simpliste : transfrer C1 et C2 vers Paris (200 000 tuples) et faire C = C1 C2 et
valuer SELECT B.nom FROM Buveurs (B) WHERE B.ville = Paris AND B.NB
NOT IN (SELECT NB FROM C WHERE C.date>1/12/2000 AND C.date<1/1/2001)
Amliore : Transfrer vers Dijon et Bordeaux Buveurs.NB des seuls parisiens (=
2 x 2 000 petits tuples). valuer sur les sites de Dijon et Bordeaux :
Buveurs.NB NOT IN (SELECT NB FROM Ci WHERE Ci.date>1/12/2000 AND
Ci.date<1/1/2001)
Transfrer les rsultats vers Paris (= 2 x 20 petits tuples) et faire lintersection des
rsultats
Page 52
Rsum
Une base de donnes distribue est une collection logiquement
interconnecte de donnes partages (et une description de ces donnes)
rparties physiquement sur un rseau informatique. Le systme de gestion de
base de donnes distribue (SGBDD) est le logiciel qui gre la base de
donnes distribue et assure la transparence de la distribution vis--vis des
utilisateurs.
Un SGBDD se distingue du traitement distribu, o un SGBD centralis reoit
des accs par lentremise dun rseau. Il se distingue galement du SGBD
parallle, qui sexcute sur plusieurs processeurs et disques, et qui est conu
pour valuer des oprations en parallle chaque fois que cela est possible, de
manire amliorer les performances.
Les avantages dun SGBDD sont quil reflte la structure organisationnelle,
amliore la partage des donnes, amliore la fiabilit, la disponibilit et les
performances; il est galement plus conomique, il facilite lexpansion grce
sa modularit,il facilite lintgration et aide maintenir la comptitivit des
organisations. Ses principaux inconvnients sont son cot, sa complexit, le
manque de standards et dexprience dans lindustrie.
Un SGBDD est considr comme homogne ou htrogne. Dans un systme
homogne, tous les sites utilisent le mme produit de SGBD, tandis que, dans
un systme htrogne, les sites exploitent des produits de SGBD diffrents,
qui ne suivent pas ncessairement le mme modle de donnes sous-jacent,
de sorte que le systme peut tre compos de SGBDrelationnels, en rseau,
hirarchiques ou orients objet.
Un systme multibase de donnes (SMBD) est un SGBD distribu dont
chaque site garde sa propre autonomie..

Page 53
Rsum
Une relation peut tre scinde en un certain nombre de sous-relations,
appeles fragments, alloues (attribues) un ou plusieurs sites. Les
fragments sont ventuellement dupliqus (copis tels quels) pour offrir une
meilleure disponibilit et des performances accrues.
Nous connaissons deux types de fragmentations : horizontale et verticale. Les
fragments horizontaux sont des sous ensembles de tuples et les fragments
verticaux sont des sous-ensembles dattributs de relations. La fragmentation se
prsente aussi sous un autre type : mixte.
La dfinition de lallocation des fragments est mene de faon stratgique, de
manire garantir la localit des rfrences, une fiabilit et une disponibilit
amliores, des performances acceptables, un quilibre des capacits de
stockage et des cots, ainsi que des cots de communication rduits. Les trois
rgles dites de correction de la fragmentation sont laspect complet, la
reconstruction et la disjointure.
Quatre stratgies dallocation existent, en fonction de la disposition des
donnes : centralise (une seule base de donnes centralise), fragmente
(des fragments sont attribus un site), de rplication complte (une copie
complte de la base de donnes est entretenue dans chaque site) et de
rplication slective (une combinaison des trois autres).
Un SGBDD doit apparatre comme un SGBD centralis, en assurant une srie
de transparences. La transparence de distribution fait que les utilisateurs
ignorent la rplication ou la fragmentation des donnes. La transparence de
transaction garantit la transparence de la base de donnes globale quand des
utilisateurs accdent simultanment la base de donnes et quand des pannes
se produisent. La transparence de performances garantit que le systme gre
efficacement les requtes faisant rfrence des donnes de plus dun site. La
transparence de SGBD permet lusage de plusieurs SGBD diffrents dans le
systme, sans que lutilisateur ne sen rende compte
Page 54
Transactionnel et
transactionnel rparti

Page 55
Plan
Introduction
Concept de transaction - Proprits ACID
Caractristiques du transactionnel
Transactionnel rparti
Moniteur transactionnel
Modle X/Open
Exemple de moniteur transactionnel: Tuxedo
Moniteurs transactionnels et SGBDs

Page 56
Introduction

Le transactionnel est une dimension essentielle des


systmes d'information des entreprises

Un systme transactionnel (OLTP On Line Transaction


Processing) fournit un cadre pour les applications critiques, il
est fiable et haute performance;

Le transactionnel rfre un mode dexploitation de donnes


tourn vers la saisie, le stockage, la mise jour, la scurit et
lintgrit des donnes

Par exemple, les systmes de gestion des transactions


boursires ou bancaires, dont les guichets automatiques ou
les systmes dinventaire dans les magasins

Page 57
Introduction
Concept de transaction

Page 58
Dfinition
Une transaction est un ensemble doprations menes sur une
BD,Ces oprations peuvent tre en lecture et/ou criture,
Une opration est atomique, cest donc une unit indivisible de
traitement,
Une transaction est soit valide par un commit, soit annule par
un rollback,soit interrompue par un abort,

Une transaction a une marque de dbut (Begin Of Transaction


BOT), et une marque de fin (End Of Transaction EOT).

La cohrence et la fiabilit dune transaction sont garanties par 4


proprits :
lAtomicit, la Cohrence, lIsolation, la Durabilit qui font
lACIDit dune transaction.

Page 59
Exemple

Transfert d'argent entre les comptes:


UPDATE Compte1
Val = Val -100
UPDATE Compte2
Val = Val + 100
Si seulement une de ces requtes est
excute, la BD perd sa consistance

Page 60
Proprits ACID
on appelle transaction une squence d'actions sur l'tat
physique et logique d'une application qui respecte les
proprits suivantes dites ACID (Atomicity, Consistency,
Isolation, Durability):

Atomicit: Les changements oprs par une transaction


sur l'tat sont atomiques: ils sont tous excuts ou bien
aucun ne l'est;
Consistance: Une transaction est une transformation
correcte de l'tat. L'ensemble des actions accomplies par
la transaction ne viole pas les contraintes associes avec
l'tat. Ceci implique que la transaction soit un programme
correct;
Isolation: les rsultats dune transaction ne doivent tre
visibles aux autres transactions quune fois la transaction
valide, ceci afin d viter les interfrences avec les autres
transactions
Durabilit: Lorsqu'une transaction se termine avec succs
(commitement), le changement qu'elle a provoqu sur l'tat
Page 61
doit survivre aux dfaillances.
Caractristiques du transactionnel
Partage:
en Lecture et criture
par lensemble des utilisateurs
Proprits ACID
Flux de requtes irrgulier
Travail rptitif
Rpertoire de fonctions pr-dfini typiquement O(100) fonctions
Fonctions simples
Fonctions peu complexes (typiquement de 105 107 instructions et 10 E/S)
Possibilit de traitement de type batch (avec respect des proprits ACID)
Grand nombre de terminaux (1000-10000)
Clients intelligents (stations, PC, autres systmes, terminaux)
Haute disponibilit requise
Recouvrement effectu par le systme
Fond sur les proprits ACID
Taille des bases de donnes
Proportionnelle l'activit de la Socit
Peu de donnes "touches" par une transaction
quilibrage de charge automatique
Recherche de la performance au moyen du paralllisme inter-requte
Performance : haut dbit et temps de rponse garanti
Scalabilit : exigence typique
Page 62
Commit et Abort
INTRODUCTION DACTIONS ATOMIQUES
Commit (fin avec succes) et Abort (fin avec echec)
Ces actions s'effectuent en fin de transaction

COMMIT
Validation de la transaction
Rend effectives toutes les mises jour de la transaction

ABORT
Annulation de la transaction
Dfait toutes les mises jour de la transaction

Page 63
Schma de transaction simple

Fin avec succs ou chec

Begin_Transaction
update
- Provoque l'intgration relle des mises
update jour dans la base
..... - Relche les verrous

Commit ou Abort

- Provoque l'annulation des mises jour


- Relche les verrous
- Reprend la transaction
Page 64
Effet logique

Mmoire de la
transaction
Update
Update

Abort
Commit

Poubelle
Bases de donnes

Page 65
Gestion de transactions reparties

Page 66
Transactions rparties

OBJECTIF
Garantir que toutes les mises jour d'une transaction
sont excutes sur tous les sites ou qu'aucune ne l'est.
EXEMPLE
Transfert de la somme X du compte A vers le compte B
DEBUT
site 1: A = A - X
site 2: B = B + X PANNE --> INCOHERENCE DONNEES
FIN
PROBLEME
Le contrle est rparti : chaque site peut dcider de
valider ou dannuler ...

Page 67
Validation d une Transaction

Transactions Centraliss
lapplication et les donnes sont sur la mme machine
Panne facile traiter
Validation 1 phase
transactions Distribues
lapplication et les donnes sont sur 2 N machines
Panne (partielle) difficile traiter
Validation 2 phases (2PC : Two Phases Commit)
Validation 3 phases (3PC : Three Phases Commit)

Page 68
Commit en 2 Phases

Principe
Diviser la commande COMMIT en deux phases
Phase 1 :
Prparer crire les rsultats des mises jour dans la BD
Centralisation du contrle
Phase 2 :
crire ces rsultats dans la BD
Coordinateur :
Le composant systme d'un site qui applique le
protocole
Participant :
Le composant systme d'un autre site qui participe dans
l'excution de la transaction

Page 69
Protocole C/S

1. PREPARER
Le coordinateur demande aux autres sites sils sont
prts commettre leurs mises jour.
2a. SUCCES : COMMETTRE
Tous les participants effectuent leur validation sur ordre
du client.
2b. ECHEC : ABORT
Si un participant nest pas prt, le coordinateur
demande tout les autres sites de dfaire la transaction.
REMARQUE
Le protocole ncessite la journalisation des mises jour
prpares et des tats des transactions dans un journal
local chaque participant.

Page 70
Cas Favorable

SITE COORDINATEUR

SITE PARTICIPANT 2
SITE PARTICIPANT 1

PREPARE PREPARE

OK
OK

COMMIT COMMIT

ACK ACK

Page 71
Cas Dfavorable (1)

SITE COORDINATEUR

SITE PARTICIPANT 2
SITE PARTICIPANT 1

PREPARE PREPARE

OK KO

ABORT ABORT

ACK

ACK

Page 72
Cas Dfavorable (2)

SITE COORDINATEUR

SITE PARTICIPANT 1 SITE PARTICIPANT 2

PREPARE PREPARE

OK OK

COMMIT COMMIT
ACK

STATUS

COMMIT

ACK

Page 73
Transitions d'Etats

Initial

CCommit/Prepare

Wait

VoteKO/GAbort VoteOK/GCommit

Initial
Abort Commit

Prepare/VoteOK

COORDINATEUR Ready

GAbort/Ack GCommit/Ack

Abort Commit

PARTICIPANT

Page 74
Actions du protocole

Page 75
Transactions bloques

Que faire en cas de doute ?


Demander ltat aux autres transactions :
STATUS
conservation des tats ncessaires
message supplmentaire
Forcer la transaction locale : ABORT
toute transaction annule peut tre ignore
cohrence garantie avec un rseau sans perte de
message
Forcer la transaction locale : COMMIT
toute transaction commise peut tre ignore
non garantie de cohrence avec le coordinateur

Page 76
Commit en 3 Phases

Inconvnient du Initial

commit 2 phases CCommit/Prepare


Wait
en cas de time-out en VoteKO/GAbort VoteOK/PrCommit
tat Prt, le
participant est bloqu Abort PrCommit
le commit 3 phases PrOK/GCommit
permet dviter les Commit
blocages
Initial
Messages du commit
Prepare/VoteOK
3 phases
Ready
Prepare, GAbort/Ack
PrCommit/PrOK
Prepare to Commit,
Abort PrCommit
Global-Commit,
GCommit/Ack
Global-Abort.
Commit

Page 77
Protocole arborescent TP

TP est le standard
propos par lISO dans le Coordinateur global
cadre OSI
Protocole arborescent
Tout participant peut
Coordinateur local
dclancher une sous-
transaction
Un responsable de la Coordinateur localPoint de validation
validation est choisi (Noeud critique)

Un coordinateur est
responsable de ses
participants pour la phase 1
collecte les PREPARE
demande la validation
Le point de validation est
Page 78
responsable de la phase 2
envoie les COMMIT
Moniteur transactionnel
Logiciel assurant le contrle de la faisabilit d'une
transaction commerciale en temps rel et l'quilibre de la
charge de traitement entre les diffrents serveurs.
Vendre des produits ou proposer des services en ligne
implique l'interaction de nombreux processus. Pour la
rservation de billets, par exemple, il faut notamment
vrifier la disponibilit du service, dbiter le compte du
client et crditer celui de l'entreprise.
Dans ce contexte, le recours un moniteur transactionnel
garantit la fois la fiabilit et la robustesse des
applications commerciales.
Le moniteur transactionnel surveille ainsi toutes les
requtes du client et appelle les fonctions correspondantes
sur le serveur.

Page 79
Moniteur transactionnel
Peu de systmes dexploitation ont t conus
dans loptique du transactionnel
Le support dun grand nombre d utilisateurs et
d un flux important de transactions (plusieurs
milliers par seconde) provoque un effondrement
des systmes
Le rle dun moniteur transactionnel est de :
Grer des processus comprenant le lancement des
applications, le contrle de leur droulement et
l quilibrage de charge (on peut parler de
multiplexage des requtes sur les ressources du
systme)
Grer des transactions (respect des proprits ACID)
dans un contexte, ventuellement distribu, mettant
en jeu plusieurs gestionnaires de donnes)

Page 80
Moniteur transactionnel

Support des transactions ACID


Accs continu aux donnes
Reprise rapide du systme en cas de panne
Scurit d'accs
Performances optimises
partage des connexions
rutilisation de transactions
Partage de charge
distribution de transactions sur les serveurs
Support de fichier et bases de donnes htrognes
API standardises

Page 81
Fonctions transactionnelles

Etapes du traitement transactionnel


traduire la requte utilisateur en format interne au moniteur
dterminer le type de transaction et le programme
ncessaire son excution
dbuter la transaction et lancer son excution
valider, ou abandonner, la transaction
retourner le rsultat lmetteur de la requte

Un moniteur assure aussi :


quilibrage de charge entre requtes et serveurs
rsistance aux pannes (client, serveur)
gestion de configuration (processus, sessions, ...)
contrle de performances et rglage
scurit
Page 82
Modle de moniteur transactionnel
Rseau Terminal

. Collecte les entres des transactions


Message (gestion de formes)
Manager (MM) . Construit un format standard d'entre
des requtes
. Envoie les rsultats (gestion de formes)

. Dbute et termine les transactions


Request . Dtermine le type des requtes
Control (RC) . Dirige les requtes vers les applications
appropries

Application . Excute les programmes d'application


Server (AS)

Database
System (DBMS) . Gre les donnes partages

Page 83
Interface utilisateur
Utilisation dun API unique
Masquage de la complexit de lorganisation des services

Page 84
Moniteur transactionnel : Modle X/OPEN

Modle DTP de lX/OPEN


Programme dapplication AP
AP
Gestionnaire de
transactions TM
Gestionnaire de TX

communication CRM
Gestionnaire de ressources TM

RM
Interfaces standards CRM

TX = interface du TM
TM
XA = interface du RM
intgration de TP XA

Types de RM
gestionnaire de fichiers
RM
SGBD
priphrique
Page 85
Interface applicative TX

tx_open
ordonne au TM dinitialiser la communication avec tous
les RM dont les librairies daccs ont t lies
lapplication.
tx_begin
ordonne au TM de demander aux RM de dbuter une
transaction.
tx_commit ou tx_rollback
ordonne au TM de coordonner soit la validation soit
labandon de la transaction sur tous les RM impliqus.
tx_set_transaction_timeout
positionne un timeout sur les transactions
tx_info
permet dobtenir des informations sur le statut de la
transaction.

Page 86
Interface ressource XA

xa_open
ouvre un contexte pour lapplication.
xa_start
dbute une transaction.
xa_end
indique au RM quil ny aura plus de requtes pour le
compte de la transaction courante.
xa_prepare
lance ltape de prparation du commit deux phases.
xa_commit
valide la transaction.
xa_rollback
abandonne la transaction.

Page 87
Moniteurs transactionnels et SGBD
Il y a deux possibilits pour la programmation d'un systme
transactionnel:
Programmation Client/Serveur, sans moniteur
transactionnel, en relation avec les possibilits offertes par
les SGBDs. Ceci est appel "TP Lite" ou transactionnel
lger
Utilisation d'un moniteur transactionnel qui fournit le cadre
architectural des applications et utilisation des services
fournis par diffrents composants logiciels (e.g. SGBDs).
Ceci est appel "TP Heavy" ou transactionnel lourd
Pour le choix entre ces deux approches, diffrents lments
rentrent en ligne tels que:
Transactionnel lger : dpendance vis vis du fournisseur de
SGBD, limitations vis vis de la programmation des transactions
(la validation est faite au niveau du SGBD), problmes de
performance,...
Pour TP Heavy: limitation potentielle dans les progiciels que l'on
peut intgrer, prennit du moniteur, complexit de la
Page 88
programmation,....

You might also like