D.
Chiadmi
2017-‐2018
Objectifs
Ø Introduire1 des
concepts,
des
algorithmes
et
des
techniques
dans
le
domaine
BD
distribuée
utiles
pour
le
développement
d’applications
autour
de
BDD
Ø Focus
sur
§ Les
concepts
et
les
architectures
de
système
de
BDD
§ Les
composants
importants
de
système
de
BDD
§ Les
transactions
et
leurs
traitements
1: sensibliliser
2017-2018 D. Chiadmi 2
Références
§ Principles
of
Distributed
Database
Systems,
M.
Tamer
Pelagatti, McGraw-‐Hill
2017-2018 D. Chiadmi 3
Plan
et
calendrier
27-12-17
28-12-17 24 élèves : 12 exposés de 20 min
03-01-18 (présentation + Q/R et discusion) par binôme
4
2017-2018 D. Chiadmi
Travaux
à
fAttention
aire
:
auen
binôme
copier/coller : invalidation
• Référence
bibliographique
– Articles
ou
brevets
fournis
(Date
>=
2016)
– Entre
2
à
3
autres
références
bibliographiques
complémentaires
• Production
:
Rapport
et
exposé
– Fond :
Ø Problème
traité
et
sa
motivation
//
Article
fourni
Ø Apport
des
articles
complémentaires
Ø Votre
Analyse
et
votre
synthèse
.
– Forme :
Ø Fiche
synthétique
d’une
demi
page
Ø Rapport
de
4
pages,
Times
New
Roman
12
et
interligne
1,5
2017-2018 D. Chiadmi 5
Travaux
à
faire
:
en
binôme
Exposés
– Durée
de
l’exposé
:
20
min
au
total
– 15
min
d’exposé Remettre
– 5
min
de
discussions - Articles complémentaires
- Slides
- CR pour chaque exposé
2017-2018 D. Chiadmi 6
-‐
Articles
Method
and
apparatus
for
e t
B revets
A
Prototype
Evaluation
of
a
Tamper-‐
ensuring
consistent
outcomes
in
resistant
High
Performance
Blockchain-‐
updates
to
distributed
DB,
based
Transaction
Log
for
a
Distributed
DB,
https://eprints.soton.ac.uk/411955/1/edcc_camera_ready.pdf
https://www.google.com/patents/US9672266
An
Extended
Technique
for
Data
-‐ Managing
a
distributed
DB,
https://www.google.com/patents/US9703824 Partitioning
and
Distribution
in
Distributed
-‐ Integrating
map-‐reduce
into
a
DB
Systems
,
https://www.jctecs.com/index.php/com/article/viewFile/152/75
distributed
relational
DB,
A
Novel
Query-‐Driven
Clustering-‐Based
https://www.google.com/patents/US9514188
Technique
for
Vertical
Fragmentation
and
-‐ Workload
balancing
in
a
distributed
Allocation
in Distributed
Database Systems,
DB,
https://www.google.com/patents/US9542429 https://www.igi-‐global.com/article/a-‐novel-‐query-‐driven-‐c lustering-‐based-‐
technique-‐for-‐vertical-‐fragmentation-‐and-‐allocation-‐in-‐distributed-‐database-‐
-‐ Resource
estimation
for
queries
in
systems/176732
large-‐scale
distributed
database
Towards
a
Non-‐2PC
Transaction
system
,
https://www.google.com/patents/US20170213257 Management
in
Distributed
DB
Systems
,
http://delivery.acm.org/10.1145/2890000/2882923/p1659-‐
-‐ System
and
method
for
distributed
lin.pdf?ip=105.131.218.188&id=2882923&acc=OA&key=4D4702B0C3E38B35
database
query
engines
,
%2E4D4702B0C3E38B35%2E4D4702B0C3E38B35%2E15F56E1470BE2D9E&CF
ID=832839084&CFTOKEN=18454538&__acm__=1511438715_abdefb240d66
https://www.google.com/patents/US20160188677 0a9550b965aedf91f024
27-12-17
28-12-17 24 élèves : 12 exposés de 20 min
03-01-18 (présentation + Q/R et discusion) par binôme
8
2017-2018 D. Chiadmi
Cours
portant
sur
BD
antérieurs
2017-2018 D. Chiadmi 9
Se
mettre
en
phase
:
BD
« classique »
Intégration n’est pas
Application forcément centralisation
1
SGBD
description
Application manipulation
2 BD
contrôle
Intégration ??
Application
3 Source : Principles of Distributed Database Systems, M.
Tamer Ozsu & P. Valduriez, Prentice-Hall, 3e édition, 2011
2017-2018 D. Chiadmi 10
BD
:
Intégration
de
données
• Sécurité de données
2016-2017 D. Chiadmi 11
• Langages de requêtes : SQL, QBE
BD
Distribuées
:
– motivation
?
– Problèmes
?
– Défis
?
2017-2018 D. Chiadmi 12
Etude
de
cas
:
magasins
de
mode
• La
chaîne
de
magasin
de
mode
« X »
dispose
de
plusieurs
points
de
vente
:
– Rabat
:
Agdal,
Mégamall,
Marjane
Riad,
etc.
– Casa
:
Maarif,
Twin
center,
etc.
– Etc.
• Un
client
se
présente
à
un
point
de
vente
(Agdal)
trouve
un
joli
pantalon
mais
ne
trouve
pas
la
bonne
taille
alors
que
cette
taille
est
disponible
dans
un
autre
point
de
vente
(Maarif)
2017-2018 D. Chiadmi 13
Solution
centralisée
Intégration et centralisation
Agdal
Mégamall
Réseau
…
2017-2018 D. Chiadmi 14
Solution
répartie
BDR : Fragments sur
un système réparti
Agdal
…
Mégamall
Réseau
2017-2018 D. Chiadmi 15
Intégration/répartition
Intégration ne signifie pas
forcément centralisation
Technologie Réseau
BD
intégration Répartition
BD
Réparties
Integration/répartition
Source : Principles of Distributed Database Systems, M.
Tamer Ozsu & P. Valduriez, Prentice-Hall, 3e édition, 2011
2017-2018 D. Chiadmi 16
Répartition
de
données
:
pourquoi
?
• Amélioration
de
la
disponibilité
(Si
site
de
Agdal
en
panne,
le
reste
du
système
continue
de
fonctionner)
fragments
différents)
(Plus de détail un peu plus loin)
2017-2018 D. Chiadmi 17
Répartition
:
Rappel
(ou
pas
?)
Caractéristiques : entités
2017-2018 D. Chiadmi 18
BD
Distribuée
?
Base
de
Données Distribuée
v déployée sur un
système réparti
2017-2018 D. Chiadmi 21
Pbs
Distribuée Vs
Centralisé
Discussion ?
2017-2018 D. Chiadmi 22
SGBDR
fournit
davantage
de
fonctionnalités
• Maintien
d’un
schéma
conceptuel
global
de
la
BDR
• Exécution
de
requêtes
(transactions)
sur
des
données
de
plusieurs
sites
• Gestion
transparente
de
la
répartition,
de
la
fragmentation
et
de
la
réplication
• Maintien
d’un
catalogue
• Amélioration
de
la
disponibilité
et
la
fiabilité
• Amélioration
de
la
performance
• Facilité
d’extension
• Recouvrement
en
cas
de
pannes suite
• Si
réplication
:
choix
de
la
copie,
maintien
de
la
consistence
2017-2018 D. Chiadmi 23
BDR Transpatrence à la répartition, la réplication et à la
fragmenation
répliqué
Interface
utilisateur
SGBD
Software
interface
Application
SGBD
Software
SGBD Réseau
Software
interface
Non SGBD Interface Application
répliqué Software utilisateur SGBD
Software
Interface
utilisateur
2017-2018 Source : Principles of Distributed Database Systems,24
D. Chiadmi M.
Tamer Ozsu & P. Valduriez, Prentice-Hall, 3e édition, 2011
Transparence
La
transparence
est
un
compromis
entre
(1)
simplicité
d’utilisation,
(2)
difficulté
et
(3)
coût
induit
Retour
2017-2018 D. Chiadmi 25
Amélioration
de
la
fiabilité
• Un
SBDD
peut
recourir
à
la
réplication
pour
éviter
qu’une
donnée
devienne
inaccessible
en
cas
de
panne
• Les
utilisateurs
peuvent
continuer
à
utiliser
une
partie
des
données
ʺ″avec
précautionʺ″
même
si
une
partie
des
données
est
inaccessible
• Les
transactions
réparties
permettent
la
maintenance
de
la
consitence
de
la
BD
même
en
cas
de
panne
retour
2017-2018 D. Chiadmi 26
Amélioration
de
la
Performance
• le
taux
d’utilisation
du
CPU
et
des
ressources
d’E/S
est
moins
critique
vu
que
chaque
site
ne
gère
qu’une
partie
des
données
(vers
un
équilibrage
de
charge)
• l’utilisation
de
données
en
local
réduit
la
surcharge
due
à
la
communication.
• Le
parallélisme
des
SR
peut
être
exploité
– Parallélisme
inter-‐requête
– Parallélisme
intra-‐requête
• ..
retour
2017-2018 D. Chiadmi 27
Quelques
difficultés
• Système
plus
complexe
à
gérer
2017-2018 D. Chiadmi 28
Les
orientations
:
composants
• Conception
des
BDR
(fragmentation,
placement,
etc.)
• Traitement
des
requêtes
réparties
(réécriture,
validation,
etc.)
• Contrôle
de
la
concurrence
(synchronisation)
• Fiabilité
• Gestion
du
catalogue
(informations
sur
les
données,
etc.)
• Gestion
répartie
des
interblocages
• BD
hétérogènes Gestion du catalogue
Contrôle de concurrence
Source : H.Lu/HKUST
29
2017-2018 Gestion de l’interblocage
Partie
2
:
Architectures
2017-2018 D. Chiadmi 30
Solution
centralisée
Agdal Maarif Méga Mall
…
ES ES ES
Architecture
Schéma conceptuel
ANSI-SPARC
Schéma interne
2017-2018 D. Chiadmi 31
Architecture
générique
d’un
SGBD
centralisé
2016-2017 D. Chiadmi 32
Example Source : Principles of Distributed Database Systems, M.
Tamer Ozsu & P. Valduriez, Prentice-Hall, 3e édition, 2011
EMP ASG
2017-2018 D. Chiadmi 33
Schèma
Conceptuel
(1)
ENO ENAME TITLE TITLE SAL
2017-2018 D. Chiadmi 34
Schèma
Conceptuel
(2)
PNO PNAME BUDGET ENO PNO RESP DUR
2017-2018 D. Chiadmi 35
Schèma Interne
2017-2018 D. Chiadmi 36
Vues
externes
RELATION PROJ [
KEY = {PNO}
ATTIBUTES = {
PNO : CHAR(7)
PNAME : CHAR(20)
BUDGET : NUMERIC(7)
} ]
2017-2018 D. Chiadmi 37
Vues externes
RELATION EMP [
RELATION PAY [
KEY = {ENO}
KEY = {TITLE}
ATTIBUTES = {
ATTIRBUTES = {
ENO : CHAR(9)
TITLE : CHAR (10)
ENAME : CHAR(15)
SAL : NUMERIC(6) } ]
TITLE : CHAR(10) } ]
2017-2018 D. Chiadmi 38
Comment
répartir
cette
BD
?
2017-2018 D. Chiadmi 39
Modèles
architecturaux
d’un
SGBDR
Classification à 3 dimensions :
• Autonomie
• Répartition
• Hétérogénéité
2017-2018 D. Chiadmi 40
Autonomie
Fait
référence à la
distribution
du
contrôle et
signifie que :
1.Les
opérations locales
du
SGBD
ne
sont pas
affectées par
sa
participation
au
système distribué
2.La
manière avec
laquelle le
SGBD
traite et
optimise les
requêtes
n’affecte pas
l’exécution globale d’une requête qui
utiliserait des
données de
SGBDs
différents
3.La
cohérence n’est pas
altérée par
l’arrivée ou le
départ d’un
SGBD
2017-2018 D. Chiadmi 41
Autonomie
:
sous
dimensions
?
1. Conception :
SGBD libre
d’utiliser
le
modèle
de
données
et
la
gestion
de
transaction
préférés.
2. Communication :
chaque
SGBD est
libre
de
ses
décisions,
de
la
nature
des
informations
à
fournir
aux
autres
SGBD
et
du
protocole
de
contrôle
de
l’exécution
globale.
3. Exécution :
chaque
SGBD est
libre
de
choisir
la
manière
d’exécuter
les
transactions
reçues
2017-2018 D. Chiadmi 42
Ces 3 alternatives ne sont pas les seules possibilités.
Classification
:
3
alternatives*
Il s’agit des 3 les plus populaires
Intégration
forte
=
SGBDs
partagent
les
données
&
présentent
une
vue
unique
à
tous
les
utilisateurs
:
//absence
d’indépendance
–Vue
:
données
logiquement
intégrées
dans
une
seule
BD.
–Contrôle
:
un
seul
gestionnaire
chargé
du
contrôle
du
traitement
de
chaque
requête
même
si
elle
est
répartie.
Semi-‐autonome
=
SGBDs
partagent
des
données
et
fonctionnent
de
manière
indépendante. //
indépendance
partielle
Isolation
totale =
SGBD
individuel
ignore
l’existence
d’autres
SGBD
et
la
manière
de
communiquer
avec
eux.
Aucun
contrôle
global
de
traitement
rendant
l’exécution
des
transactions
difficile.
//
indépendance
Totale
*
Il
en
existe
d’autres 2017-2018 D. Chiadmi 43
Distribution
2017-2018 D. Chiadmi 44
Distribution en
C/S
• Gestion
de
données
assurée
par
le
Serveur
• Exploitation
(interface
utilisateur)
gérée
par
le
Client
• Communication
traitée
par
le
Client
Serveur
2017-2018 D. Chiadmi 46
Distribution en
P2P
Chaque
pair
dispose
d’un
SGBD
complet
et
communique
avec
les
autres
machines
pour
l’excécution
des
requêtes
ou
transactions.
2017-2018 D. Chiadmi 47
Hétérogénéité
– Modèles de données : Recours possible à différents
outils de modélisation en raison de l’expressivité ou la
limitation d’un modèle par rapport à un autre
2017-2018 D. Chiadmi 48
Vers
l’architecture
Distribuée
Dans
tous
les
cas,
il
est
nécessaire
d’avoir
-‐vue
locale
des
données
d’un
site
définie
par
un
schéma
interne
:
schéma
local
interne
(LIS)
-‐vue
globale
des
données
décrivant
la
structure
logique des
données
de
tous
les
sites
:
schéma
conceptuel
global
(GCS)
•organisation
logique
locale
des
données
pour
passer
à
la
répartition
(fragmentation,
placement
et
réplication)
:
schéma
conceptuel
local
(LCS)
Ex
:
GCS
=
union
des
LCS
•Schéma
externe
(ES)
pour
chaque
application
ou
utilisateur
finaux
défini
sur
le
GCS.
2017-2018 D. Chiadmi 49
Architecture
classique
SGBDR
Schéma global :
Schémas
ensemble de relations Schéma global GCS indépendants de
globales sans allusion à la localisation
la répartition. Schéma de fragmentation
Schéma d’allocation
Site 1 DB 1 DB 2
Locale
Site 2 Locale
2017-2018 D. Chiadmi 51
Architecture
classique
SGBDR
mapping fragment-site 1:1 ou
1:n (en cas de réplication).
Schéma global Schémas
Les fragments décrits par la indépendants de
même relation Ri et la localisation
Schéma de fragmentation
alloués à différents sites j
sont des copies du même
Schéma d’allocation
fragment (noté Rji)
Site 1 DB 1 DB 2
Locale Locale
2017-2018 D. Chiadmi 52
Architecture
classique
SGBDR
Schéma global Schémas
indépendants de
la localisation
Mapping interne Schéma de fragmentation
manipulé par le
SGBD Schéma d’allocation
Site 1 DB 1 DB 2
Locale
Site 2 Locale
2017-2018 D. Chiadmi 53
Récapitulatif
:
SchémaSchema
global
:
relations
globales
sans
allusion
à
la
répartition.
R
R1 R11 Schema
de
fragmentation
:
R1 relation
globale
“divisée”
en
fragments
(logiques)
disjoints
R12 (Site 1) avec
un
mapping
(1:n)
de
la
R2 relation
globale
R
vers
les
R21
fragments
Ri
R2 Schema
d’allocation
:
mapping
(Site2) fragment-‐site
1:1
ou
1:n
(en
R3 R22
cas
de
réplication).
Les
fragments
“décrits”
par
la
R23
même
relation
Ri
-‐alloués
à
Relation R3
Fragments (Site3)
plusieurs
sites
j-‐ sont
Globale considérés
comme
des
copies
R33
du
même
fragment
(noté
Rji)
Images Physiques
Schema
local
(mapping)
:
mapping
interne
manipulé
par
le
SGBD.
2017-2018 D. Chiadmi 54
Motivation
• Séparer
les
2
concepts
de
fragmentation
et
d’allocation
• Transparence
à
la
fragmentation
• Transparence
à
la
localisation
• Indépendance
des
“bout”
de
BD
locales
permettant
un
maping
transparent
2017-2018 D. Chiadmi 55
Fonctionnement
Zoom1
2017-2018 D. Chiadmi 56
Processeur
utilisateur
interface :
interprète
les
commandes
et
met
en
forme
les
résultats
Contrôle
sémantique
:
vérifie
les
contraintes
d’intégrité
et
les
permissions
définie
par
le
GCS
Optimisation :
réecrit
la
requête
globale
en
sous
requêtes
locales
(utilisant
GCS,
LCS
et
catalogue)
et
détermine
la
“meilleure”
stratégie
d’exécution
en
fonction
du
coût
Exécution :
coordonne
l’exécution
répartie,
transmet
les
sous
requêtes
au
PDD,
et
récupére
les
résultats
qu’il
soumet
à
l’interface
2017-2018 D. Chiadmi 57
Processeur
de
données
Processeur
local
de
la
requête
:
sélectionne
le
chemin
d’accès
aux
données
de
la
requête
locale
Recouvrement
local
:
garantit
la
consistence
locale
de
la
BD
même
en
cas
de
panne
Run-‐time
:
assure
l’accès
physique
à
la
BD
locale
en
fonction
du
plan
généré
par
l’optimiseur.
Il
assure
l’interface
avec
l’OS
qui
“supporte”
la
BD,
le
cache,
etc.
2017-2018 D. Chiadmi 58
Autres
solutions
et
pistes
…
2017-2018 D. Chiadmi 59
Architecture
Multi
base
de
Données
Requête globale
Requête
Requête Multi-SGBD Layer locale
locale
Sous requête Sous requête Sous requête
globale globale globale
60
2017-2018 D. Chiadmi
Architecture
Médiateur /
adaptateur
2017-2018 D. Chiadmi 61
Partie
3
:
Conception
2017-2018 D. Chiadmi 62
Partage
:
3
dimensions
1.niveau
de
partage
(sharing
level)
2.mode
d’accès
(behaviour
of
access
pattern)
3.niveau
de
connaissance
sur
le
mode
d’accès
(level
of
knowledge
about
the
behaviour
of
access
pattern
2017-2018 D. Chiadmi 63
Niveau
de
partage
:
3
possibilités
1-‐ no
sharing
:
application
et
données
sur
le
même
site.
Aucune
communication
avec
d’autres
programmes
et
aucun
accès
à
d’autres
données
2-‐ data
sharing*
:
programmes
répliqués
sur
tous
les
sites
mais
pas
les
données.
En
fonction
de
la
requête,
les
fichiers
de
données
requis
sont
transférées
sur
le
site
d’où
émane
la
requête.
3-‐ data
+
program
sharing*
:
données
et
pgs
partagés.
Ainsi,
un
pg,
sur
un
1e site,
peut
invoquer
un
service
sur
un
2e site
qui
peut
accéder
à
un
fichier
de
données
hébergé
sur
un
3e site.
*
Dans
un
environement
hétérogène,
il
est
difficile
voire
impossible
d’excéuter
le
même
pg
sur
des
machines
≠
2017-2018 D. Chiadmi sous
des
OS
≠.
Le
transfert
64
2017-2018 D. Chiadmi 65
Niveau
de
connaissance
Le
concepteur
1-‐ n’a
aucune
information
:
possibilité
théorique
mais
cas
difficile
voire
impossible
à
traiter
2-‐ a
toute
l’
information
:
prédiction
des
accès
possible
avec
une
bonne
précision
3-‐ a
une
information
partielle
:
prédiction
des
accès
possible
mais
avec
une
déviation
probabale
66
2017-2018 D. Chiadmi
Conception
de
BDR
En
comparaison
avec
le
cas
centralisé,
chacun
des
cas
cité,
sauf
le
“no-‐sharing”,
soulève
de
nouveaux
pbs
2017-2018 D. Chiadmi 67
Deux
Approches
de
conception
BD • Descendant
(Top-‐Down)
– Utilisée
si
conception
from
scratch
BD1 BD2 … BDn
– Utilisé
pour
des
données
homogènes
– Applications
réelles
ne
sont
pas
tjs
BD
aussi
simples
!!
2017-2018 D. Chiadmi 69
Identifier les besoins liés aux
données et aux traitements
des utilisateurs potentiels de
la BD afin de définir les
objectifs en termes de
performance, de fiabilité, de
disponibilité et de flexiblité
2016-2017 D. Chiadmi 70
Définir les interfaces
utilisateurs
Définir le GCS en
déterminant les entités, leurs
attributs, les relations entre
eux
2016-2017 D. Chiadmi 71
“GCS” + “Access pattern
information” + “External
Scheme definitins” sont les
entrées de l’étape “conception
de la répartition”.
En sortie, on obtient les LCS
qui décrivent la répartition des
relations sur les sites (sous
relations, appelées fragments)
La conception de la répartition
se fait en 2 étapes séparées
(fragmentation et allocation)
pour mieux traiter à la
complexité du problème
2016-2017 D. Chiadmi 72
La conception au niveau
physique concerne
l’implémentation de chaque
LCS au niveau d’un élément de
stockage d’un site.
En entrée, on a les LCS + access
pattern information
2016-2017 D. Chiadmi 73
Fragmentation
Plusieurs
questions
1.Pourquoi
fragmenter
?
2.Comment
doit-‐on
fragmenter
?
3.Combien
de
fragments
doit
on
avoir
?
4.Comment
tester
la
validité
d’une
décomposition
?
5.Comment
doit-‐on
procéder
à
leur
placement
?
6.Quelles
sont
les
informations
nécessaires
pour
la
fragmentation
et
le
placement
?
2017-2018 D. Chiadmi 74
Fragmentation
• Une
requête
interroge
le
plus
souvent
une
partie
d’une
relation
et
non
une
relation
entière
• Une
requête
interrogeant
une
(partie
de)
relation
peut
être
placée
sur
2
sites
:
S1
– placement
sur
un
site
engendrant
des
accès
distants
ou
S2
– réplication
sur
les
2
sites
engendrant
la
gestion
des
mises
à
jour
• La
décomposition
d’une
relation
en
fragments
permet
l’exécution
concurrene
de
transactions
• La
fragmentation
de
relations
permet
aussi
l’exécution
parallèle
d’une
requête
en
la
divisant
en
sous
requête
traités
dans
différents
fragments.
2017-2018 D. Chiadmi 75
Fragmentation:
difficultés
• le
besoin
d’une
requête
peut
empêcher
la
décomposition
d’une
relation
en
fragments
séparés
(conflit)
Réduire
le
nb
de
jointure
répartie
est
un
pb
de
la
fragmentation
2017-2018 D. Chiadmi 76
Fragmentation:
difficultés
• La
vérification
de
l’intégrité
traitée
par
le
module
de
contrôle
sémantique
peut
être
difficile
dans
le
cas
où
des
attributs
dépendants
se
retrouvent
dans
différents
fragments
placés
dans
des
sites
différents.
Dans
ce
cas,
le
test
d’intégrité
devrait
“suivre” les
données
dépendantes
sur
plusieurs
sites.
2017-2018 D. Chiadmi 77
Conception
descendante
:
Fragmentation
Construction
du
schéma
de
fragmentation :
découper
le
SCG
en
plusieurs
SCL
avec
un
mapping entre
les
deux.
J Accès
réduits
à
des
données
non
pertinentes
J Utilisation
de
plusieurs
sites
favorise
l’équilibrage
de
charge
J Concurrence
intra-‐requête
facilitée
L Difficulté
d’avoir
des
fragments
disjoints
L Accès
à
plusieurs
fragments
nécessitent
des
jointures
ou
des
unions
L Coût
induit
par
le
contrôle
de
la
sémantique
des
données
(integrité)
2017-2018 D. Chiadmi 78
techniques
de
fragmentation
2017-2018 D. Chiadmi 79
Granularité
de
la
Fragmentation
• Elevée
:
2017-2018 D. Chiadmi 80
Granularité
de
la
Fragmentation
• Faible
:
– plusieurs
possibilités
pour
la
fragmentation
– répartition
flexible
et
efficace
de
la
BD.
– faire
tourner
plus
de
processus
simultanément,
d’où
une
meilleure
utilisation
des
possibilités
du
réseau
d'ordinateurs
– lourdeur
pour
la
recomposition
des
informations.
2017-2018 D. Chiadmi 81
Granularité
de
la
Fragmentation
• Compromis
:
– Elevée
:
probabilité
d’accès
à
des
données
non
pertinentes
élevée
– Fine
:
Coût
de
traitement
élevé
– Besoin
de
trouver
un
degré
convenable
de
fragmentation
2017-2018 D. Chiadmi 82
Trois règles
1-‐ complétude :
pour
toute
donnée
de
la
relation
globale,
∃ au
moins
un
fragment
Ri
de
la
relation
R
qui
possède
cette
donnée.
2017-2018 D. Chiadmi 83
Schéma
de
Fragmentation
2017-2018 D. Chiadmi 84
Exemple Source : Principles of Distributed Database Systems, M.
Tamer Ozsu & P. Valduriez, Prentice-Hall, 3e édition, 2011
EMP ASG
ENO ENAME TITLE ENO PNO RESP DUR
E1 J. Doe Elect. Eng. E1 P1 Manager 12
E2 M. Smith Syst. Anal. E2 P1 Analyst 24
E3 A. Lee Mech. Eng. E2 P2 Analyst 6
E4 J. Miller Programmer E3 P3 Consultant 10
E5 B. Casey Syst. Anal. E3 P4 Engineer 48
E6 L. Chu Elect. Eng. E4 P2 Programmer 18
E7 R. Davis Mech. Eng. E5 P2 Manager 24
E8 J. Jones Syst. Anal. E6 P4 Manager 48
E7 P3 Engineer 36
E7 P5 Engineer 23
E8 P3 Manager 40
PROJ PAY
PNO PNAME BUDGET TITLE SAL
P1 Instrumentation 150000 Elect. Eng. 40000
P2 Database Develop. 135000 Syst. Anal. 34000
P3 CAD/CAM 250000 Mech. Eng. 27000
P4 Maintenance 310000 Programmer 24000
2017-2018 D. Chiadmi 85
Relations
ou
Classes
Relations
(entières)
réparties
dans
différents
fragments
et
réparties
sur
les
sites
2017-2018 D. Chiadmi 86
Exemple Source : Principles of Distributed Database Systems, M.
Tamer Ozsu & P. Valduriez, Prentice-Hall, 3e édition, 2011
EMP ASG
ENO ENAME TITLE ENO PNO RESP DUR
E1 J. Doe Elect. Eng.
Site 1 E2 M. Smith Syst. Anal.
E1 P1 Manager 12
E2 P1 Analyst 24
E3 A. Lee Mech. Eng. E2 P2 Analyst 6
E4 J. Miller Programmer E3 P3 Consultant 10
E5 B. Casey Syst. Anal. E3 P4 Engineer 48
E6 L. Chu Elect. Eng. E4 P2 Programmer 18
E7 R. Davis Mech. Eng. E5 P2 Manager 24
E8 J. Jones Syst. Anal. E6 P4 Manager 48
E7 P3 Engineer 36
E7 P5 Engineer 23
E8 P3 Manager 40
PROJ PAY
PNO PNAME BUDGET TITLE SAL
P1 Instrumentation 150000 Elect. Eng. 40000
P2 Database Develop. 135000 Syst. Anal. 34000
Site 2 P3 CAD/CAM 250000 Mech. Eng. 27000
P4 Maintenance 310000 Programmer 24000
2017-2018 D. Chiadmi 87
Fragmentation
horizontale
=>
2017-2018 D. Chiadmi 88
Répartition
des
occurrences
Relation PROJ
P1 Instrumentation 150000
P2 Database
develop 135000 Site 1
P3 CAD/CAM 250000
P4
Maintenance 310000 Site 2
retour
2017-2018 D. Chiadmi 89
Discussion
• Que
se
passe
t-‐il
si
les
prédicats
ne
sont
pas
exclusives
:
PROJ1
=
σ
(BUDGET
<=
150000)
PROJ
PROJ2
=
σ
(BUDGET
>
200000)
PROJ
Ou
PROJ1
=
σ
(BUDGET
<=
250000)
PROJ
PROJ2
=
σ
(BUDGET
>
200000)
PROJ
• Que
se
passe
t-‐il
si
les
valeurs
sont
continues
et/ou
infinies
?
• Que
se
passe
t-‐il
si
un
nouveau
projet
est
ajouté
avec
un
budget
de
60000
?
• Autres
??
2017-2018 D. Chiadmi 90
Fragmentation
horizontale
dérivée
• Exemple
EMP1
=
EMP PAY1
EMP2
=
EMP
PwAY2
v
où wv
Fragments ?
2017-2018 D. Chiadmi 91
Fragmentation
horizontale
dérivée
EMP1 = EMP wv PAY1
EMP PAY EMP2 = EMP wv PAY2
ENO ENAME TITLE TITLE SAL où
E1 J. Doe Elect. Eng. Elect. Eng. 40000 PAY1 = σ (SAL 30000) PAY
E2
E3
M. Smith
A. Lee
Syst. Anal.
Mech. Eng.
Syst. Anal. 34000 PAY2 = σ (SAL > 30000) PAY
Mech. Eng. 27000
E4 J. Miller Programmer Programmer 24000
E5 B. Casey Syst. Anal.
E6 L. Chu Elect. Eng.
E7 R. Davis Mech. Eng.
E8 J. Jones Syst. Anal.
2017-2018 D. Chiadmi 92
Critères
?
- Fragmentation avec les meilleures caractéristiques de
jointure
- Fragmentation utilisée dans le plus grand nb
d’applications
2017-2018 D. Chiadmi 93
Fragmentation
verticale
=>
2017-2018 D. Chiadmi 94
Attributs =>
=>
2017-2018 D. Chiadmi 95
Répartition
des
attributs
Relation PROJ
Site 1 Site 2
PROJ
P1 Instrumentation 150000
P2 Database Develop. 135000
P3 CAD/CAM 250000
P4 Maintenance 310000
2017-2018 D. Chiadmi 97
• q1:
Find
the
budget
of
a
project,
given
its
identification
number.
Soit A1 = PNO, A2 = PNAME,
SELECT
BUDGET
A3 = BUDGET, A4 = LOC
FROM
PROJ
WHERE
PNO=Value
• q2:
Find
the
names
and
budgets
of
all
projects.
SELECT
PNAME,
BUDGET
FROM
PROJ
• q3:
Find
the
names
of
projects
located
at
a
given
city.
SELECT
PNAME
FROM
PROJ
WHERE
LOC=Value
• q4:
Find
the
total
project
budgets
for
each
city. Que faire ?
SELECT
SUM(BUDGET)
FROM
PROJ
WHERE
LOC=Value Livre pages 100 à 102
2017-2018 D. Chiadmi 98
Valeurs =>
P3 CAD/CAM
P3 250 000
P4 Maintenance 310 000
Optimal ?
Minimise coût total
Modèle de coût : Minimise temps de réponse
??
2017-2018 D. Chiadmi 104
Exemple
simple
d’allocation
• Pour
chaque
fragment
Fk:
– D
=
{d1,
d2,...
dm}
:
coût
de
stockage
de
Fk sur
S1 à
Sm
– T
=
{t1,
t2,
...,tm}
:
trafic
généré
par
lire(Fk)
sur
S1 à
Sm
– U
=
{u1,
u2,
...,um}:
trafic
généré
par
écrire(Fk)
sur
S1-‐ Sm
– C(T)
=
{
c12 ,
c13,...,
c1m,....,
cm-‐1,m }:
unité
de
coût
de
communication
pour
une
lecture
entre
tt
couple
de
sites
– C(U)
=
{
c'12 ,
c'13,...,
c'1m,....,
c'm-‐1,m }:
unité
de
coût
de
communication
pour
une
écriture
entre
tt
couple
de
sites
– Aucune
contrainte
de
capacité
des
sites
ou
du
réseau
• Transaction
répartie
• Propriétés
ACID
• Contrôle
des
accès
concurrents
• Contrôle
de
l'atomicité
:
2PC
-‐ 3PC
• Gestion
de
la
réplication
Ex
:
soient un
fichier
F
de
10
octets
et
une
T
qui
y
ajoute
des
éléments
-‐ Les
processus
qui
lisent
F
pendant
l’exécution
de
T
ne
voient
que
les
10
octets
d'origine
indépendamment
du
nombre
d'octets
ajoutés.
2016-2017 D. Chiadmi 115
-‐ Lorsque
T
est
validée,
F
grossit
instantanément.
Consistence
Etat cohérent
Le
résultat
de
T
doit
être
consistant
(coherency)
i Contraintes
d'intégrité
avec
les
spécifications
de
l’application. T
-‐ T
ne
viole
pas
les
invariants
du
système.
Etat cohérent
i +1 Contraintes
-‐ T
est
correcte
selon
la
sémantique
de
d'intégrité
Ex
:
début-‐Transaction début-‐Transaction début-‐Transaction
x=0 x=0 x=0
x=x+1 x=x+2 x=x+4
fin-‐Transaction fin-‐Transaction fin-‐Transaction
•Cohérence
(Réplication)
– Toutes
les
copies
sont
identiques
– Le
plan
d’exécution
qui
maintient
la
cohérence
des
copies
est
:
one-‐copy
serializable.
– Un
plan
d’exécution
est
“one-‐copy
serializable”
si
chaque
plan
est
sérialisable
et
si
tt
couple
d’opérations
en
conflits
se
retrouvent
dans
le
même
ordre
dans
les
plans
locaux
d’exécution
Pessimiste Optimiste
Verrouillage Estampille
Ordonnancement :
//
Ti accède
à
un
fragment
estampillé
j
-‐ Si
j
≤
i
alors
Ti peut
s’exécuter
//
Ti postérieure
à
Tj
Sinon
annuler
Tj,
exécuter
Ti &
reprise
ultérieure
de
Tj avec
estampille
e
>
j
Chaque
Sj :
– Si
validation
possible
alors
journalisation
et
envoie
<Prêt
T>
à
Ci
Sinon
journalisation
<no
T>
et
envoie
<Abort
T>
à
Ci
2016-2017 D. Chiadmi 142
Protocole
de
Validation
à
2
ϕ
PHASE 2
CAS
REUSSITE :
T
validée
si
tous
les
<Prêt
T>
parvenus
– Journalisation
<Commit
T>
sur
Ci
– Envoie
<
Commit
>
aux
sites
Sj
impliqués
– Les
Sj
envoie
ACKj
à
Ci
– Ci
journalise
<Complète
T>
après
réception
des
ACK
CAS
ECHEC :
Si
un
des
Sj
répond
<Abort
T>
ou
tous
les
<Prêt
T>
non
parvenus
à
Ci
dans
un
délai
d
– Ci
journalise
<Abort
T>
– envoie
<Abort
T>
aux
Sj
– Les
Sj
envoie
ACKj
à
Ci
– Ci
journalise
<Complète
T>
après
réception
des
ACK
2016-2017 D. Chiadmi 143
2PC
:
Algorithme
coordonateur
Step C1 : Ordre vote
Write ‘begin global commit’ message to log // journal
Send ‘vote’ message to all participants
Wait until vote received from all participants
On timeout go to step C2b
Step C2a : Global commit
If all votes are ‘commit’
Then Write ‘global commit’ record to log
Send ‘global commit’ to all participants
Step C2b : Global abort
Else //si au -1participant abort ou temporisateur(C)expire
Write ‘global abort’ record to log
Send ‘global abort’ to all participants End-if
Step C3 : Terminaison
Wait until ack received from all participants
Write ‘ end global’ transaction record’ to log
Step P1 : Vote
If vote = ‘commit’ then send ‘commit’ to C
Else send ‘abort’ and goto step P2b
Wait until global vote received from C
Step P3 : Terminaison
Send ack to C
Finish
2016-2017 D. Chiadmi 145
Pbs
• Coordonnateur
ne
reçoit
pas
le
vote
(réglé
par
temporisateur)
• Participant
vote
mais
ne
reçoit
pas
la
décision
:
??
• Participant
a
subi
une
panne
pendant
le
process
:
??
Step C4 : Terminaison
Do until acknowledgements received from all participants
Wait
End-do
Write ‘ end transaction’ entry in log
Finish
• Distributed 2PC
• Inconvénient
– Gestion
des
copies
(l’exécution
concurrente
de
transactions
doit
être
équivalent
à
l’exécution
concurrente
de
ces
transactions
sur
une
BD
à
copie
unique)
-‐ Mode :
Synchrone :
inclure toutes
les
écritures
dans
une
même
transaction
répartie
Asynchrone :
chaque
écriture
est
réalisée
par
une
transaction
indépendante avec
éventuellement
des
rollbacks
en
cas
de
pbs. 2016-2017 D. Chiadmi 159
Algorithmes
Quorum
Consensus
-‐ Architecture :
Sites
équivalents
(n
copies)
chaque
copie
est
dotée
d’un
numéro
de
version
-‐ Stratégie
de
lecture :
Demander
le
numéro
de
version
à
QL copies,
lire
à
partir
de
la
copie
la
plus
fraîche
Schémas
locaux
conceptuels
Niv. intégration* Niv. Vues
Objectifs