SlideShare une entreprise Scribd logo

Bases de données réparties

Un Système de Gestion de Bases de Données Réparties est 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. Ce support de cours propose une vue d’ensemble sur les avantages et inconvénients de répartition de données. Aussi, il présente les différentes techniques de répartition

1  sur  60
Télécharger pour lire hors ligne
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

Recommandé

Base de données distribuée
Base de données distribuéeBase de données distribuée
Base de données distribuéekamar MEDDAH
 
Chapitre2_fragmentation_Abdali.pptx
Chapitre2_fragmentation_Abdali.pptxChapitre2_fragmentation_Abdali.pptx
Chapitre2_fragmentation_Abdali.pptxAimadBenzakry
 
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
 
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
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartisHeithem Abbes
 
Chp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation MultidimensionnelleChp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation MultidimensionnelleLilia Sfaxi
 
Réplication des bases de données
Réplication des bases de donnéesRéplication des bases de données
Réplication des bases de donnéessie92
 

Contenu connexe

Tendances

BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataLilia Sfaxi
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1Amal Abid
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrigeAmineMouhout1
 
Chp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de DonnéesChp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de DonnéesLilia Sfaxi
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiersHeithem Abbes
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence Yassine Badri
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UMLAmir Souissi
 
Introduction aux architectures des SI
Introduction aux architectures des SI Introduction aux architectures des SI
Introduction aux architectures des SI Heithem Abbes
 
Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Addi Ait-Mlouk
 
Cours Base de données relationnelles
Cours Base de données relationnellesCours Base de données relationnelles
Cours Base de données relationnellesAymen Kasmi
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
La gestion des comptes d’une agence bancaire
La gestion des comptes d’une agence bancaireLa gestion des comptes d’une agence bancaire
La gestion des comptes d’une agence bancaireWalid Aitisha
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkAmal Abid
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELLilia Sfaxi
 
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
 
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursBases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursHatim CHAHDI
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Hatim CHAHDI
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3Amal Abid
 

Tendances (20)

BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
Chp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de DonnéesChp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de Données
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Introduction aux architectures des SI
Introduction aux architectures des SI Introduction aux architectures des SI
Introduction aux architectures des SI
 
Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...
 
Cours Base de données relationnelles
Cours Base de données relationnellesCours Base de données relationnelles
Cours Base de données relationnelles
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
La gestion des comptes d’une agence bancaire
La gestion des comptes d’une agence bancaireLa gestion des comptes d’une agence bancaire
La gestion des comptes d’une agence bancaire
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
Big data
Big dataBig data
Big data
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
 
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
 
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursBases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3
 

Similaire à 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
 

Similaire à 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
 

Plus de 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
 

Plus de 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)
 

Dernier

Français langue étrangère: Le but et l'obligation 2024
Français langue étrangère: Le but et l'obligation 2024Français langue étrangère: Le but et l'obligation 2024
Français langue étrangère: Le but et l'obligation 2024Paulo Marques
 
Français langue étrangère: L'impératif présent 2024
Français langue étrangère: L'impératif présent 2024Français langue étrangère: L'impératif présent 2024
Français langue étrangère: L'impératif présent 2024Paulo Marques
 
DLAC 2024 - L’état de l’apprentissage électronique de la maternelle à la 12e ...
DLAC 2024 - L’état de l’apprentissage électronique de la maternelle à la 12e ...DLAC 2024 - L’état de l’apprentissage électronique de la maternelle à la 12e ...
DLAC 2024 - L’état de l’apprentissage électronique de la maternelle à la 12e ...Michael Barbour
 
Marseille XIXe fiche de travail 2024.pdf
Marseille XIXe fiche de travail 2024.pdfMarseille XIXe fiche de travail 2024.pdf
Marseille XIXe fiche de travail 2024.pdfNadineHG
 
antigone de jean Anouilh la tragédie moderne
antigone de jean Anouilh la tragédie moderneantigone de jean Anouilh la tragédie moderne
antigone de jean Anouilh la tragédie moderneayoubrhammadi2
 
