SlideShare a Scribd company logo
1 of 60
Download to read offline
Bases de Données Réparties (BDRé)
Abdelouahed Sabri 2011/2012
abdelouahed.sabri@gmail.com
Clients, Distributeurs
Clients habitants Tétouan
Clients habitants Tanger
Distributeurs (Nom, Télé)
Plan
Introduction
C’est quoi une base de données répartie
Avantages et Inconvénients
Objectifs
Modélisation et conception
Fragmentation
Allocation
Répartition avancée
La pratique
Abdelouahed Sabri 2011/2012
2
Introduction
Architectures
Architecture centralisée:
• Programme d'application et SGBD sur même machine (même site),
Architecture client-serveur, notée 2-tiers:
• Programme d’application sur le client et SGBD sur le serveur,
Architecture 3-tiers:
• Interface utilisateur sur le client, programme d’application sur le serveur
d’application et le SGBD sur le serveur de données.
Bases de données
Centralisées
Réparties ou distribuées
Fédérées
Multi-bases Abdelouahed Sabri 2011/2012
3
Introduction
BD centralisée:
Gérée par un seul SGDB,
Stockée dans un emplacement physique unique,
Les traitements sont confiés à une seule et même unité.
Multi-base:
Plusieurs SGBD, hétérogènes ou non, capables d’inter-opérer sans modèle
commun (vue commune),
BD Fédérée:
Plusieurs SGBD hétérogènes sont utilisés comme un seul via un modèle commun
(vue commune)
 Ex: Utilisés dans la fusion ou acquisition des bases de données de compagnies
BD Répartie:
Un seul système gérant une collection de bases de données logiquement reliées
qui sont réparties sur différents sites accessible via un modèle commun (vue
commune)
Abdelouahed Sabri 2011/2012
4
Introduction
Différence entre bases de données réparties et le modèle
client-serveur
Abdelouahed Sabri 2011/2012
5
Client-Serveur Bd Répartie
Plusieurs bases vues par le client Une base logique vue par l’utilisateur
Plusieurs connexions Une seule connexion
Localisation explicite des bases (« connection
string » ou DSN)
Indépendance à la localisation
Règles de localisation dans l’application Règles 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
l’application
Synchronisation automatique des n sous-
transactions
Plusieurs COMMIT mono-base 1 COMMIT généralisé
Introduction
Pourquoi répartir?
Besoin de décentralisation des organisations,
Partage de données géographiquement reparties.
Principe de la répartition:
Les données et traitements sont répartis sur différents
sites interconnectés par un réseau de communication.
 La défaillance d'un site ne peut pas entraîner
l'indisponibilité totale du système et sa probabilité peut
être négligée grâce à la tolérance aux fautes, assurée par
la redondance des informations et des traitements.
Abdelouahed Sabri 2011/2012
6
Introduction
Système de Gestion de Bases de Données Réparties
Constitué d'un ensemble de processeurs autonomes
«appelés sites » (stations de travail, micro-ordinateurs, …)
reliés par un réseau de communication qui leur permet
d'échanger des données.
Un SGBDRé suppose que les données soient stockées sur
au moins deux sites.
• Chaque site est doté de son propre SGBD.
Abdelouahed Sabri 2011/2012
7
Introduction
Avantages de répartir les données
Limiter le transfert d'information (en nombre et en volume)
en répartissant les données là où elles sont le plus utilisées.
Ceci est particulièrement important pour une base de données dont
les différents utilisateurs sont géographiquement dispersés
 Exemple: Des agences d'une banque
La répartition de charge de travail sur plusieurs unités de
traitement opérant en parallèle permet d’accroître les
performances.
Augmenter la fiabilité et la disponibilité en dupliquant les
données sur plusieurs sites
 Exemple: Comptes bancaires
Abdelouahed Sabri 2011/2012
8
Introduction
Inconvénients de répartir les données
Inconvénients
Complexité des SGBDs,
Problème de concurrence d’accès,
Surcoût du traitement: la distribution de données
entraine des communications inter-sites,
Sécurité.
Abdelouahed Sabri 2011/2012
9
Introduction
Exemple 1:
Abdelouahed Sabri 2011/2012
10
Clients, Distributeurs
Clients habitants Tétouan
Clients habitants Tanger
Distributeurs (Nom, Télé)
Introduction
Exemple 2: Une banque peut avoir des agences à Casa, à Rabat et à Fès.
BD centralisée:
1. Le siège principal de la banque gérerait tous les comptes des clients,
2. Les agences devraient communiquer avec le siège social pour avoir accès
aux données.
BD répartie:
• Les informations sur les comptes sont distribuées dans les agences et celles-ci
sont interconnectées (entièrement ou partiellement) afin qu'elles puissent
avoir accès aux données externes.
Cependant, la répartition de la base de données bancaire est invisible aux
agences en tant qu'utilisateurs, et la seule conséquence directe pour elles est
que l'accès à certaines données est beaucoup plus rapide.
Abdelouahed Sabri 2011/2012
11
Objectifs d’une base de données repartie
Les 12 principaux objectifs définis par C.J. Date[1] sont:
Abdelouahed Sabri 2011/2012
12
1) Transparence pour l’utilisateur,
2) Autonomie de chaque site,
3) Absence de site privilégié,
4) Continuité de service,
5) Transparence vis-à-vis de la
localisation de données,
6) Transparence vis-à-vis de la
fragmentation,
7) Transparence vis-à-vis de la
réplication,
8) Traitement réparti des requêtes,
9) Indépendance vis-à-vis du
matériel,
10) Indépendance vis-à-vis du
système d’exploitation,
11) Indépendance vis-à-vis du
réseau,
12) Indépendance vis-à-vis du
SGBD
[1] C.J. Date: auteur du livre An Introduction to Database Systems (8th Edition)
Objectifs d’une base de données repartie (suite)
Transparence de localisation:
Les utilisateurs accèdent au schéma conceptuel via des
vues. Un utilisateur ne sait pas sur quel site se trouvent
physiquement les données
• Exemple: un client peut ouvrir un compte à Fès et effectuer
régulièrement des opérations à Rabat  C'est le système qui
recherche le site où sont mémorisées ses informations et non
l'utilisateur qui doit l'indiquer.
Abdelouahed Sabri 2011/2012
13
Objectifs d’une base de données repartie (suite)
Transparence de partitionnement:
l’utilisateur ne sait pas comment la base est partitionnée.
Transparence de duplication:
l’utilisateur ne sait pas s’il existe plusieurs copies d'une même
information ou non.
Lors de la modification d'une information, c'est le système qui doit se
préoccuper de mettre à jour toutes les copies.
 Exemple: Un client possède des comptes (courant, épargne logement, ...) à
Fès mais effectue régulièrement des retraits d'argent à Rabat, les
informations le concernant soient réparties entre Fès à Rabat: l'historique
des opérations du compte courant est conservé à Rabat, la gestion de ses
autres comptes est assurée à Fès, et le solde du compte courant est dupliqué
à Fès et Rabat.
Abdelouahed Sabri 2011/2012
14
Objectifs d’une base de données repartie (suite)
Indépendance vis-à-vis du SGBD:
Un système réparti ne doit pas être dépendant en aucun cas des
différents SGBDs, la relation globale doit être exprimée dans un
langage normalisé indépendant des constructeurs.
Autonomie de chaque site:
Vise à garder une administration locale séparée et indépendante
pour chaque serveur participant à la base de données répartie afin
d'éviter une administration centralisée.
• Toute manipulation sur un site (reprise après panne, mises à jour des
logiciels) ne doit pas altérer le fonctionnement des autres sites.
Abdelouahed Sabri 2011/2012
15
Modélisation d’une base de données réparties
Une base de données est généralement modélisée en 3 niveaux:
Externe, Conceptuel et Interne.
Schéma interne: Description de l’organisation physique des données 
Stockage physique
Schéma conceptuel: Description d’univers à modéliser avec
éventuellement les contraintes liés à ces objets (contraintes d’intégrités)
 Domaine des concepteurs de Bases de données
Schéma externe: Application accédant aux données : des vues (accès
limités)  Domaine des créateurs d’applications
 L’avantage de se découpage est de permettre des modifications à un
niveau sans que cela interfère (le moins possible) sur les autres
niveaux
Abdelouahed Sabri 2011/2012
16
Modélisation d’une base de données réparties
Pour une base de données réparties, la répartition a lieu dans les
trois niveaux:
Abdelouahed Sabri 2011/2012
17
 les vues des utilisateurs sont présentées
sur leur site (site utilisateur); elles
correspondent au niveau externe.
 Il y a donc répartition des vues.
 le schéma conceptuel (global) est associé
aux schémas locaux des sites physiques
via un schéma de fragmentation (la
manière dont la base est découpée) et un
schéma d'allocation (la manière dont les
fragments sont répartis).
 il n'y a pas de schéma interne global,
mais des schémas locaux internes.
Conception d’une base de données répartie
La définition du schéma de répartition est la partie la plus
délicate de la phase de conception d'une base de données
répartie:
Il n y’a pas de méthode standard  on se base sur les besoins,
L'administrateur (le concepteur) doit prendre des décisions sur
comment la répartition doit être faite.
L'objectif est de minimiser:
• le nombre de transferts entre sites,
• les temps de transfert,
• le volume de données transférées,
• les temps moyens de traitement des requêtes,
• le nombre de copies de fragments.
Abdelouahed Sabri 2011/2012
18
Conception d’une base de données répartie
Méthodes de conception:
Deux approches fondamentales sont à l'origine de la
conception des bases de données réparties :
1. La conception descendante (Top down design),
2. La conception ascendante (Bottom up design).
NB: Pour les deux approches il faut recueillir l'expression
des besoins des utilisateurs afin de créer un schéma
conceptuel unique et en déduire les vues externes à prévoir.
Abdelouahed Sabri 2011/2012
19
Conception d’une base de données répartie
Conception descendante
Conception du schéma conceptuel global de la base de données
répartie,
Création du schéma de fragmentation :
• la base de données sera découpée en fragments distincts constituant
une partition de la base  l'intersection de ces fragments doit être
vide et leur réunion doit redonner le schéma global.
Création du schéma d'allocation :
• les fragments doivent être distribués entre les différents sites.
Création d'un schéma local pour chaque site, relatif aux fragments
dévolus à ce site,
Création des schémas internes :
• implémentation des données des fragments sur les supports physiques
de stockage. Abdelouahed Sabri 2011/2012
20
Conception d’une base de données répartie
Conception ascendante
Il existe plusieurs bases de données disjointes (plusieurs schémas
conceptuels locaux) qu’il faut réunir en un schéma conceptuel
global
• Intégration (fédération) des BD existantes
Abdelouahed Sabri 2011/2012
21
Fragmentation
Définition:
On définit la fragmentation comme étant le processus de décomposition
d'une base de donnée logique (telle que la voient les utilisateurs) en un
ensemble de « sous »-bases de données appelés fragments.
Caractéristiques:
 La fragmentation doit être sans perte d'information,
 Pour toute donnée d’une table R, il existe un fragment Ri de la table R qui possède
