SlideShare une entreprise Scribd logo
1  sur  60
BASE DE DONNÉES RÉPARTIES
Chapitre 2: Fragmentation
BDR
1
SIR S6, INFO 3
ABDALI Abdelmounaïm
2019/2020
DÉFINITION
 La fragmentation est le processus de décomposition d'une
base de donnée en un ensemble de sous bases de données.
 Cette décomposition doit être sans perte d'information.
 La fragmentation des données représente un sous-ensemble
obtenu par la sélection de lignes et de colonnes à partir
d’une relation globale localisée sur un site unique.
2
POURQUOI FRAGMENTER ?
 Amélioration des performances (placer les traitements
à l’endroit où se trouvent les données).
 Favoriser les accès locaux.
 Équilibrer la charge de travail entre les sites.
3
LES RÈGLES DE FRAGMENTATION
 Les règles à appliquer sont : :
1. La complétude : pour toute donnée d’une relation R, il
existe un fragment Ri de la relation R qui possède cette
donnée.
2. La reconstruction : pour toute relation décomposée en un
ensemble de fragments Ri, il existe une opération de
reconstruction.
1. Pour les fragmentations horizontales, l’opération de
reconstruction est l’ union.
2. Pour les fragmentations verticales c’est la jointure.
1. La Disjonction: assure que les fragments d’une relation
sont disjoints deux à deux 4
COMMENT FRAGMENTER ?
 Possibilités de fragmentation d’une relation
 Horizontale - basée sur des sélections
 Verticale - basée sur des projections
5
COMMENT FRAGMENTER (2) ?
 Possibilités de fragmentation d’une relation
 Hybride
6
TECHNIQUE DE FRAGMENTATION HORIZONTALE
 Il existe deux types de fragmentation horizontale:
 Primaire
 Dérivée
 Fragmentation horizontale primaire :
 Fragments définis par sélection
Ex : Client( NClient, Nom, Ville)
Client1 = Ville = Paris (Client)
Client1= SELECT * FROM Client WHERE Ville = “Paris”
Client2 = Ville != Paris (Client)
Client2= SELECT * FROM Client WHERE Ville <> “Paris”
 Reconstruction par union des fragments
Ex : Client = Client1 U Client2
7
FRAGMENTATION HORIZONTALE – EXEMPLE
 Relation Client
8
FRAGMENTATION HORIZONTALE – SUITE
EXEMPLE
9
FRAGMENTATION HORIZONTALE DÉRIVÉE
 Fragments définis par (semi) jointure
Ex : Commande ( NC, NClient, Produit,Qté)
Commande1 = Commande Client1
Commande2 = Commande Client2
 Reconstruction par union des fragments
Ex : Commande = Commande1 U Commande2
10
La Fragmentation d’une table en fonction des
fragments horizontaux d’une autre table.
EN SQL
 Commande1= SELECT * FROM Commande
WHERE NCLient IN
(SELECT NCLient FROM CLIENT1)
 Commande2= SELECT * FROM Commande
WHERE NCLient IN
(SELECT NCLient FROM CLIENT2)
11
FRAGMENTATION HORIZONTALE DÉRIVÉE -
EXEMPLE
 Relation Commande
12
FRAGMENTATION HORIZONTALE DÉRIVÉE –
SUITE EXEMPLE
 Relation Commande1
 Relation Commande2
13
FRAGMENTATION HORIZONTALE DÉRIVÉE -
EXEMPLE 2
Contexte:
On considère une base de données comprenant les tables
suivantes:
ETUDIANT (numE, nomE, pnomE, numC)
CENTRE (numC, villeC, adrC, telC)
avec : villeC ∈ {‘Paris’, ‘Lyon’, ‘Marseille’}
Hypothèses
 Chaque site gère son centre
 Chaque centre gère ses étudiants
14
FRAGMENTATION HORIZONTALE DÉRIVÉE -
SUITE EXEMPLE 2
Solution:
1) fragmente les centres horizontalement selon les sites:
 Centre1 = σvilleC = ‘Paris’(Centre)
 Centre2 = σvilleC = ‘Lyon’(Centre)
 Centre3 = σvilleC = ‘Marseille’(Centre)
2) Réaliser une semi jointure de la relation Etudiant avec les
fragments de la relation centre :
 Etudiant1 = Etudiant Centre1
 Etudiant2 = Etudiant Centre2
 Etudiant3 = Etudiant Centre3