Modulation Fm Tp presentation avancée USTHB
Modulation Fm Tp presentation avancée USTHBModulation Fm Tp presentation avancée USTHB
Modulation Fm Tp presentation avancée USTHBUsaPlay2
 
Offres d'emploi (Mise à Jour le 19/02).pptx
Offres d'emploi (Mise à Jour le 19/02).pptxOffres d'emploi (Mise à Jour le 19/02).pptx
Offres d'emploi (Mise à Jour le 19/02).pptxMissionLocale
 
Fabriquer une femme.Livre écrit par Marie Darrieussecq
Fabriquer une femme.Livre écrit par Marie DarrieussecqFabriquer une femme.Livre écrit par Marie Darrieussecq
Fabriquer une femme.Livre écrit par Marie DarrieussecqTxaruka
 
Calendrier de la semaine du 19 au 23 février 2024
Calendrier de la semaine du 19 au 23 février 2024Calendrier de la semaine du 19 au 23 février 2024
Calendrier de la semaine du 19 au 23 février 2024frizzole
 
Le langage n'est-il qu'un instrument de communication ? (V2)
Le langage n'est-il qu'un instrument de communication ? (V2)Le langage n'est-il qu'un instrument de communication ? (V2)
Le langage n'est-il qu'un instrument de communication ? (V2)Gabriel Gay-Para
 

Dernier (11)

Français langue étrangère: Le but et l'obligation 2024
Français langue étrangère: Le but et l'obligation 2024Français langue étrangère: Le but et l'obligation 2024
Français langue étrangère: Le but et l'obligation 2024
 
Français langue étrangère: L'impératif présent 2024
Français langue étrangère: L'impératif présent 2024Français langue étrangère: L'impératif présent 2024
Français langue étrangère: L'impératif présent 2024
 
DLAC 2024 - L’état de l’apprentissage électronique de la maternelle à la 12e ...
DLAC 2024 - L’état de l’apprentissage électronique de la maternelle à la 12e ...DLAC 2024 - L’état de l’apprentissage électronique de la maternelle à la 12e ...
DLAC 2024 - L’état de l’apprentissage électronique de la maternelle à la 12e ...
 
Marseille XIXe fiche de travail 2024.pdf
Marseille XIXe fiche de travail 2024.pdfMarseille XIXe fiche de travail 2024.pdf
Marseille XIXe fiche de travail 2024.pdf
 
antigone de jean Anouilh la tragédie moderne
antigone de jean Anouilh la tragédie moderneantigone de jean Anouilh la tragédie moderne
antigone de jean Anouilh la tragédie moderne
 
Modulation Fm Tp presentation avancée USTHB
Modulation Fm Tp presentation avancée USTHBModulation Fm Tp presentation avancée USTHB
Modulation Fm Tp presentation avancée USTHB
 
Offres d'emploi (Mise à Jour le 19/02).pptx
Offres d'emploi (Mise à Jour le 19/02).pptxOffres d'emploi (Mise à Jour le 19/02).pptx
Offres d'emploi (Mise à Jour le 19/02).pptx
 
Cours prothèse dentaire bac professionnel
Cours prothèse dentaire bac professionnelCours prothèse dentaire bac professionnel
Cours prothèse dentaire bac professionnel
 
Fabriquer une femme.Livre écrit par Marie Darrieussecq
Fabriquer une femme.Livre écrit par Marie DarrieussecqFabriquer une femme.Livre écrit par Marie Darrieussecq
Fabriquer une femme.Livre écrit par Marie Darrieussecq
 
Calendrier de la semaine du 19 au 23 février 2024
Calendrier de la semaine du 19 au 23 février 2024Calendrier de la semaine du 19 au 23 février 2024
Calendrier de la semaine du 19 au 23 février 2024
 
Le langage n'est-il qu'un instrument de communication ? (V2)
Le langage n'est-il qu'un instrument de communication ? (V2)Le langage n'est-il qu'un instrument de communication ? (V2)
Le langage n'est-il qu'un instrument de communication ? (V2)
 

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