cette donnée.  Règle de complétude
 La non perte d'informations est vérifiée par recomposition de la base à partir des
différents fragments en utilisant le langage de manipulation de données (SQL par
exemple)  leur réunion doit redonner le schéma global  Règles de reconstruction
 Les différents fragments doivent « de préférence » être exclusifs (leur
intersection est vide)
 Dans le cas contraire on parle de duplication  il faut affiner la fragmentation
Abdelouahed Sabri 2011/2012
22
Fragmentation
Techniques de fragmentation
Il existe différentes façons pour fragmenter une base de données
L'unité de fragmentation détermine la nature de l'élément le plus
petit dont les composants ne peuvent être fragmentés
• On parle de granularité: taille du plus petit élément
Une granularité fine donne de grandes possibilités pour la fragmentation et
autorise une répartition flexible et efficace de la base de données, mais à
l'inconvénient de provoquer une certaine lourdeur pour la recomposition des
informations.
A l'opposé, une granularité élevée permet une gestion simple de la
fragmentation, mais fournit des possibilités très limitées pour la fragmentation.
L'unité de fragmentation est généralement laissée au libre choix de
l'administrateur.
Il y a quatre unités de fragmentation de base: Relations, Tuples,
Attributs, Valeurs
Abdelouahed Sabri 2011/2012
23
Fragmentation
Fragmentation par relation (classe d’objets)
Ce sont les classes (relation ou table dans le modèle relationnel,
entité en Entité-Association, classe dans le modèle orienté-objet)
qui peuvent être réparties dans des fragments différents.
Les fragments sont définis à partir des "classes" de la base de données.
Toutes les occurrences d'une même classe appartiennent au même fragment.
L'opération de partitionnement est la définition de sous schémas.
L'opération de recomposition est la réunion de sous schémas.
Abdelouahed Sabri 2011/2012
24
Fragmentation
Fragmentation par relation (suivant)
Exemple: Banque
• Trois tables: Agence, Clients, Compte
Abdelouahed Sabri 2011/2012
25
Compte
NoClient Agence TypeCompte Somme
174 723 Lausanne courant 123 345.89
177 498 Genève courant 34 564.00
201 639 Lausanne courant 45 102.50
201 639 Lausanne dépôt 325 100.00
203 446 Genève courant 274 882.95
Client
NoClient NomClient Prénom Age
174 723 Villard Jean 29
177 498 Cattell Blaise 38
201 639 Tesllis Alan 51
203 446 Kovalsky Validmir 36
Agence
Agence Adresse
Lausanne Rue du Lac, 3, 1002 Lausanne
Genève Avenue du Mont Blanc, 21, 1200 Genève
• Cette base peut être fragmentée en deux
fragments: {Compte, Client} et
{Agence}.
Fragmentation
Fragmentation horizontale
Appelée aussi fragmentation par occurrences ou par tuples,
La fragmentation horizontale est basée sur un découpage
(horizontal) des tuples des tables
• Les occurrences d'une même table peuvent être réparties dans des
fragments différents (avec tous les attributs)
• Le découpage est effectué en utilisant la sélection,
• La reconstruction est effectuée en utilisant l’opération d’union.
Abdelouahed Sabri 2011/2012
26
Fragmentation
Fragmentation horizontale (suivant)
Exemple: Banque
• La table Compte peut être divisée en deux fragments par répartition
des tuples en deux catégories :
• Compt1 = σ TypeCompte = courant(Compte)
• Compt2 = σ TypeCompte = dépôt (Compte)
Abdelouahed Sabri 2011/2012
27
Compt1
NoClient Agence TypeCompte Somme
174 723 Lausanne courant 123 345.89
177 498 Genève courant 34 564.00
201 639 Lausanne courant 45 102.50
203 446 Genève courant 274 882.95
Compt2
NoClient Agence TypeCompte Somme
201 639 Lausanne dépôt 325 100.00
• La recomposition est réalisée par une opération d’union
Compte = Compt1 ∪ Compt2
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 même relation qui peuvent
être répartis dans des fragments différents.
• Toutes les valeurs des occurrences pour un même attribut se trouvent dans le
même fragment.
• La répartition des attributs dans différents 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 (décomposition sans perte
d'informations.
Le découpage d'une relation en sous tables est effectuée utilisant la
projection sur les colonnes composant chaque fragment.
La reconstruction est effectuée par jointure des différents
fragments.
Abdelouahed Sabri 2011/2012
28
Fragmentation
Fragmentation verticale (suite)
Exemple: Banque
• Dans les guichets bancaires on n’a besoin de connaître que les soldes des
comptes, alors que les services de contentieux ont besoin de connaître les
informations complètes sur chaque client.
• Compt1 = ∏ NoClient, Somme(Compte)
• Compt1 = ∏ Noclient, Agence, TypeCompte(Compte)
Abdelouahed Sabri 2011/2012
29
Compt1
NoClient Somme
174 723 123 345.89
177 498 34 564.00
201 639 45 102.50
201 639 325 100.00
203 446 274 882.95
Compt2
NoClient Agence TypeCompte
174 723 Lausanne courant
177 498 Genève courant
201 639 Lausanne courant
201 639 Lausanne dépôt
203 446 Genève courant
• La recomposition est réalisée
par une opération de jointure
Compte = Compt1 |x| Compt2
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
sélections.
• Les occurrences et les attributs peuvent donc être répartis dans des différents
fragments.
La reconstruction est effectuée par combinaison de jointures et
d'unions des différents fragments.
Abdelouahed Sabri 2011/2012
30
Fragmentation
Fragmentation hybride (par valeurs)
Exemple: Banque
• Compt1 = ∏ NoClient, Somme (σ TypeCompte = courant(Compte))
• Compt2 = ∏ NoClient, Somme ( σ TypeCompte = dépôt (Compte))
• Compt3 = ∏ NoClient, AgenceCompte)
• Compt4 = ∏ Noclient, TypeCompte(Compte)
Abdelouahed Sabri 2011/2012
31
Compt1
NoClient Somme
174 723 123 345.89
177 498 34 564.00
201 639 45 102.50
203 446 274 882.95
Compt2
NoClient Somme
201 639 325 100.00
Compt4
NoClient TypeCompte
174 723 courant
177 498 courant
201 639 courant
201 639 dépôt
203 446 courant
• La reconstruction
Compte= (Compt1 ∪ Compt2 ) |x| Compt3 |x| Compt4
Compt3
NoClient Agence
174 723 Lausanne
177 498 Genève
201 639 Lausanne
201 639 Lausanne
203 446 Genève
Fragmentation
Méthodologie de la fragmentation horizontale
Question: Comment décomposer une base de données en
fragments horizontaux???
On se base sur les requêtes d'interrogation ou de mise à jour les
plus importantes et les plus fréquentes.
Pour le cas de la fragmentation horizontale on se base sur les
conditions de sélections.
• Soient c1, c2, ..., cn les conditions de sélection qui ont été extraites
des requêtes,
• On forme l'ensemble des 2n conjonctions de conditions où chaque
condition élémentaire est prise dans sa forme positive ou dans sa
forme négative
Abdelouahed Sabri 2011/2012
32
• On ôte de cet ensemble les conjonctions de condition qui sont toujours
fausses, et on simplifie les autres.
Fragmentation
Méthodologie de la fragmentation horizontale
Exemple:
On considère une table CUISINIER que l'on se propose de répartir
en fragments horizontaux
Abdelouahed Sabri 2011/2012
33
On commencera par se baser sur les requêtes les plus fréquentes:
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';
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
Fragmentation
Méthodologie de la fragmentation horizontale
Exemple (suite):
Pour effectuer la fragmentation horizontale on se base sur les critères de
recherche, c'est à dire les conditions exprimées dans les "WHERE" des
ordres SQL.
• Soit
– A : prenom = 'Jean‘
– B : nom LIKE '%R%‘
– C : numeq = '1‘
– D : numeq = '2‘
• Les condition de sélection:
– 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 :
Abdelouahed Sabri 2011/2012
34
CC = {C1 ʌ C2 ʌ C3, ¬C1 ʌ C2ʌ C3, C1ʌ ¬C2ʌ C3, C1ʌ C2ʌ ¬C3, ¬C1ʌ ¬C2ʌ C3, C1ʌ ¬C2ʌ ¬C3,
¬C1ʌ C2ʌ ¬C3, ¬C1ʌ ¬C2ʌ ¬C3}
Fragmentation
Méthodologie 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 hypothèse supplémentaire (contrainte d’intégrité) ,
qu'il n'y a que deux équipes de cuisiniers (1 et 2) ce qui implique
• ¬Cʌ ¬D = Φ, ¬C = D, ¬D = C
Abdelouahed Sabri 2011/2012
35
Fragmentation
Méthodologie 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
36
Fragmentation
Méthodologie de la fragmentation horizontale
Exemple (suite):
Ces 5 conditions définissent les fragments horizontaux (exclusifs) :
Abdelouahed Sabri 2011/2012
37
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
F1
NUMERO NOM PRENOM NUMEQ
13 DURDUR Jean 2
F2
NUMERO NOM PRENOM NUMEQ
20 DURALEX Jean 1
F3
NUMERO NOM PRENOM NUMEQ
26 DUGENOU Jean 2
F4
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
17 DUBOIS Robert 1
22 DUBALAI Aline 1
9 DURALUMIN Roberte 1
F5
NUMERO NOM PRENOM NUMEQ
34 DUPONT Jeanne 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
Fragmentation
Fragmentation
Méthodologie de la fragmentation horizontale
Exercice:
On considère la table Compte (NoClient, Agence, TypeCompte,
Somme) . Proposer un schéma de fragmentation horizontal en
tenant compte des requêtes suivantes
• R1 = ∏ NoClient, Agence (σTypeCompte = 'courant' and Somme > 100000(Compte))
• R2 = σ Agence = 'Lausanne’(Compte)
• R3 = ∏ NoClient, Somme(σ Agence = ' Genève’ and TypeCompte = 'courant' (Compte))
Abdelouahed Sabri 2011/2012
38
Compte
NoClient Agence TypeCompte Somme
174 723 Lausanne courant 123 345.89
177 498 Genève courant 34 564.00
201 639 Lausanne Courant 45 102.50
201 639 Lausanne Dépôt 325 100.00
203 446 Genève Courant 274 882.95
Fragmentation
Méthodologie de la fragmentation verticale
Question: Comment décomposer une base de données en
fragments verticaux???
On se base les requêtes d’interrogation ou de mise à jour
prédéfinies les plus importantes et les plus fréquentes pour extraire
les attributs concernés
• 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 utilisés pour que la décomposition soit
sans perte d'information (reconstruction).
Abdelouahed Sabri 2011/2012
42
Fragmentation
Méthodologie 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 requêtes,
On forme l'ensemble des 2n intersections des expressions de
projection où chacune est soit l'expression initiale soit son
complément.
Abdelouahed Sabri 2011/2012
43
On ôte de cet ensemble les conjonctions de condition qui sont
toujours fausses, et on simplifie les autres.
NB: Dans le cas où la requête ne possède pas d’attributs de jointure il
faut les ajouter.
Fragmentation
Méthodologie de la fragmentation verticale
Exemple :
On considère une table CUISINIER que l'on se propose de répartir
en fragments verticaux
Abdelouahed Sabri 2011/2012
44
On commencera par se baser sur les requêtes les plus fréquentes:
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';
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
Fragmentation
Méthodologie de la fragmentation verticale
Exemple (suite):
Pour effectuer la fragmentation verticale on se base sur les projections
utilisées:
• P1 : (numero, numeq)
• P3 : (numero, nom)
• P2 n'est pas considérée comme une projection car tous les attributs sont
demandés dans la requête
A partir des projection Pi, on construit l'ensemble IP des intersections de
projections :
Abdelouahed Sabri 2011/2012
45
Où ¬Pj désigne le complément de Pj sur l'ensemble des attributs de la table
CUISINIER avec l'ajout obligatoire de la clé numero :
• ¬P1 = (numero, nom, prenom)
• ¬P3 = (numero, prenom, numeq)
 IP = { P1 ∩ P3, ¬ P1 ∩ P3, P1 ∩ ¬P3, ¬P1 ∩ ¬P3}
Fragmentation
Méthodologie de la fragmentation verticale
Exemple (suite):
P1 ∩ P3 = (numero, numeq) ∩ (numero, nom) = (numero)
¬ P1 ∩ P3= (numero, nom, prenom) ∩ (numero, nom) = (numero, nom)
P1 ∩ ¬P3= (numero, numeq) ∩ (numero, prenom, numeq)= (numero, numeq)
¬P1 ∩ ¬P3 = (numero, nom, prenom) ∩ (numero, prenom, numeq)= (numero, prenom)
 Fragments verticaux:
F1 = ∏numero(Cuisinier)
F2 = ∏numero, nom(Cuisinier)
F3 = ∏numero, numeq(Cuisinier)
F4 = ∏numero, prenom(Cuisinier)
Abdelouahed Sabri 2011/2012
46
Fragmentation
Méthodologie de la fragmentation hybride
C’est la combinaison des deux fragmentations: horizontale et verticale.
Abdelouahed Sabri 2011/2012
47
F1
NUMERO NOM PRENOM NUMEQ
13 DURDUR Jean 2
F2
NUMERO NOM PRENOM NUMEQ
20 DURALEX Jean 1
F3
NUMERO NOM PRENOM NUMEQ
26 DUGENOU Jean 2
F4
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
17 DUBOIS Robert 1
22 DUBALAI Aline 1
9 DURALUMIN Roberte 1
F5
NUMERO NOM PRENOM NUMEQ
34 DUPONT Jeanne 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
Fragments
horizontaux
Pour chaque fragment horizontal, on
regarde quelles sont les requêtes qui
les concernent (sélection):
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
Méthodologie de la fragmentation hybride
Les intersections de projection de chacun des fragments
horizontaux, avec les fragments correspondants sont donc:
Abdelouahed Sabri 2011/2012
48
F1
NUMERO NOM PRENOM NUMEQ
13 DURDUR Jean 2
F2
NUMERO NOM PRENOM NUMEQ
20 DURALEX Jean 1
F3
NUMERO NOM PRENOM NUMEQ
26 DUGENOU Jean 2
F4
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
17 DUBOIS Robert 1
22 DUBALAI Aline 1
9 DURALUMIN Roberte 1
F5
NUMERO NOM PRENOM NUMEQ
34 DUPONT Jeanne 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
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';
R1 R3
R1 R2
R3
R2
Aucune
Fragmentation
Méthodologie de la fragmentation hybride
Le fragment 1 est concerné par les requêtes R1 et R3, donc par tous les éléments
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 requêtes 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 requête 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 requête R2, donc par tous les attributs
IP4 = {(numero, nom, prenom, numeq)}
Le fragment 5 n'est concerné par aucune des requêtes, donc par tous les attributs :
IP5 = {(numero, nom, prenom, numeq)}
Abdelouahed Sabri 2011/2012
49
Fragmentation
Méthodologie de la fragmentation hybride
Les différents fragments:
Abdelouahed Sabri 2011/2012
50
F21
NUMERO NUMEQ
20 1
F32
NUMERO PRENOM NUMEQ
26 Jean 2
F41
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
17 DUBOIS Robert 1
22 DUBALAI Aline 1
9 DURALUMIN Roberte 1
F51
NUMERO NOM PRENOM NUMEQ
34 DUPONT Jeanne 2
11 DURAND Aline 2
38 DURACUIRE ROBERT 2
F11
NUMERO
13
F12
NUMERO NOM
13 DURDUR
F13
NUMERO NUMEQ
13 2
F14
NUMERO PRENOM
13 Jean
F22
NUMERO NOM PRENOM
20 DURALEX Jean
F31
NUMERONOM
26 DUGENOU
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
Schéma d’allocation
Après la fragmentation, la question qu’ont doit se poser est:
Ou seront affectés chacun des fragments???
L'affectation des fragments sur les sites est décidée en fonction de
l'origine prévue des requêtes qui ont servi à la fragmentation.
Pour chaque requête:
On connaît l'ensemble des sites qui sont susceptible d'émettre cette
requête,
On possède de l'ensemble des fragments qui sont concernés par la
requête.
 Placer les fragments sur les sites où ils sont le plus utilisés, pour
minimiser les transferts de données entre les sites.
Pour définir le schéma de localisation, on recherche:
Priorité 1: D'où sont émises les requêtes de sélection
Priorité 2: D'où sont faites les mises à jour
Abdelouahed Sabri 2011/2012
51
Schéma d’allocation
Exemple:
reprenons l'exemple précédent et supposons que deux sites
soient pris en considération A et B
R1: SELECT numero, numeq FROM CUISINIER WHERE prenom = 'Jean'
AND nom LIKE '%R%';
R2: SELECT * FROM CUISINIER WHERE numeq = '1';
R3: SELECT numero, nom FROM CUISINIER WHERE numeq = '2' AND
prenom = 'Jean';
Abdelouahed Sabri 2011/2012
52
Schéma d’allocation
Exemple (suite):
Supposons que la requête R1 est émise de A ou B, que la requête R2 est
émise de A seulement et que la requête R3 est émise de B seulement.
Pour les trois requêtes, les fragments suivants sont concernés :
• 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 requête R1 ou R2
– Le fragment 11 peut appartenir a toutes les Requêtes
– Le fragment 51 n’appartient à aucune requête
– Le fragment 32 n’appartient à aucune requête
– Le fragment 14 n’appartient à aucune requête
 On doit faire des choix pour ces fragments de façon à équilibrer les sites
Abdelouahed Sabri 2011/2012
53
Schéma d’allocation
Exemple (suite):
Supposons que la requête R1 est émise de A ou B, que la requête R2 est
émise de A seulement et que la requête R3 est émise de B seulement.
Pour les trois requêtes, les fragments suivants sont concernés :
• R1  fragment13
• R2  fragments 21, 22 et 41
• R3  fragments 12 et 31
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
54
• Le fragment 21 peut appartenir à la requête R1 ou R2
• Le fragment 11 peut appartenir a toutes les Requêtes
• Les fragments 51, 32 et 14 n’appartiennent à aucune requête
Les mises-à-jour
Les mises à jour consistent en trois opérations: insertion
(INSERT), suppression (DELETE) et modification
(UPDATE).
Insertion
Exemple: insérer 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 présent, il s'agit de CC3) ; ensuite il faut insérer le
tuple dans tous les fragments verticaux.
Abdelouahed Sabri 2011/2012
55
F32
NUMERO PRENOM NUMEQ
26 Jean 2
21 Jean 2
F31
NUMERONOM
26 DUGENOU
21 DUBOUT
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 concernées.
 On cherchera donc dans les fragments correspondants
Abdelouahed Sabri 2011/2012
56
F41
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
17 DUBOIS Robert 1
22 DUBALAI Aline 1
9 DURALUMIN Roberte 1
F32
NUMERO PRENOM NUMEQ
26 Jean 2
21 Jean 2
F31
NUMERONOM
26 DUGENOU
21 DUBOUT
F41
NUMERO NOM PRENOM NUMEQ
12 DUPONT Jean 1
17 DUBOIS Robert 1
22 DUBALAI Aline 1
9 DURALUMIN Roberte 1
F32
NUMERO PRENOM NUMEQ
26 Jean 2
F31
NUMERONOM
26 DUGENOU
Les mises-à-jour
Suppression (suite):
Exemple: supprimer le cuisinier de numéro 21
DELETE FROM CUISINIER WHERE numero = 21 ;
Aucune CC n’est concernée
 Il faut chercher dans tous les fragments
Abdelouahed Sabri 2011/2012
57
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 concernées.
 On modifie puis on vérifie que les CC son toujours vérifiées:
• Puisque numeq = 1, il faut l’enlever du fragment F3 et F5
• On déplace alors le tuple dans le fragment 4.
Abdelouahed Sabri 2011/2012
58
Répartition avancée
Dans le cas où la méthode classique de fragmentation-
allocation ne s'avère pas satisfaisante, on peut faire appel à
des techniques plus puissantes (mais aussi plus complexes
à mettre en œuvre):
L'allocation avec duplication de fragments,
L'allocation dynamique des fragments,
La fragmentation dynamique.
Abdelouahed Sabri 2011/2012
60
Répartition avancée
Allocation avec duplication
Certains fragments peuvent être dupliquées sur plusieurs sites
(éventuellement sur tous les sites)
Avantages:
 Elle permet d’améliorer les performances en terme de temps d'exécution
des requêtes (en évitant certains transferts de données).
 Elle permet une meilleure disponibilité des informations (connues de
plusieurs sites),
 Elle permet une meilleure fiabilité contre les pannes.
Inconvénient:
 les mises à jour doivent être effectuées sur toutes les copies d'une même
donnée.
En conséquence:
moins un fragment est sujet à des modifications et plus il est prédisposé à
la duplication. Abdelouahed Sabri 2011/2012
61
Répartition avancée
Allocation avec duplication
Deux types de duplication: synchrone et asynchrone.
Duplication synchrone:
• La sérialisabilité est assurée sur l’ensemble des nœuds
• Une transaction est confirmée seulement lorsque tous les sites ont été
mis-à-jour
Duplication asynchrone:
• Les mises-à-jour sont d’abord faites sur une copie primaire
• Les sites de réplication sont mis-à-jour en différé, à partir de la
copie primaire, après la confirmation de la transaction
• Ex. d’implémentation: vues matérialisées (eq. SNAPSHOTs)
Abdelouahed Sabri 2011/2012
62
Répartition avancée
Allocation dynamique
Ici, l'allocation d'un fragment peut changer en cours
d'utilisation de la BDR:
Le schéma d'allocation et les schémas locaux doivent être tenus à
jour.
Peut être utilisée comme une alternative à la duplication  elle se
révèle plus efficace lorsque la base de données est disposée à de
nombreuses mises à jour.
Abdelouahed Sabri 2011/2012
63
Répartition avancée
Fragmentation dynamique
Dans le cas où le site d'allocation peut changer
dynamiquement, il est possible que deux fragments
complémentaires (verticalement ou horizontalement) se
retrouvent sur le même site. Il est alors normal de les
fusionner.
A l'inverse, si une partie d'un fragment est appelée sur un
autre site, il peut être intéressant de décomposer ce
fragment et de ne faire migrer que la partie concernée.
Ces modifications du schéma de fragmentation se reflètent
sur le schéma d'allocation et sur les schémas locaux.
Abdelouahed Sabri 2011/2012
64

More Related Content

What's hot

Architectures distribuées
Architectures distribuéesArchitectures distribuées
Architectures distribuéesFranck SIMON
 
La spécification des besoins
La spécification des besoinsLa spécification des besoins
La spécification des besoinsIsmahen Traya
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiqueOussama Yoshiki
 
applications-reparties
applications-repartiesapplications-reparties
applications-repartiesmourad50
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services webCHOUAIB EL HACHIMI
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence Yassine Badri
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrigeAmineMouhout1
 
Conception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data WarehouseConception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data WarehouseAbderrahmane Filali
 
base de données fédérés
base de données fédérésbase de données fédérés
base de données fédérésOussama Yoshiki
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2Amal Abid
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...ENSET, Université Hassan II Casablanca
 
Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)Mohamed Heny SELMI
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataLilia Sfaxi
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
BigData_TP5 : Neo4J
BigData_TP5 : Neo4JBigData_TP5 : Neo4J
BigData_TP5 : Neo4JLilia Sfaxi
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduceAmal Abid
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data MiningTakfarinas KENOUCHE
 