15
EN SQL
centre1=select * from centre where villeC='Paris';
centre2=select * from centre where villeC='Lyon';
centre3=select * from centre where villeC='Marseille';
Etudiant1= SELECT * FROM Etudiant
WHERE numC IN
(SELECT numC FROM centre1);
Etudiant2= SELECT * FROM Etudiant
WHERE numC IN
(SELECT numC FROM centre2);
Etudiant3= SELECT * FROM Etudiant
WHERE numC IN
(SELECT numC FROM centre3)
16
EXERCICE
 Soit la base de données suivante :
 Fragmenter les agences avec leurs clients avec leurs
comptes.
17
SOLUTION
 On fragmente les agences horizontalement selon les sites :
Agence1 = σAgence = ‘Lausanne’(Agence)
Agence2 = σAgence = ‘Genève’(Agence)
 Puis on fragmente les comptes selon les fragments des
agences :
Compte1=Compte Agence1
Compte2=Compte Agence2
 Puis on fragmente les Clients selon les fragments des
comptes :
Client1= Client compte 1
Client2= Client compte 2
18
FRAGMENTATION VERTICALE
 Fragments définis par projection:
Ex : Commande( NC, NClient, Produit,Qté)
CommandeA= NC, NClient (Commande)
CommandeB= NC, Produit, Qté(Commande)
 Reconstruction par jointure
Ex : Commande = CommandeA * CommandeB
 Utile si forte affinité des attributs 19
RÉPARTITION DES ATTRIBUTS
(FRAGMENTATION VERTICALE)
 Toutes les valeurs des occurrences pour un même
attribut se trouvent dans le même fragment. Une
fragmentation verticale est utile pour distribuer les
parties des données sur le site où chacune de ces
parties est utilisée.
 L'opérateur de partitionnement est la projection (π)
 L'opérateur de recomposition est la jointure
20
21
FRAGMENTATION VERTICALE - EXEMPLE
 Relation Commande
22
FRAGMENTATION VERTICALE – SUITE
EXEMPLE
23
RÉPARTITION DES VALEURS (FRAGMENTATION
HYBRIDE)
24
EXEMPLE PERTE D’INFORMATION (1)
25
EXEMPLE PERTE D’INFORMATION (2)
26
Pas de perte d’informations
EXEMPLE PERTE D’INFORMATION (3)
27
EXEMPLE PERTE D’INFORMATION (4)
28
Perte d’informations à cause du 2 qui est dédoublé
EXERCICE
 Soit les 2 schémas suivants : client et code.
Question :
Les fragments suivants sont ils correctes ?
29
CORRIGÉ
 il s’agit d’une fragmentation horizontale incorrecte
car l’union des deux fragments cde1 et cde2 ne
permet pas de reconstituer la table commande. On
a une perte d’information (exemple : les
informations de la commande D3 sont perdues).
Violation de la contrainte de complétude de la
fragmentation
 il s’agit d’une fragmentation verticale incorrecte
car la clé de la table client (N°client) ne figure
pas dans le fragment client2. Violation de la règle
de reconstitution de la fragmentation.
30
DÉFINITION DES FRAGMENTS
 Le principe est de baser la fragmentation sur l'ensemble des
requêtes d'interrogation ou de mise à jour prédéfinies. Il faut
extraire de ces requêtes toutes les conditions de sélections, les
attributs projetés et les jointures. Les opérations de sélection
sont à la base des fragmentations horizontales, les opérations
de projection sont à la base des fragmentations verticales.
 On ne s'intéresse alors qu'aux requêtes les plus fréquentes ou
les plus sensibles.
31
FRAGMENTATION HORIZONTALE:
 Construire l’ensemble des conjonctions de ce (cc)
suivant :
 Simplifier chaque cc.
 Supprimer les cc toujours fausses.
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
FRAGMENTATION VERTICALE
Emp( Enum, Nom, Ville,Sal)
Emp1( Enum, Nom, Ville) Emp2( Enum,Sal)
 Complétude et reconstruction:
 Jointure sans perte d’information
 Condition suffisante : répéter la clé dans chaque
fragment
 Autre choix : utiliser une dépendance fonctionnelle
pour la décomposition (cf. normalisation)
 Disjonction : seulement répéter la clé.
49
COMMENT FRAGMENTER VERTICALEMENT?
 Utiliser le sens commun...essayer d’automatiser.
 Heuristiques :
 " Clustering (décrit des méthodes de
classification de données )- rapprochement en
partant d’un attribut par fragment.
 " Splitting - décomposition en partant d’un fragment
unique pour obtenir une partition selon l’affinité des
attributs.
50
OUTIL - MATRICE D’AFFINITÉ (1)
 Exemple Projet(Pnum, Pnom, Budget, Loc)
A1 A2 A3 A4
q1: budget d’un projet étant donné son numéro
q2: nom et budget de tous les projets
q3 : nom des projets d’une ville
q4 : budget total des projets d’une ville
51
MATRICE D ’UTILISATION
 Exemple:
52
MATRICE D’AFFINITÉ - DÉFINITION
 Refs( qk ), pour deux attributs (Ai, Ak) = nombre
d’accès faits par une exécution de qk (sur le site s)
à Ai et Ak.
 Accs( qk) = fréquence de qk sur le site s (mesurée
pendant une certaine période)
 Matrice d’affinité:
53
MATRICE D’AFFINITÉ - EXEMPLE
 Supposons :
 Les accès suivants (3 sites):
Acc1(q1)=15 Acc2(q1) = 20 Acc3(q1) = 10
Acc1(q2)=5 Acc2(q2) = 0 Acc3(q2) = 0
Acc1(q3)=25 Acc2(q3) = 25 Acc3(q3) = 25
Acc1(q4)= 3 Acc2(q4) = 0 Acc3(q4) = 0
54
MATRICE D’AFFINITÉ - EXEMPLE (2)
 Matrice:
55
REGROUPEMENT DES ATTRIBUTS
 Regroupement des attributs ayant une haute
affinité
 Exemple :
56
FIN EXEMPLE
 La relation Projet est fragmentée en
Projet1( Num, Budget)
Projet2( Num, Nom, Loc)
 Dans l’exemple (simple) la clé est dans l’ensemble d’attributs
considéré.
 Duplication de la clé pour garantir la reconstruction. 57
DÉFINITION DES FRAGMENTS
Fragmentation hybride:
 On procède comme suit:
 Extraire toutes les expressions de projection concernées par
les requêtes.
 Ajouter à chacune d'elles le(s) attribut(s) de jointure si elle ne
les possède pas.
 Générer le complément de chaque expression (c'est à dire les
autres attributs) en ajoutant le (ou les) attribut(s) de jointure.
 L'étape suivante consiste, pour chaque fragment Fi produit par la
fragmentation horizontale, à rechercher toutes les requêtes qui
concernent ce fragment et à prendre les expressions de
projection de ces requêtes.
EXERCICES D’APPLICATION
Soit la relation Compte (NoClient, Agence,TypeCompte, Somme).
Proposer un schéma de fragmentation horizontale, puis verticale
en tenant compte des requêtes suivantes :
R1 = [NoClient, Agence] ([(TypeCompte = 'courant') (Somme > 100 000)] Compte)
R2 = [Agence = 'Lausanne'] Compte.
R3 = [NoClient, Somme] ([(Agence = 'Genève') (TypeCompte = 'courant')]
Compte)
Exercice 1
59
EXERCICES D’APPLICATION
Soit la base de donnée suivante :
Rémunération (Titre, salaire)
Employé (numE, nomE, Titre)
Projet (numP, nomP, budget, ville)
Affectation (numE, numP, responsabilité, durée)
1. Proposer un schéma de fragmentation horizontale pour la
relation Rémunération.
2. A partir des requêtes R1 et R2, proposer un schéma de
fragmentation horizontale pour la relation Projet.
R1 : SELECT nomP, budget FROM Projet WHERE ville =
Paris.
R2 : SELECT * FROM projet WHERE budget < 200 000.
3. Fragmenter Employé selon les fragments de Rémunération.
4. Quels sont les choix de fragmentation de « Affectation ».
Exercice 2
60

Contenu connexe

Tendances

Les architectures client serveur
Les architectures client serveurLes architectures client serveur
Les architectures client serveurAmeni Ouertani
 
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
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision Yassine Badri
 
Introduction aux bases de données
Introduction aux bases de donnéesIntroduction aux bases de données
Introduction aux bases de donnéesAbdoulaye Dieng
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionLilia Sfaxi
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web ServicesLilia Sfaxi
 
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
 