What's hot (20)

Architectures distribuées
Architectures distribuéesArchitectures distribuées
Architectures distribuées
 
La spécification des besoins
La spécification des besoinsLa spécification des besoins
La spécification des besoins
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatique
 
applications-reparties
applications-repartiesapplications-reparties
applications-reparties
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services web
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
 
Middleware
MiddlewareMiddleware
Middleware
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
Conception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data WarehouseConception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data Warehouse
 
base de données fédérés
base de données fédérésbase de données fédérés
base de données fédérés
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
 
Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
Power Bi, le tour complet 2017
Power Bi, le tour complet 2017 Power Bi, le tour complet 2017
Power Bi, le tour complet 2017
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
BigData_TP5 : Neo4J
BigData_TP5 : Neo4JBigData_TP5 : Neo4J
BigData_TP5 : Neo4J
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data Mining
 

Similar to Bases de données réparties

chapitre 4-bddistribuesgnralites.pptx
chapitre 4-bddistribuesgnralites.pptxchapitre 4-bddistribuesgnralites.pptx
chapitre 4-bddistribuesgnralites.pptxSylia3
 
Bases de donnees fondamentaux
Bases de donnees fondamentauxBases de donnees fondamentaux
Bases de donnees fondamentauxRokhaya CISSE
 
Réussir sa migration vers le Cloud grâce à la virtualisation des données
Réussir sa migration vers le Cloud grâce à la virtualisation des donnéesRéussir sa migration vers le Cloud grâce à la virtualisation des données
Réussir sa migration vers le Cloud grâce à la virtualisation des donnéesDenodo
 