Bases de données réparties par la pratique
Bases de données réparties par la pratiqueBases de données réparties par la pratique
Bases de données réparties par la pratiqueAbdelouahed Abdou
 
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
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceLilia Sfaxi
 
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
 
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Georges Amichia
 
Integration de donnees_etl
Integration de donnees_etlIntegration de donnees_etl
Integration de donnees_etlhoracio lassey
 
applications-reparties
applications-repartiesapplications-reparties
applications-repartiesmourad50
 
Rapport projet conception et la réalisation d'une application web gestion des...
Rapport projet conception et la réalisation d'une application web gestion des...Rapport projet conception et la réalisation d'une application web gestion des...
Rapport projet conception et la réalisation d'une application web gestion des...SAAD SARHANI
 

Tendances (20)

Les architectures client serveur
Les architectures client serveurLes architectures client serveur
Les architectures client serveur
 
Les BD NoSQL
Les BD NoSQLLes BD NoSQL
Les BD NoSQL
 
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
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
 
Présentation bi 1.0
Présentation bi 1.0Présentation bi 1.0
Présentation bi 1.0
 
Modélisation avec UML
Modélisation avec UMLModélisation avec UML
Modélisation avec UML
 
Introduction aux bases de données
Introduction aux bases de donnéesIntroduction aux bases de données
Introduction aux bases de données
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
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
 
Bases de données réparties par la pratique
Bases de données réparties par la pratiqueBases de données réparties par la pratique
Bases de données réparties par la pratique
 
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
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
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
 
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique
 
Integration de donnees_etl
Integration de donnees_etlIntegration de donnees_etl
Integration de donnees_etl
 
applications-reparties
applications-repartiesapplications-reparties
applications-reparties
 
Rapport projet conception et la réalisation d'une application web gestion des...
Rapport projet conception et la réalisation d'une application web gestion des...Rapport projet conception et la réalisation d'une application web gestion des...
Rapport projet conception et la réalisation d'une application web gestion des...
 

Similaire à Chapitre2_fragmentation_Abdali.pptx

Projet fortran : pré-dimensionnement et simulation d'une colonne de distillat...
Projet fortran : pré-dimensionnement et simulation d'une colonne de distillat...Projet fortran : pré-dimensionnement et simulation d'une colonne de distillat...
Projet fortran : pré-dimensionnement et simulation d'une colonne de distillat...Ludovic Leguillon
 
01-cotation-fonctionnelle-methodepdf.pptx
01-cotation-fonctionnelle-methodepdf.pptx01-cotation-fonctionnelle-methodepdf.pptx
01-cotation-fonctionnelle-methodepdf.pptxNgoloMamadouKone1
 
Oracle : extension du langage SQL
Oracle : extension du langage SQLOracle : extension du langage SQL
Oracle : extension du langage SQLMohammed Jaafar
 
FME WT 2014: (FR) Adaptation des géodonnées à un référentiel tel que le PICC
FME WT 2014: (FR) Adaptation des géodonnées à un référentiel tel que le PICCFME WT 2014: (FR) Adaptation des géodonnées à un référentiel tel que le PICC
FME WT 2014: (FR) Adaptation des géodonnées à un référentiel tel que le PICCGIM_nv
 
Cours DEA Satisfaction et Optimisation sous Contraintes
Cours DEA Satisfaction et Optimisation sous ContraintesCours DEA Satisfaction et Optimisation sous Contraintes
Cours DEA Satisfaction et Optimisation sous Contraintesanonymousmega02
 
Cours analyse-num source1
Cours analyse-num source1Cours analyse-num source1
Cours analyse-num source1Lacina Zina
 
Chaitre 3 Fonctions logiques (1).pptx
Chaitre 3 Fonctions logiques (1).pptxChaitre 3 Fonctions logiques (1).pptx
Chaitre 3 Fonctions logiques (1).pptxMohammedJaafari3
 
Polycop synchrone
Polycop synchronePolycop synchrone
Polycop synchroneomar971638
 
3 vb reference
3 vb reference3 vb reference
3 vb referencekkatia31
 
Td dimensionnenemt d'arbre
Td dimensionnenemt d'arbreTd dimensionnenemt d'arbre
Td dimensionnenemt d'arbreYoussef Trimech
 