Matinale Technologique SAS
Matinale Technologique SASMatinale Technologique SAS
Matinale Technologique SASSoft Computing
 
SOA-Partie 2.pdf hvjhvhjvkhvhjvhvhvjhvkhv
SOA-Partie 2.pdf hvjhvhjvkhvhjvhvhvjhvkhvSOA-Partie 2.pdf hvjhvhjvkhvhjvhvhvjhvkhv
SOA-Partie 2.pdf hvjhvhjvkhvhjvhvhvjhvkhvamine17157
 
Journées ABES 2014 - Focus sur le projet SGBm
Journées ABES 2014 - Focus sur le projet SGBmJournées ABES 2014 - Focus sur le projet SGBm
Journées ABES 2014 - Focus sur le projet SGBmABES
 
Livre blanc data-lakes converteo 2018
Livre blanc data-lakes converteo 2018Livre blanc data-lakes converteo 2018
Livre blanc data-lakes converteo 2018Converteo
 
Intro SGBD et BD.ppt
Intro SGBD et BD.pptIntro SGBD et BD.ppt
Intro SGBD et BD.pptBahaty1
 
SAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSoft Computing
 
Conseils virtualisation serveurs
Conseils virtualisation serveursConseils virtualisation serveurs
Conseils virtualisation serveursPROJECT SI
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesLilia Sfaxi
 
Fujitsu IT Future 2013 : Le Cloud Computing vecteur de transformation d'ent...
Fujitsu IT  Future 2013 :  Le Cloud Computing vecteur de transformation d'ent...Fujitsu IT  Future 2013 :  Le Cloud Computing vecteur de transformation d'ent...
Fujitsu IT Future 2013 : Le Cloud Computing vecteur de transformation d'ent...Fujitsu France
 
DeciLogic, pourquoi mettre en place un SID ?
DeciLogic, pourquoi mettre en place un SID ?DeciLogic, pourquoi mettre en place un SID ?
DeciLogic, pourquoi mettre en place un SID ?Eric Mauvais
 
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...dbi services
 
Dwh udl 2014_2015_v0.22 - student
Dwh udl 2014_2015_v0.22 - studentDwh udl 2014_2015_v0.22 - student
Dwh udl 2014_2015_v0.22 - studentCarlos Sanin
 

Similar to Bases de données réparties (20)

chapitre 4-bddistribuesgnralites.pptx
chapitre 4-bddistribuesgnralites.pptxchapitre 4-bddistribuesgnralites.pptx
chapitre 4-bddistribuesgnralites.pptx
 
Bases dedonnees.net
Bases dedonnees.netBases dedonnees.net
Bases dedonnees.net
 
Intro SQL
Intro SQL Intro SQL
Intro SQL
 
Bases de donnees fondamentaux
Bases de donnees fondamentauxBases de donnees fondamentaux
Bases de donnees fondamentaux
 
Réussir sa migration vers le Cloud grâce à la virtualisation des données
Réussir sa migration vers le Cloud grâce à la virtualisation des donnéesRéussir sa migration vers le Cloud grâce à la virtualisation des données
Réussir sa migration vers le Cloud grâce à la virtualisation des données
 
Matinale Technologique SAS
Matinale Technologique SASMatinale Technologique SAS
Matinale Technologique SAS
 
SOA-Partie 2.pdf hvjhvhjvkhvhjvhvhvjhvkhv
SOA-Partie 2.pdf hvjhvhjvkhvhjvhvhvjhvkhvSOA-Partie 2.pdf hvjhvhjvkhvhjvhvhvjhvkhv
SOA-Partie 2.pdf hvjhvhjvkhvhjvhvhvjhvkhv
 