Mat lab1
Mat lab1Mat lab1
Mat lab1fouadDD
 
L'impact des incriments des séquences de tri Shell. Expérimentation des séque...
L'impact des incriments des séquences de tri Shell. Expérimentation des séque...L'impact des incriments des séquences de tri Shell. Expérimentation des séque...
L'impact des incriments des séquences de tri Shell. Expérimentation des séque...Soumia Elyakote HERMA
 
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...Yassine Selmi
 
Note cours v0
Note cours v0Note cours v0
Note cours v0staros11
 
CA_RESMA_2022_01 Chap1.pdf
CA_RESMA_2022_01 Chap1.pdfCA_RESMA_2022_01 Chap1.pdf
CA_RESMA_2022_01 Chap1.pdfYassineAmal2
 
diffrents cas de trains epicycloidalaux TD_Train_epi_ v9.pdf
diffrents cas de trains epicycloidalaux TD_Train_epi_ v9.pdfdiffrents cas de trains epicycloidalaux TD_Train_epi_ v9.pdf
diffrents cas de trains epicycloidalaux TD_Train_epi_ v9.pdfsedmorabet
 

Similaire à Chapitre2_fragmentation_Abdali.pptx (20)

Projet fortran : pré-dimensionnement et simulation d'une colonne de distillat...
Projet fortran : pré-dimensionnement et simulation d'une colonne de distillat...Projet fortran : pré-dimensionnement et simulation d'une colonne de distillat...
Projet fortran : pré-dimensionnement et simulation d'une colonne de distillat...
 
01-cotation-fonctionnelle-methodepdf.pptx
01-cotation-fonctionnelle-methodepdf.pptx01-cotation-fonctionnelle-methodepdf.pptx
01-cotation-fonctionnelle-methodepdf.pptx
 
Oracle : extension du langage SQL
Oracle : extension du langage SQLOracle : extension du langage SQL
Oracle : extension du langage SQL
 
FME WT 2014: (FR) Adaptation des géodonnées à un référentiel tel que le PICC
FME WT 2014: (FR) Adaptation des géodonnées à un référentiel tel que le PICCFME WT 2014: (FR) Adaptation des géodonnées à un référentiel tel que le PICC
FME WT 2014: (FR) Adaptation des géodonnées à un référentiel tel que le PICC
 
Cours DEA Satisfaction et Optimisation sous Contraintes
Cours DEA Satisfaction et Optimisation sous ContraintesCours DEA Satisfaction et Optimisation sous Contraintes
Cours DEA Satisfaction et Optimisation sous Contraintes
 
Td logique
Td logiqueTd logique
Td logique
 
Cours analyse-num source1
Cours analyse-num source1Cours analyse-num source1
Cours analyse-num source1
 
Chaitre 3 Fonctions logiques (1).pptx
Chaitre 3 Fonctions logiques (1).pptxChaitre 3 Fonctions logiques (1).pptx
Chaitre 3 Fonctions logiques (1).pptx
 
Polycop synchrone
Polycop synchronePolycop synchrone
Polycop synchrone
 
3 vb reference
3 vb reference3 vb reference
3 vb reference
 
SQL partie III
SQL partie IIISQL partie III
SQL partie III
 
Td dimensionnenemt d'arbre
Td dimensionnenemt d'arbreTd dimensionnenemt d'arbre
Td dimensionnenemt d'arbre
 
Cours de Matlab
Cours de MatlabCours de Matlab
Cours de Matlab
 
Mat lab1
Mat lab1Mat lab1
Mat lab1
 
L'impact des incriments des séquences de tri Shell. Expérimentation des séque...
L'impact des incriments des séquences de tri Shell. Expérimentation des séque...L'impact des incriments des séquences de tri Shell. Expérimentation des séque...
L'impact des incriments des séquences de tri Shell. Expérimentation des séque...
 
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...
 
Note cours v0
Note cours v0Note cours v0
Note cours v0
 
CA_RESMA_2022_01 Chap1.pdf
CA_RESMA_2022_01 Chap1.pdfCA_RESMA_2022_01 Chap1.pdf
CA_RESMA_2022_01 Chap1.pdf
 
Initiation r
Initiation rInitiation r
Initiation r
 
diffrents cas de trains epicycloidalaux TD_Train_epi_ v9.pdf
diffrents cas de trains epicycloidalaux TD_Train_epi_ v9.pdfdiffrents cas de trains epicycloidalaux TD_Train_epi_ v9.pdf
diffrents cas de trains epicycloidalaux TD_Train_epi_ v9.pdf
 

Chapitre2_fragmentation_Abdali.pptx

  • 1. BASE DE DONNÉES RÉPARTIES Chapitre 2: Fragmentation BDR 1 SIR S6, INFO 3 ABDALI Abdelmounaïm 2019/2020
  • 2. DÉFINITION  La fragmentation est le processus de décomposition d'une base de donnée en un ensemble de sous bases de données.  Cette décomposition doit être sans perte d'information.  La fragmentation des données représente un sous-ensemble obtenu par la sélection de lignes et de colonnes à partir d’une relation globale localisée sur un site unique. 2
  • 3. POURQUOI FRAGMENTER ?  Amélioration des performances (placer les traitements à l’endroit où se trouvent les données).  Favoriser les accès locaux.  Équilibrer la charge de travail entre les sites. 3
  • 4. LES RÈGLES DE FRAGMENTATION  Les règles à appliquer sont : : 1. La complétude : pour toute donnée d’une relation R, il existe un fragment Ri de la relation R qui possède cette donnée. 2. La reconstruction : pour toute relation décomposée en un ensemble de fragments Ri, il existe une opération de reconstruction. 1. Pour les fragmentations horizontales, l’opération de reconstruction est l’ union. 2. Pour les fragmentations verticales c’est la jointure. 1. La Disjonction: assure que les fragments d’une relation sont disjoints deux à deux 4
  • 5. COMMENT FRAGMENTER ?  Possibilités de fragmentation d’une relation  Horizontale - basée sur des sélections  Verticale - basée sur des projections 5
  • 6. COMMENT FRAGMENTER (2) ?  Possibilités de fragmentation d’une relation  Hybride 6
  • 7. TECHNIQUE DE FRAGMENTATION HORIZONTALE  Il existe deux types de fragmentation horizontale:  Primaire  Dérivée  Fragmentation horizontale primaire :  Fragments définis par sélection Ex : Client( NClient, Nom, Ville) Client1 = Ville = Paris (Client) Client1= SELECT * FROM Client WHERE Ville = “Paris” Client2 = Ville != Paris (Client) Client2= SELECT * FROM Client WHERE Ville <> “Paris”  Reconstruction par union des fragments Ex : Client = Client1 U Client2 7
  • 8. FRAGMENTATION HORIZONTALE – EXEMPLE  Relation Client 8
  • 10. FRAGMENTATION HORIZONTALE DÉRIVÉE  Fragments définis par (semi) jointure Ex : Commande ( NC, NClient, Produit,Qté) Commande1 = Commande Client1 Commande2 = Commande Client2  Reconstruction par union des fragments Ex : Commande = Commande1 U Commande2 10 La Fragmentation d’une table en fonction des fragments horizontaux d’une autre table.
  • 11. EN SQL  Commande1= SELECT * FROM Commande WHERE NCLient IN (SELECT NCLient FROM CLIENT1)  Commande2= SELECT * FROM Commande WHERE NCLient IN (SELECT NCLient FROM CLIENT2) 11
  • 12. FRAGMENTATION HORIZONTALE DÉRIVÉE - EXEMPLE  Relation Commande 12
  • 13. FRAGMENTATION HORIZONTALE DÉRIVÉE – SUITE EXEMPLE  Relation Commande1  Relation Commande2 13
  • 14. FRAGMENTATION HORIZONTALE DÉRIVÉE - EXEMPLE 2 Contexte: On considère une base de données comprenant les tables suivantes: ETUDIANT (numE, nomE, pnomE, numC) CENTRE (numC, villeC, adrC, telC) avec : villeC ∈ {‘Paris’, ‘Lyon’, ‘Marseille’} Hypothèses  Chaque site gère son centre  Chaque centre gère ses étudiants 14
  • 15. FRAGMENTATION HORIZONTALE DÉRIVÉE - SUITE EXEMPLE 2 Solution: 1) fragmente les centres horizontalement selon les sites:  Centre1 = σvilleC = ‘Paris’(Centre)  Centre2 = σvilleC = ‘Lyon’(Centre)  Centre3 = σvilleC = ‘Marseille’(Centre) 2) Réaliser une semi jointure de la relation Etudiant avec les fragments de la relation centre :  Etudiant1 = Etudiant Centre1  Etudiant2 = Etudiant Centre2  Etudiant3 = Etudiant Centre3 15
  • 16. EN SQL centre1=select * from centre where villeC='Paris'; centre2=select * from centre where villeC='Lyon'; centre3=select * from centre where villeC='Marseille'; Etudiant1= SELECT * FROM Etudiant WHERE numC IN (SELECT numC FROM centre1); Etudiant2= SELECT * FROM Etudiant WHERE numC IN (SELECT numC FROM centre2); Etudiant3= SELECT * FROM Etudiant WHERE numC IN (SELECT numC FROM centre3) 16
  • 17. EXERCICE  Soit la base de données suivante :  Fragmenter les agences avec leurs clients avec leurs comptes. 17
  • 18. SOLUTION  On fragmente les agences horizontalement selon les sites : Agence1 = σAgence = ‘Lausanne’(Agence) Agence2 = σAgence = ‘Genève’(Agence)  Puis on fragmente les comptes selon les fragments des agences : Compte1=Compte Agence1 Compte2=Compte Agence2  Puis on fragmente les Clients selon les fragments des comptes : Client1= Client compte 1 Client2= Client compte 2 18
  • 19. FRAGMENTATION VERTICALE  Fragments définis par projection: Ex : Commande( NC, NClient, Produit,Qté) CommandeA= NC, NClient (Commande) CommandeB= NC, Produit, Qté(Commande)  Reconstruction par jointure Ex : Commande = CommandeA * CommandeB  Utile si forte affinité des attributs 19
  • 20. RÉPARTITION DES ATTRIBUTS (FRAGMENTATION VERTICALE)  Toutes les valeurs des occurrences pour un même attribut se trouvent dans le même fragment. Une fragmentation verticale est utile pour distribuer les parties des données sur le site où chacune de ces parties est utilisée.  L'opérateur de partitionnement est la projection (π)  L'opérateur de recomposition est la jointure 20
  • 21. 21
  • 22. FRAGMENTATION VERTICALE - EXEMPLE  Relation Commande 22
  • 23. FRAGMENTATION VERTICALE – SUITE EXEMPLE 23
  • 24. RÉPARTITION DES VALEURS (FRAGMENTATION HYBRIDE) 24
  • 26. EXEMPLE PERTE D’INFORMATION (2) 26 Pas de perte d’informations
  • 28. EXEMPLE PERTE D’INFORMATION (4) 28 Perte d’informations à cause du 2 qui est dédoublé
  • 29. EXERCICE  Soit les 2 schémas suivants : client et code. Question : Les fragments suivants sont ils correctes ? 29
  • 30. CORRIGÉ  il s’agit d’une fragmentation horizontale incorrecte car l’union des deux fragments cde1 et cde2 ne permet pas de reconstituer la table commande. On a une perte d’information (exemple : les informations de la commande D3 sont perdues). Violation de la contrainte de complétude de la fragmentation  il s’agit d’une fragmentation verticale incorrecte car la clé de la table client (N°client) ne figure pas dans le fragment client2. Violation de la règle de reconstitution de la fragmentation. 30
  • 31. DÉFINITION DES FRAGMENTS  Le principe est de baser la fragmentation sur l'ensemble des requêtes d'interrogation ou de mise à jour prédéfinies. Il faut extraire de ces requêtes toutes les conditions de sélections, les attributs projetés et les jointures. Les opérations de sélection sont à la base des fragmentations horizontales, les opérations de projection sont à la base des fragmentations verticales.  On ne s'intéresse alors qu'aux requêtes les plus fréquentes ou les plus sensibles. 31
  • 32. FRAGMENTATION HORIZONTALE:  Construire l’ensemble des conjonctions de ce (cc) suivant :  Simplifier chaque cc.  Supprimer les cc toujours fausses. 32
  • 33. 33
  • 34. 34
  • 35. 35
  • 36. 36
  • 37. 37
  • 38. 38
  • 39. 39
  • 40. 40
  • 41. 41
  • 42. 42
  • 43. 43
  • 44. 44
  • 45. 45
  • 46. 46
  • 47. 47
  • 48. 48
  • 49. FRAGMENTATION VERTICALE Emp( Enum, Nom, Ville,Sal) Emp1( Enum, Nom, Ville) Emp2( Enum,Sal)  Complétude et reconstruction:  Jointure sans perte d’information  Condition suffisante : répéter la clé dans chaque fragment  Autre choix : utiliser une dépendance fonctionnelle pour la décomposition (cf. normalisation)  Disjonction : seulement répéter la clé. 49
  • 50. COMMENT FRAGMENTER VERTICALEMENT?  Utiliser le sens commun...essayer d’automatiser.  Heuristiques :  " Clustering (décrit des méthodes de classification de données )- rapprochement en partant d’un attribut par fragment.  " Splitting - décomposition en partant d’un fragment unique pour obtenir une partition selon l’affinité des attributs. 50
  • 51. OUTIL - MATRICE D’AFFINITÉ (1)  Exemple Projet(Pnum, Pnom, Budget, Loc) A1 A2 A3 A4 q1: budget d’un projet étant donné son numéro q2: nom et budget de tous les projets q3 : nom des projets d’une ville q4 : budget total des projets d’une ville 51
  • 53. MATRICE D’AFFINITÉ - DÉFINITION  Refs( qk ), pour deux attributs (Ai, Ak) = nombre d’accès faits par une exécution de qk (sur le site s) à Ai et Ak.  Accs( qk) = fréquence de qk sur le site s (mesurée pendant une certaine période)  Matrice d’affinité: 53
  • 54. MATRICE D’AFFINITÉ - EXEMPLE  Supposons :  Les accès suivants (3 sites): Acc1(q1)=15 Acc2(q1) = 20 Acc3(q1) = 10 Acc1(q2)=5 Acc2(q2) = 0 Acc3(q2) = 0 Acc1(q3)=25 Acc2(q3) = 25 Acc3(q3) = 25 Acc1(q4)= 3 Acc2(q4) = 0 Acc3(q4) = 0 54
  • 55. MATRICE D’AFFINITÉ - EXEMPLE (2)  Matrice: 55
  • 56. REGROUPEMENT DES ATTRIBUTS  Regroupement des attributs ayant une haute affinité  Exemple : 56
  • 57. FIN EXEMPLE  La relation Projet est fragmentée en Projet1( Num, Budget) Projet2( Num, Nom, Loc)  Dans l’exemple (simple) la clé est dans l’ensemble d’attributs considéré.  Duplication de la clé pour garantir la reconstruction. 57
  • 58. DÉFINITION DES FRAGMENTS Fragmentation hybride:  On procède comme suit:  Extraire toutes les expressions de projection concernées par les requêtes.  Ajouter à chacune d'elles le(s) attribut(s) de jointure si elle ne les possède pas.  Générer le complément de chaque expression (c'est à dire les autres attributs) en ajoutant le (ou les) attribut(s) de jointure.  L'étape suivante consiste, pour chaque fragment Fi produit par la fragmentation horizontale, à rechercher toutes les requêtes qui concernent ce fragment et à prendre les expressions de projection de ces requêtes.
  • 59. EXERCICES D’APPLICATION Soit la relation Compte (NoClient, Agence,TypeCompte, Somme). Proposer un schéma de fragmentation horizontale, puis verticale en tenant compte des requêtes suivantes : R1 = [NoClient, Agence] ([(TypeCompte = 'courant') (Somme > 100 000)] Compte) R2 = [Agence = 'Lausanne'] Compte. R3 = [NoClient, Somme] ([(Agence = 'Genève') (TypeCompte = 'courant')] Compte) Exercice 1 59
  • 60. EXERCICES D’APPLICATION Soit la base de donnée suivante : Rémunération (Titre, salaire) Employé (numE, nomE, Titre) Projet (numP, nomP, budget, ville) Affectation (numE, numP, responsabilité, durée) 1. Proposer un schéma de fragmentation horizontale pour la relation Rémunération. 2. A partir des requêtes R1 et R2, proposer un schéma de fragmentation horizontale pour la relation Projet. R1 : SELECT nomP, budget FROM Projet WHERE ville = Paris. R2 : SELECT * FROM projet WHERE budget < 200 000. 3. Fragmenter Employé selon les fragments de Rémunération. 4. Quels sont les choix de fragmentation de « Affectation ». Exercice 2 60