Journées ABES 2014 - Focus sur le projet SGBm
Journées ABES 2014 - Focus sur le projet SGBmJournées ABES 2014 - Focus sur le projet SGBm
Journées ABES 2014 - Focus sur le projet SGBm
 
Livre blanc data-lakes converteo 2018
Livre blanc data-lakes converteo 2018Livre blanc data-lakes converteo 2018
Livre blanc data-lakes converteo 2018
 
Si bdd
Si bddSi bdd
Si bdd
 
Intro SGBD et BD.ppt
Intro SGBD et BD.pptIntro SGBD et BD.ppt
Intro SGBD et BD.ppt
 
SAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSAS Forum Soft Computing Théâtre
SAS Forum Soft Computing Théâtre
 
Conseils virtualisation serveurs
Conseils virtualisation serveursConseils virtualisation serveurs
Conseils virtualisation serveurs
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées Services
 
Fujitsu IT Future 2013 : Le Cloud Computing vecteur de transformation d'ent...
Fujitsu IT  Future 2013 :  Le Cloud Computing vecteur de transformation d'ent...Fujitsu IT  Future 2013 :  Le Cloud Computing vecteur de transformation d'ent...
Fujitsu IT Future 2013 : Le Cloud Computing vecteur de transformation d'ent...
 
Propostion un Iaas
Propostion un IaasPropostion un Iaas
Propostion un Iaas
 
DeciLogic, pourquoi mettre en place un SID ?
DeciLogic, pourquoi mettre en place un SID ?DeciLogic, pourquoi mettre en place un SID ?
DeciLogic, pourquoi mettre en place un SID ?
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
 
Dwh udl 2014_2015_v0.22 - student
Dwh udl 2014_2015_v0.22 - studentDwh udl 2014_2015_v0.22 - student
Dwh udl 2014_2015_v0.22 - student
 

More from Abdelouahed Abdou

Chapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en CChapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en CAbdelouahed Abdou
 
Atelier 3 gestion de bases de données sous odoo
Atelier 3 gestion de bases de données sous odooAtelier 3 gestion de bases de données sous odoo
Atelier 3 gestion de bases de données sous odooAbdelouahed Abdou
 
Atelier2 Odoo: Gestion des Ressources Humaines (installation, employés, contr...
Atelier2 Odoo: Gestion des Ressources Humaines (installation, employés, contr...Atelier2 Odoo: Gestion des Ressources Humaines (installation, employés, contr...
Atelier2 Odoo: Gestion des Ressources Humaines (installation, employés, contr...Abdelouahed Abdou
 
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...Abdelouahed Abdou
 
Atelier1 mise en place d’odoo
Atelier1   mise en place d’odooAtelier1   mise en place d’odoo
Atelier1 mise en place d’odooAbdelouahed Abdou
 
Introduction au traitement d'images
Introduction au traitement d'imagesIntroduction au traitement d'images
Introduction au traitement d'imagesAbdelouahed Abdou
 
Tp Sql Server Integration Services 2008
Tp  Sql Server Integration Services  2008Tp  Sql Server Integration Services  2008
Tp Sql Server Integration Services 2008Abdelouahed Abdou
 
Pl/sql - interaction avec la base de données & structures de contrôle
Pl/sql  - interaction avec la base de données & structures de contrôlePl/sql  - interaction avec la base de données & structures de contrôle
Pl/sql - interaction avec la base de données & structures de contrôleAbdelouahed Abdou
 
Ajax (Asynchronous JavaScript and XML)
Ajax (Asynchronous JavaScript and XML)Ajax (Asynchronous JavaScript and XML)
Ajax (Asynchronous JavaScript and XML)Abdelouahed Abdou
 
Document Object Model ( DOM)
Document Object Model ( DOM)Document Object Model ( DOM)
Document Object Model ( DOM)Abdelouahed Abdou
 

More from Abdelouahed Abdou (14)

Chapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en CChapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en C
 
Tutoriel web service
Tutoriel  web serviceTutoriel  web service
Tutoriel web service
 
Atelier 3 gestion de bases de données sous odoo
Atelier 3 gestion de bases de données sous odooAtelier 3 gestion de bases de données sous odoo
Atelier 3 gestion de bases de données sous odoo
 
Atelier2 Odoo: Gestion des Ressources Humaines (installation, employés, contr...
Atelier2 Odoo: Gestion des Ressources Humaines (installation, employés, contr...Atelier2 Odoo: Gestion des Ressources Humaines (installation, employés, contr...
Atelier2 Odoo: Gestion des Ressources Humaines (installation, employés, contr...
 
PL/SQL:les curseurs
PL/SQL:les curseursPL/SQL:les curseurs
PL/SQL:les curseurs
 
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
 
Atelier1 mise en place d’odoo
Atelier1   mise en place d’odooAtelier1   mise en place d’odoo
Atelier1 mise en place d’odoo
 
Introduction au traitement d'images
Introduction au traitement d'imagesIntroduction au traitement d'images
Introduction au traitement d'images
 
Tp Sql Server Integration Services 2008
Tp  Sql Server Integration Services  2008Tp  Sql Server Integration Services  2008
Tp Sql Server Integration Services 2008
 
Pl/sql - interaction avec la base de données & structures de contrôle
Pl/sql  - interaction avec la base de données & structures de contrôlePl/sql  - interaction avec la base de données & structures de contrôle
Pl/sql - interaction avec la base de données & structures de contrôle
 
Introduction à pl/sql
Introduction à pl/sqlIntroduction à pl/sql
Introduction à pl/sql
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
Ajax (Asynchronous JavaScript and XML)
Ajax (Asynchronous JavaScript and XML)Ajax (Asynchronous JavaScript and XML)
Ajax (Asynchronous JavaScript and XML)
 
Document Object Model ( DOM)
Document Object Model ( DOM)Document Object Model ( DOM)
Document Object Model ( DOM)
 

Bases de données réparties

  • 1. Bases de Données Réparties (BDRé) Abdelouahed Sabri 2011/2012 abdelouahed.sabri@gmail.com Clients, Distributeurs Clients habitants Tétouan Clients habitants Tanger Distributeurs (Nom, Télé)
  • 2. Plan Introduction C’est quoi une base de données répartie Avantages et Inconvénients Objectifs Modélisation et conception Fragmentation Allocation Répartition avancée La pratique Abdelouahed Sabri 2011/2012 2
  • 3. Introduction Architectures Architecture centralisée: • Programme d'application et SGBD sur même machine (même site), Architecture client-serveur, notée 2-tiers: • Programme d’application sur le client et SGBD sur le serveur, Architecture 3-tiers: • Interface utilisateur sur le client, programme d’application sur le serveur d’application et le SGBD sur le serveur de données. Bases de données Centralisées Réparties ou distribuées Fédérées Multi-bases Abdelouahed Sabri 2011/2012 3
  • 4. Introduction BD centralisée: Gérée par un seul SGDB, Stockée dans un emplacement physique unique, Les traitements sont confiés à une seule et même unité. Multi-base: Plusieurs SGBD, hétérogènes ou non, capables d’inter-opérer sans modèle commun (vue commune), BD Fédérée: Plusieurs SGBD hétérogènes sont utilisés comme un seul via un modèle commun (vue commune)  Ex: Utilisés dans la fusion ou acquisition des bases de données de compagnies BD Répartie: Un seul système gérant une collection de bases de données logiquement reliées qui sont réparties sur différents sites accessible via un modèle commun (vue commune) Abdelouahed Sabri 2011/2012 4
  • 5. Introduction Différence entre bases de données réparties et le modèle client-serveur Abdelouahed Sabri 2011/2012 5 Client-Serveur Bd Répartie Plusieurs bases vues par le client Une base logique vue par l’utilisateur Plusieurs connexions Une seule connexion Localisation explicite des bases (« connection string » ou DSN) Indépendance à la localisation Règles de localisation dans l’application Règles 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 l’application Synchronisation automatique des n sous- transactions Plusieurs COMMIT mono-base 1 COMMIT généralisé
  • 6. Introduction Pourquoi répartir? Besoin de décentralisation des organisations, Partage de données géographiquement reparties. Principe de la répartition: Les données et traitements sont répartis sur différents sites interconnectés par un réseau de communication.  La défaillance d'un site ne peut pas entraîner l'indisponibilité totale du système et sa probabilité peut être négligée grâce à la tolérance aux fautes, assurée par la redondance des informations et des traitements. Abdelouahed Sabri 2011/2012 6
  • 7. Introduction Système de Gestion de Bases de Données Réparties Constitué d'un ensemble de processeurs autonomes «appelés sites » (stations de travail, micro-ordinateurs, …) reliés par un réseau de communication qui leur permet d'échanger des données. Un SGBDRé suppose que les données soient stockées sur au moins deux sites. • Chaque site est doté de son propre SGBD. Abdelouahed Sabri 2011/2012 7
  • 8. Introduction Avantages de répartir les données Limiter le transfert d'information (en nombre et en volume) en répartissant les données là où elles sont le plus utilisées. Ceci est particulièrement important pour une base de données dont les différents utilisateurs sont géographiquement dispersés  Exemple: Des agences d'une banque La répartition de charge de travail sur plusieurs unités de traitement opérant en parallèle permet d’accroître les performances. Augmenter la fiabilité et la disponibilité en dupliquant les données sur plusieurs sites  Exemple: Comptes bancaires Abdelouahed Sabri 2011/2012 8
  • 9. Introduction Inconvénients de répartir les données Inconvénients Complexité des SGBDs, Problème de concurrence d’accès, Surcoût du traitement: la distribution de données entraine des communications inter-sites, Sécurité. Abdelouahed Sabri 2011/2012 9
  • 10. Introduction Exemple 1: Abdelouahed Sabri 2011/2012 10 Clients, Distributeurs Clients habitants Tétouan Clients habitants Tanger Distributeurs (Nom, Télé)
  • 11. Introduction Exemple 2: Une banque peut avoir des agences à Casa, à Rabat et à Fès. BD centralisée: 1. Le siège principal de la banque gérerait tous les comptes des clients, 2. Les agences devraient communiquer avec le siège social pour avoir accès aux données. BD répartie: • Les informations sur les comptes sont distribuées dans les agences et celles-ci sont interconnectées (entièrement ou partiellement) afin qu'elles puissent avoir accès aux données externes. Cependant, la répartition de la base de données bancaire est invisible aux agences en tant qu'utilisateurs, et la seule conséquence directe pour elles est que l'accès à certaines données est beaucoup plus rapide. Abdelouahed Sabri 2011/2012 11
  • 12. Objectifs d’une base de données repartie Les 12 principaux objectifs définis par C.J. Date[1] sont: Abdelouahed Sabri 2011/2012 12 1) Transparence pour l’utilisateur, 2) Autonomie de chaque site, 3) Absence de site privilégié, 4) Continuité de service, 5) Transparence vis-à-vis de la localisation de données, 6) Transparence vis-à-vis de la fragmentation, 7) Transparence vis-à-vis de la réplication, 8) Traitement réparti des requêtes, 9) Indépendance vis-à-vis du matériel, 10) Indépendance vis-à-vis du système d’exploitation, 11) Indépendance vis-à-vis du réseau, 12) Indépendance vis-à-vis du SGBD [1] C.J. Date: auteur du livre An Introduction to Database Systems (8th Edition)
  • 13. Objectifs d’une base de données repartie (suite) Transparence de localisation: Les utilisateurs accèdent au schéma conceptuel via des vues. Un utilisateur ne sait pas sur quel site se trouvent physiquement les données • Exemple: un client peut ouvrir un compte à Fès et effectuer régulièrement des opérations à Rabat  C'est le système qui recherche le site où sont mémorisées ses informations et non l'utilisateur qui doit l'indiquer. Abdelouahed Sabri 2011/2012 13
  • 14. Objectifs d’une base de données repartie (suite) Transparence de partitionnement: l’utilisateur ne sait pas comment la base est partitionnée. Transparence de duplication: l’utilisateur ne sait pas s’il existe plusieurs copies d'une même information ou non. Lors de la modification d'une information, c'est le système qui doit se préoccuper de mettre à jour toutes les copies.  Exemple: Un client possède des comptes (courant, épargne logement, ...) à Fès mais effectue régulièrement des retraits d'argent à Rabat, les informations le concernant soient réparties entre Fès à Rabat: l'historique des opérations du compte courant est conservé à Rabat, la gestion de ses autres comptes est assurée à Fès, et le solde du compte courant est dupliqué à Fès et Rabat. Abdelouahed Sabri 2011/2012 14
  • 15. Objectifs d’une base de données repartie (suite) Indépendance vis-à-vis du SGBD: Un système réparti ne doit pas être dépendant en aucun cas des différents SGBDs, la relation globale doit être exprimée dans un langage normalisé indépendant des constructeurs. Autonomie de chaque site: Vise à garder une administration locale séparée et indépendante pour chaque serveur participant à la base de données répartie afin d'éviter une administration centralisée. • Toute manipulation sur un site (reprise après panne, mises à jour des logiciels) ne doit pas altérer le fonctionnement des autres sites. Abdelouahed Sabri 2011/2012 15
  • 16. Modélisation d’une base de données réparties Une base de données est généralement modélisée en 3 niveaux: Externe, Conceptuel et Interne. Schéma interne: Description de l’organisation physique des données  Stockage physique Schéma conceptuel: Description d’univers à modéliser avec éventuellement les contraintes liés à ces objets (contraintes d’intégrités)  Domaine des concepteurs de Bases de données Schéma externe: Application accédant aux données : des vues (accès limités)  Domaine des créateurs d’applications  L’avantage de se découpage est de permettre des modifications à un niveau sans que cela interfère (le moins possible) sur les autres niveaux Abdelouahed Sabri 2011/2012 16
  • 17. Modélisation d’une base de données réparties Pour une base de données réparties, la répartition a lieu dans les trois niveaux: Abdelouahed Sabri 2011/2012 17  les vues des utilisateurs sont présentées sur leur site (site utilisateur); elles correspondent au niveau externe.  Il y a donc répartition des vues.  le schéma conceptuel (global) est associé aux schémas locaux des sites physiques via un schéma de fragmentation (la manière dont la base est découpée) et un schéma d'allocation (la manière dont les fragments sont répartis).  il n'y a pas de schéma interne global, mais des schémas locaux internes.
  • 18. Conception d’une base de données répartie La définition du schéma de répartition est la partie la plus délicate de la phase de conception d'une base de données répartie: Il n y’a pas de méthode standard  on se base sur les besoins, L'administrateur (le concepteur) doit prendre des décisions sur comment la répartition doit être faite. L'objectif est de minimiser: • le nombre de transferts entre sites, • les temps de transfert, • le volume de données transférées, • les temps moyens de traitement des requêtes, • le nombre de copies de fragments. Abdelouahed Sabri 2011/2012 18
  • 19. Conception d’une base de données répartie Méthodes de conception: Deux approches fondamentales sont à l'origine de la conception des bases de données réparties : 1. La conception descendante (Top down design), 2. La conception ascendante (Bottom up design). NB: Pour les deux approches il faut recueillir l'expression des besoins des utilisateurs afin de créer un schéma conceptuel unique et en déduire les vues externes à prévoir. Abdelouahed Sabri 2011/2012 19
  • 20. Conception d’une base de données répartie Conception descendante Conception du schéma conceptuel global de la base de données répartie, Création du schéma de fragmentation : • la base de données sera découpée en fragments distincts constituant une partition de la base  l'intersection de ces fragments doit être vide et leur réunion doit redonner le schéma global. Création du schéma d'allocation : • les fragments doivent être distribués entre les différents sites. Création d'un schéma local pour chaque site, relatif aux fragments dévolus à ce site, Création des schémas internes : • implémentation des données des fragments sur les supports physiques de stockage. Abdelouahed Sabri 2011/2012 20
  • 21. Conception d’une base de données répartie Conception ascendante Il existe plusieurs bases de données disjointes (plusieurs schémas conceptuels locaux) qu’il faut réunir en un schéma conceptuel global • Intégration (fédération) des BD existantes Abdelouahed Sabri 2011/2012 21
  • 22. Fragmentation Définition: On définit la fragmentation comme étant le processus de décomposition d'une base de donnée logique (telle que la voient les utilisateurs) en un ensemble de « sous »-bases de données appelés fragments. Caractéristiques:  La fragmentation doit être sans perte d'information,  Pour toute donnée d’une table R, il existe un fragment Ri de la table R qui possède cette donnée.  Règle de complétude  La non perte d'informations est vérifiée par recomposition de la base à partir des différents fragments en utilisant le langage de manipulation de données (SQL par exemple)  leur réunion doit redonner le schéma global  Règles de reconstruction  Les différents fragments doivent « de préférence » être exclusifs (leur intersection est vide)  Dans le cas contraire on parle de duplication  il faut affiner la fragmentation Abdelouahed Sabri 2011/2012 22
  • 23. Fragmentation Techniques de fragmentation Il existe différentes façons pour fragmenter une base de données L'unité de fragmentation détermine la nature de l'élément le plus petit dont les composants ne peuvent être fragmentés • On parle de granularité: taille du plus petit élément Une granularité fine donne de grandes possibilités pour la fragmentation et autorise une répartition flexible et efficace de la base de données, mais à l'inconvénient de provoquer une certaine lourdeur pour la recomposition des informations. A l'opposé, une granularité élevée permet une gestion simple de la fragmentation, mais fournit des possibilités très limitées pour la fragmentation. L'unité de fragmentation est généralement laissée au libre choix de l'administrateur. Il y a quatre unités de fragmentation de base: Relations, Tuples, Attributs, Valeurs Abdelouahed Sabri 2011/2012 23
  • 24. Fragmentation Fragmentation par relation (classe d’objets) Ce sont les classes (relation ou table dans le modèle relationnel, entité en Entité-Association, classe dans le modèle orienté-objet) qui peuvent être réparties dans des fragments différents. Les fragments sont définis à partir des "classes" de la base de données. Toutes les occurrences d'une même classe appartiennent au même fragment. L'opération de partitionnement est la définition de sous schémas. L'opération de recomposition est la réunion de sous schémas. Abdelouahed Sabri 2011/2012 24
  • 25. Fragmentation Fragmentation par relation (suivant) Exemple: Banque • Trois tables: Agence, Clients, Compte Abdelouahed Sabri 2011/2012 25 Compte NoClient Agence TypeCompte Somme 174 723 Lausanne courant 123 345.89 177 498 Genève courant 34 564.00 201 639 Lausanne courant 45 102.50 201 639 Lausanne dépôt 325 100.00 203 446 Genève courant 274 882.95 Client NoClient NomClient Prénom Age 174 723 Villard Jean 29 177 498 Cattell Blaise 38 201 639 Tesllis Alan 51 203 446 Kovalsky Validmir 36 Agence Agence Adresse Lausanne Rue du Lac, 3, 1002 Lausanne Genève Avenue du Mont Blanc, 21, 1200 Genève • Cette base peut être fragmentée en deux fragments: {Compte, Client} et {Agence}.
  • 26. Fragmentation Fragmentation horizontale Appelée aussi fragmentation par occurrences ou par tuples, La fragmentation horizontale est basée sur un découpage (horizontal) des tuples des tables • Les occurrences d'une même table peuvent être réparties dans des fragments différents (avec tous les attributs) • Le découpage est effectué en utilisant la sélection, • La reconstruction est effectuée en utilisant l’opération d’union. Abdelouahed Sabri 2011/2012 26
  • 27. Fragmentation Fragmentation horizontale (suivant) Exemple: Banque • La table Compte peut être divisée en deux fragments par répartition des tuples en deux catégories : • Compt1 = σ TypeCompte = courant(Compte) • Compt2 = σ TypeCompte = dépôt (Compte) Abdelouahed Sabri 2011/2012 27 Compt1 NoClient Agence TypeCompte Somme 174 723 Lausanne courant 123 345.89 177 498 Genève courant 34 564.00 201 639 Lausanne courant 45 102.50 203 446 Genève courant 274 882.95 Compt2 NoClient Agence TypeCompte Somme 201 639 Lausanne dépôt 325 100.00 • La recomposition est réalisée par une opération d’union Compte = Compt1 ∪ Compt2
  • 28. Fragmentation Fragmentation verticale (par attributs) Les fragments sont construits à partir de quelques attributs d'une relation: • Ce sont les attributs (avec leur occurrences) d'une même relation qui peuvent être répartis dans des fragments différents. • Toutes les valeurs des occurrences pour un même attribut se trouvent dans le même fragment. • La répartition des attributs dans différents 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 (décomposition sans perte d'informations. Le découpage d'une relation en sous tables est effectuée utilisant la projection sur les colonnes composant chaque fragment. La reconstruction est effectuée par jointure des différents fragments. Abdelouahed Sabri 2011/2012 28
  • 29. Fragmentation Fragmentation verticale (suite) Exemple: Banque • Dans les guichets bancaires on n’a besoin de connaître que les soldes des comptes, alors que les services de contentieux ont besoin de connaître les informations complètes sur chaque client. • Compt1 = ∏ NoClient, Somme(Compte) • Compt1 = ∏ Noclient, Agence, TypeCompte(Compte) Abdelouahed Sabri 2011/2012 29 Compt1 NoClient Somme 174 723 123 345.89 177 498 34 564.00 201 639 45 102.50 201 639 325 100.00 203 446 274 882.95 Compt2 NoClient Agence TypeCompte 174 723 Lausanne courant 177 498 Genève courant 201 639 Lausanne courant 201 639 Lausanne dépôt 203 446 Genève courant • La recomposition est réalisée par une opération de jointure Compte = Compt1 |x| Compt2
  • 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 sélections. • Les occurrences et les attributs peuvent donc être répartis dans des différents fragments. La reconstruction est effectuée par combinaison de jointures et d'unions des différents fragments. Abdelouahed Sabri 2011/2012 30
  • 31. Fragmentation Fragmentation hybride (par valeurs) Exemple: Banque • Compt1 = ∏ NoClient, Somme (σ TypeCompte = courant(Compte)) • Compt2 = ∏ NoClient, Somme ( σ TypeCompte = dépôt (Compte)) • Compt3 = ∏ NoClient, AgenceCompte) • Compt4 = ∏ Noclient, TypeCompte(Compte) Abdelouahed Sabri 2011/2012 31 Compt1 NoClient Somme 174 723 123 345.89 177 498 34 564.00 201 639 45 102.50 203 446 274 882.95 Compt2 NoClient Somme 201 639 325 100.00 Compt4 NoClient TypeCompte 174 723 courant 177 498 courant 201 639 courant 201 639 dépôt 203 446 courant • La reconstruction Compte= (Compt1 ∪ Compt2 ) |x| Compt3 |x| Compt4 Compt3 NoClient Agence 174 723 Lausanne 177 498 Genève 201 639 Lausanne 201 639 Lausanne 203 446 Genève
  • 32. Fragmentation Méthodologie de la fragmentation horizontale Question: Comment décomposer une base de données en fragments horizontaux??? On se base sur les requêtes d'interrogation ou de mise à jour les plus importantes et les plus fréquentes. Pour le cas de la fragmentation horizontale on se base sur les conditions de sélections. • Soient c1, c2, ..., cn les conditions de sélection qui ont été extraites des requêtes, • On forme l'ensemble des 2n conjonctions de conditions où chaque condition élémentaire est prise dans sa forme positive ou dans sa forme négative Abdelouahed Sabri 2011/2012 32 • On ôte de cet ensemble les conjonctions de condition qui sont toujours fausses, et on simplifie les autres.
  • 33. Fragmentation Méthodologie de la fragmentation horizontale Exemple: On considère une table CUISINIER que l'on se propose de répartir en fragments horizontaux Abdelouahed Sabri 2011/2012 33 On commencera par se baser sur les requêtes les plus fréquentes: 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'; 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
  • 34. Fragmentation Méthodologie de la fragmentation horizontale Exemple (suite): Pour effectuer la fragmentation horizontale on se base sur les critères de recherche, c'est à dire les conditions exprimées dans les "WHERE" des ordres SQL. • Soit – A : prenom = 'Jean‘ – B : nom LIKE '%R%‘ – C : numeq = '1‘ – D : numeq = '2‘ • Les condition de sélection: – 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 : Abdelouahed Sabri 2011/2012 34 CC = {C1 ʌ C2 ʌ C3, ¬C1 ʌ C2ʌ C3, C1ʌ ¬C2ʌ C3, C1ʌ C2ʌ ¬C3, ¬C1ʌ ¬C2ʌ C3, C1ʌ ¬C2ʌ ¬C3, ¬C1ʌ C2ʌ ¬C3, ¬C1ʌ ¬C2ʌ ¬C3}
  • 35. Fragmentation Méthodologie 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 hypothèse supplémentaire (contrainte d’intégrité) , qu'il n'y a que deux équipes de cuisiniers (1 et 2) ce qui implique • ¬Cʌ ¬D = Φ, ¬C = D, ¬D = C Abdelouahed Sabri 2011/2012 35
  • 36. Fragmentation Méthodologie 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 36
  • 37. Fragmentation Méthodologie de la fragmentation horizontale Exemple (suite): Ces 5 conditions définissent les fragments horizontaux (exclusifs) : Abdelouahed Sabri 2011/2012 37 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 F1 NUMERO NOM PRENOM NUMEQ 13 DURDUR Jean 2 F2 NUMERO NOM PRENOM NUMEQ 20 DURALEX Jean 1 F3 NUMERO NOM PRENOM NUMEQ 26 DUGENOU Jean 2 F4 NUMERO NOM PRENOM NUMEQ 12 DUPONT Jean 1 17 DUBOIS Robert 1 22 DUBALAI Aline 1 9 DURALUMIN Roberte 1 F5 NUMERO NOM PRENOM NUMEQ 34 DUPONT Jeanne 2 11 DURAND Aline 2 38 DURACUIRE ROBERT 2 Fragmentation
  • 38. Fragmentation Méthodologie de la fragmentation horizontale Exercice: On considère la table Compte (NoClient, Agence, TypeCompte, Somme) . Proposer un schéma de fragmentation horizontal en tenant compte des requêtes suivantes • R1 = ∏ NoClient, Agence (σTypeCompte = 'courant' and Somme > 100000(Compte)) • R2 = σ Agence = 'Lausanne’(Compte) • R3 = ∏ NoClient, Somme(σ Agence = ' Genève’ and TypeCompte = 'courant' (Compte)) Abdelouahed Sabri 2011/2012 38 Compte NoClient Agence TypeCompte Somme 174 723 Lausanne courant 123 345.89 177 498 Genève courant 34 564.00 201 639 Lausanne Courant 45 102.50 201 639 Lausanne Dépôt 325 100.00 203 446 Genève Courant 274 882.95
  • 39. Fragmentation Méthodologie de la fragmentation verticale Question: Comment décomposer une base de données en fragments verticaux??? On se base les requêtes d’interrogation ou de mise à jour prédéfinies les plus importantes et les plus fréquentes pour extraire les attributs concernés • 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 utilisés pour que la décomposition soit sans perte d'information (reconstruction). Abdelouahed Sabri 2011/2012 42
  • 40. Fragmentation Méthodologie 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 requêtes, On forme l'ensemble des 2n intersections des expressions de projection où chacune est soit l'expression initiale soit son complément. Abdelouahed Sabri 2011/2012 43 On ôte de cet ensemble les conjonctions de condition qui sont toujours fausses, et on simplifie les autres. NB: Dans le cas où la requête ne possède pas d’attributs de jointure il faut les ajouter.
  • 41. Fragmentation Méthodologie de la fragmentation verticale Exemple : On considère une table CUISINIER que l'on se propose de répartir en fragments verticaux Abdelouahed Sabri 2011/2012 44 On commencera par se baser sur les requêtes les plus fréquentes: 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'; 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
  • 42. Fragmentation Méthodologie de la fragmentation verticale Exemple (suite): Pour effectuer la fragmentation verticale on se base sur les projections utilisées: • P1 : (numero, numeq) • P3 : (numero, nom) • P2 n'est pas considérée comme une projection car tous les attributs sont demandés dans la requête A partir des projection Pi, on construit l'ensemble IP des intersections de projections : Abdelouahed Sabri 2011/2012 45 Où ¬Pj désigne le complément de Pj sur l'ensemble des attributs de la table CUISINIER avec l'ajout obligatoire de la clé numero : • ¬P1 = (numero, nom, prenom) • ¬P3 = (numero, prenom, numeq)  IP = { P1 ∩ P3, ¬ P1 ∩ P3, P1 ∩ ¬P3, ¬P1 ∩ ¬P3}
  • 43. Fragmentation Méthodologie de la fragmentation verticale Exemple (suite): P1 ∩ P3 = (numero, numeq) ∩ (numero, nom) = (numero) ¬ P1 ∩ P3= (numero, nom, prenom) ∩ (numero, nom) = (numero, nom) P1 ∩ ¬P3= (numero, numeq) ∩ (numero, prenom, numeq)= (numero, numeq) ¬P1 ∩ ¬P3 = (numero, nom, prenom) ∩ (numero, prenom, numeq)= (numero, prenom)  Fragments verticaux: F1 = ∏numero(Cuisinier) F2 = ∏numero, nom(Cuisinier) F3 = ∏numero, numeq(Cuisinier) F4 = ∏numero, prenom(Cuisinier) Abdelouahed Sabri 2011/2012 46
  • 44. Fragmentation Méthodologie de la fragmentation hybride C’est la combinaison des deux fragmentations: horizontale et verticale. Abdelouahed Sabri 2011/2012 47 F1 NUMERO NOM PRENOM NUMEQ 13 DURDUR Jean 2 F2 NUMERO NOM PRENOM NUMEQ 20 DURALEX Jean 1 F3 NUMERO NOM PRENOM NUMEQ 26 DUGENOU Jean 2 F4 NUMERO NOM PRENOM NUMEQ 12 DUPONT Jean 1 17 DUBOIS Robert 1 22 DUBALAI Aline 1 9 DURALUMIN Roberte 1 F5 NUMERO NOM PRENOM NUMEQ 34 DUPONT Jeanne 2 11 DURAND Aline 2 38 DURACUIRE ROBERT 2 Fragments horizontaux Pour chaque fragment horizontal, on regarde quelles sont les requêtes qui les concernent (sélection): 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‘;
  • 45. Fragmentation Méthodologie de la fragmentation hybride Les intersections de projection de chacun des fragments horizontaux, avec les fragments correspondants sont donc: Abdelouahed Sabri 2011/2012 48 F1 NUMERO NOM PRENOM NUMEQ 13 DURDUR Jean 2 F2 NUMERO NOM PRENOM NUMEQ 20 DURALEX Jean 1 F3 NUMERO NOM PRENOM NUMEQ 26 DUGENOU Jean 2 F4 NUMERO NOM PRENOM NUMEQ 12 DUPONT Jean 1 17 DUBOIS Robert 1 22 DUBALAI Aline 1 9 DURALUMIN Roberte 1 F5 NUMERO NOM PRENOM NUMEQ 34 DUPONT Jeanne 2 11 DURAND Aline 2 38 DURACUIRE ROBERT 2 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'; R1 R3 R1 R2 R3 R2 Aucune
  • 46. Fragmentation Méthodologie de la fragmentation hybride Le fragment 1 est concerné par les requêtes R1 et R3, donc par tous les éléments 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 requêtes 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 requête 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 requête R2, donc par tous les attributs IP4 = {(numero, nom, prenom, numeq)} Le fragment 5 n'est concerné par aucune des requêtes, donc par tous les attributs : IP5 = {(numero, nom, prenom, numeq)} Abdelouahed Sabri 2011/2012 49
  • 47. Fragmentation Méthodologie de la fragmentation hybride Les différents fragments: Abdelouahed Sabri 2011/2012 50 F21 NUMERO NUMEQ 20 1 F32 NUMERO PRENOM NUMEQ 26 Jean 2 F41 NUMERO NOM PRENOM NUMEQ 12 DUPONT Jean 1 17 DUBOIS Robert 1 22 DUBALAI Aline 1 9 DURALUMIN Roberte 1 F51 NUMERO NOM PRENOM NUMEQ 34 DUPONT Jeanne 2 11 DURAND Aline 2 38 DURACUIRE ROBERT 2 F11 NUMERO 13 F12 NUMERO NOM 13 DURDUR F13 NUMERO NUMEQ 13 2 F14 NUMERO PRENOM 13 Jean F22 NUMERO NOM PRENOM 20 DURALEX Jean F31 NUMERONOM 26 DUGENOU 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
  • 48. Schéma d’allocation Après la fragmentation, la question qu’ont doit se poser est: Ou seront affectés chacun des fragments??? L'affectation des fragments sur les sites est décidée en fonction de l'origine prévue des requêtes qui ont servi à la fragmentation. Pour chaque requête: On connaît l'ensemble des sites qui sont susceptible d'émettre cette requête, On possède de l'ensemble des fragments qui sont concernés par la requête.  Placer les fragments sur les sites où ils sont le plus utilisés, pour minimiser les transferts de données entre les sites. Pour définir le schéma de localisation, on recherche: Priorité 1: D'où sont émises les requêtes de sélection Priorité 2: D'où sont faites les mises à jour Abdelouahed Sabri 2011/2012 51
  • 49. Schéma d’allocation Exemple: reprenons l'exemple précédent et supposons que deux sites soient pris en considération A et B R1: SELECT numero, numeq FROM CUISINIER WHERE prenom = 'Jean' AND nom LIKE '%R%'; R2: SELECT * FROM CUISINIER WHERE numeq = '1'; R3: SELECT numero, nom FROM CUISINIER WHERE numeq = '2' AND prenom = 'Jean'; Abdelouahed Sabri 2011/2012 52
  • 50. Schéma d’allocation Exemple (suite): Supposons que la requête R1 est émise de A ou B, que la requête R2 est émise de A seulement et que la requête R3 est émise de B seulement. Pour les trois requêtes, les fragments suivants sont concernés : • 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 requête R1 ou R2 – Le fragment 11 peut appartenir a toutes les Requêtes – Le fragment 51 n’appartient à aucune requête – Le fragment 32 n’appartient à aucune requête – Le fragment 14 n’appartient à aucune requête  On doit faire des choix pour ces fragments de façon à équilibrer les sites Abdelouahed Sabri 2011/2012 53
  • 51. Schéma d’allocation Exemple (suite): Supposons que la requête R1 est émise de A ou B, que la requête R2 est émise de A seulement et que la requête R3 est émise de B seulement. Pour les trois requêtes, les fragments suivants sont concernés : • R1  fragment13 • R2  fragments 21, 22 et 41 • R3  fragments 12 et 31 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 54 • Le fragment 21 peut appartenir à la requête R1 ou R2 • Le fragment 11 peut appartenir a toutes les Requêtes • Les fragments 51, 32 et 14 n’appartiennent à aucune requête
  • 52. Les mises-à-jour Les mises à jour consistent en trois opérations: insertion (INSERT), suppression (DELETE) et modification (UPDATE). Insertion Exemple: insérer 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 présent, il s'agit de CC3) ; ensuite il faut insérer le tuple dans tous les fragments verticaux. Abdelouahed Sabri 2011/2012 55 F32 NUMERO PRENOM NUMEQ 26 Jean 2 21 Jean 2 F31 NUMERONOM 26 DUGENOU 21 DUBOUT
  • 53. 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 concernées.  On cherchera donc dans les fragments correspondants Abdelouahed Sabri 2011/2012 56 F41 NUMERO NOM PRENOM NUMEQ 12 DUPONT Jean 1 17 DUBOIS Robert 1 22 DUBALAI Aline 1 9 DURALUMIN Roberte 1 F32 NUMERO PRENOM NUMEQ 26 Jean 2 21 Jean 2 F31 NUMERONOM 26 DUGENOU 21 DUBOUT F41 NUMERO NOM PRENOM NUMEQ 12 DUPONT Jean 1 17 DUBOIS Robert 1 22 DUBALAI Aline 1 9 DURALUMIN Roberte 1 F32 NUMERO PRENOM NUMEQ 26 Jean 2 F31 NUMERONOM 26 DUGENOU
  • 54. Les mises-à-jour Suppression (suite): Exemple: supprimer le cuisinier de numéro 21 DELETE FROM CUISINIER WHERE numero = 21 ; Aucune CC n’est concernée  Il faut chercher dans tous les fragments Abdelouahed Sabri 2011/2012 57
  • 55. 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 concernées.  On modifie puis on vérifie que les CC son toujours vérifiées: • Puisque numeq = 1, il faut l’enlever du fragment F3 et F5 • On déplace alors le tuple dans le fragment 4. Abdelouahed Sabri 2011/2012 58
  • 56. Répartition avancée Dans le cas où la méthode classique de fragmentation- allocation ne s'avère pas satisfaisante, on peut faire appel à des techniques plus puissantes (mais aussi plus complexes à mettre en œuvre): L'allocation avec duplication de fragments, L'allocation dynamique des fragments, La fragmentation dynamique. Abdelouahed Sabri 2011/2012 60
  • 57. Répartition avancée Allocation avec duplication Certains fragments peuvent être dupliquées sur plusieurs sites (éventuellement sur tous les sites) Avantages:  Elle permet d’améliorer les performances en terme de temps d'exécution des requêtes (en évitant certains transferts de données).  Elle permet une meilleure disponibilité des informations (connues de plusieurs sites),  Elle permet une meilleure fiabilité contre les pannes. Inconvénient:  les mises à jour doivent être effectuées sur toutes les copies d'une même donnée. En conséquence: moins un fragment est sujet à des modifications et plus il est prédisposé à la duplication. Abdelouahed Sabri 2011/2012 61
  • 58. Répartition avancée Allocation avec duplication Deux types de duplication: synchrone et asynchrone. Duplication synchrone: • La sérialisabilité est assurée sur l’ensemble des nœuds • Une transaction est confirmée seulement lorsque tous les sites ont été mis-à-jour Duplication asynchrone: • Les mises-à-jour sont d’abord faites sur une copie primaire • Les sites de réplication sont mis-à-jour en différé, à partir de la copie primaire, après la confirmation de la transaction • Ex. d’implémentation: vues matérialisées (eq. SNAPSHOTs) Abdelouahed Sabri 2011/2012 62
  • 59. Répartition avancée Allocation dynamique Ici, l'allocation d'un fragment peut changer en cours d'utilisation de la BDR: Le schéma d'allocation et les schémas locaux doivent être tenus à jour. Peut être utilisée comme une alternative à la duplication  elle se révèle plus efficace lorsque la base de données est disposée à de nombreuses mises à jour. Abdelouahed Sabri 2011/2012 63
  • 60. Répartition avancée Fragmentation dynamique Dans le cas où le site d'allocation peut changer dynamiquement, il est possible que deux fragments complémentaires (verticalement ou horizontalement) se retrouvent sur le même site. Il est alors normal de les fusionner. A l'inverse, si une partie d'un fragment est appelée sur un autre site, il peut être intéressant de décomposer ce fragment et de ne faire migrer que la partie concernée. Ces modifications du schéma de fragmentation se reflètent sur le schéma d'allocation et sur les schémas locaux. Abdelouahed Sabri 2011/2012 64