Université du Havre
MASTER MATHÉMATIQUES ET INFORMATIQUE-Option SIRES
2010/2011
COURS BASES DE DONNEES REPARTIES COURS BASES DE DONNEES REPARTIESCOURS BASES DE DONNEES REPARTIES COURS BASES DE DONNEES REPARTIES Nakechbandi M., LITIS, Email : nakech@free.fr
Chapitre 1 Chapitre 1 Chapitre 1 Chapitre 1
1. Introduction : Notion de Bases de données 2. Définition : BD Répartie
3. Architecture des SGBD
4. Conception des bases réparties 5. Evaluation de requêtes réparties 6. Notion de Transaction Répartie 7. Les produits industriels des SGBDR
1.2
gestion de données
Introduction : Rappel - Bases de données c
onception et modélisationsystème(logiciel)
Gestion de données : Qu'est-ce qu'une BD ?
• Collection de données structurées reliées par des relations
• Interrogeable et modifiable par des langages de haut niveau
Modélisation des données
Eliminer la redondance de données
Centraliser et organiser correctement les données Outils de conception
Logiciel «Système de Gestion de Bases de Données»
Interrogation, cohérence, partage, gestion de pannes, etc…
Administration facilitées des données
1.3 Architecture des SGBD
Les architectures physiques de SGBD sont très liées au mode de répartition.
— BD centralisée
— BD client/serveur
— BD client/multi-serveurs
— BD répartie
— BD hétérogène
— BD mobile — BD parallèle
1.4 Architecture centralisée
Terminaux passifs
Mainframe
SGBD
Appli 1 Appli 2 Appli n réseau
données
1.5
Architecture client-serveur
Clients intelligents
serveur
SGBD
Appli 1 Appli 2 Appli n
données code
réseau
1.6 Architecture Client-
Multiserveurs
SGBD 2
données code
ODBC ODBC
SGBD 1
données code
Appli 1
SQL SQL
SQL SQL
1.7
Architecture répartie
SGBD 1
données code
SGBD 2
données code
Appli 1
Appli 2
Appli n
1.8 Architecture
mobile
Clients intelligents mobiles
serveur
SGBD
Réseau sans fil
données code
Données répliquées et/ou personnelles
1.9
BD parallèle
BD parallèle = Techniques des bases de données + Parallélisme et architecture parallèle Cette option permet d’exécuter certains ordres SQL en parallèle
Il faut bien entendu avoir une machine multiprocesseur pour en tirer avantage.
ORACLE PARALLEL
CREATE TABLE tableName (...) PARALLEL 4;
4 spécifie le nombre de processus qui peuvent parcourir la table en parallèle
1.10 2. Définition : BD Répartie
BD Répartie
• Ensemble de bases localisées sur différents sites, perçues par l'utilisateur comme une base unique
• Chaque base possède son schéma local
• Le schéma de la base répartie constitue le schéma global
• Les données sont accédées via des vues intégrées assurent la transparence à la localisation
permettent des recompositions de tables par union/jointure
1.11 Exemple
Une application gère une coopérative vinicole dont le schéma conceptuel est le suivant : Producteurs
produit commande
Buveurs vins
Une implémentation centralisée de ce schéma donne le schéma relationnel suivant :
• Buveurs (nb, nom, prénom, ville)
• Commandes (nb, nv, date , qté)
• Vins (nv, cru, année, degré)
• Producteurs (np, nom, région)
• Produit (nv, np, qté)
1.12
Si on suppose que cette base de données est gérée par 3 sites : localisés à Paris, Bordeaux, et Dijon, on peut envisager une gestion par un schéma relationnel comme suit :
PARIS Buveurs
commandes
Bordeaux Dijon Vins vins
producteurs producteurs
produit produit
1.13
Quelques définitions complémentaires
• BD interpérables : BD capable d’échanger des données en comprenant mutuellement ce
qu’elles représentes
Exemple : La création d’une table dynamique d’Access liée à une table Oracle via ODBC
• Multibase : Plusieurs bd hétérogènes capable d’interopérer avec une application via un langage
(ou interface) commun (sans modèle commun) Exemple :
• BD fédérée : Plusieurs bd hétérogènes accédées comme une seule via une vue commune
(avec modèle commun).
Exemple :
1.14
Exemples (Multibase, BD fédérée)
Commentaires
• Système légataire : stocke les données de gestion de l'entreprise,
• Bases de données techniques : Cette base décrit les produits fabriqués et leurs
composants, base de données textuelles : contient par exemple les manuels d'opérations.
• bases de données géographiques : Cette BD décrit la localisation des usines et des clients.
1.15 Système de GBD réparti (SGBDR)
SGBDR
SGBD1 SGBD2
DEFINITION : UN SGBD REPARTI ASSURE LA GESTION D'UNE BD REPARTIE Objectifs : Rend la répartition (ou distribution) transparente
• Définition des données réparties : Cohérence des données ---> dictionnaire des données réparties
• traitement des requêtes réparties
---> Requête distribuée : Requête émise par un client dont l’exécution nécessite l’exécution de n sous requêtes sur n serveur (n > 1)
• gestion de transactions réparties
• gestion de la cohérence et de la sécurité
• Autonomie locale des sites
• Support de l’hétérogénéité
1.16 Evaluation de l'approche BDR
avantages
• Extensibilité
• partage des données hétérogènes et réparties
• performances avec le parallélisme (d’accès)
• Disponibilité des données à sur plusieurs sites (avec la réplication)
inconvénients
• administration complexe
• distribution du contrôle
• surcharge (l’échange de messages augmente le temps de calcul)
1.17 3. Architecture de schémas
Deux approches :
• Schéma global
• Schéma fédéré
Schéma global
application 1 application 2
Schéma local 1 Schéma local 2 Schéma local 3
1.18 Schéma global
schéma conceptuel global
• donne la description globale et unifiée de toutes les données de la BDR (e.g., des relations globales)
• indépendance à la répartition
schéma de placement
• règles de correspondance avec les données locales
• indépendance à la localisation, la fragmentation et la duplication
Le schéma global fait partie du dictionnaire de la BDR et peut être conçu comme une BDR (dupliqué ou fragmenté)
1.19 Exemple de schéma global
Schéma conceptuel global
Client (nclient, nom, ville)
Cde (ncde, nclient, produit, qté)
Schéma de placement
Client = Client1 @ Site1 U Client1 @ Site2 Cde = Cde @ Site3
1.20 Architecture fédérée
application 1 application 2
Schéma local 1 Schéma local 2 Schéma local 3
Schéma fédéré 1 Schéma fédéré 2
1.21
Exemple de schéma fédéré
On considère deux bases de données :
La première est la BD préfecture composée de 3 tables : (Installée sur le site 1) PERSONNE (NOM, PRÉNOM, ADRESSE,...)
VOITURE (N-VEH, MARQUE, TYPE,... ) CONDUCTEUR (N-PERS, N-VEH, NBACC,...)
La deuxieme est la BD SAMU composée de 2 tables (Installée sur le site 2) ACCIDENT (N-ACC, DATE, DEPT, N-VEH, N-PERS, ...)
BLESSÉ (N-ACC, N-PERS, GRAVITÉ, ...) Une application a besoin de la requête suivante :
On souhaite trouver la Liste des blessés graves dans une R18 dans la préfecture du site 1 Solution :
1.22 4. Conception des bases réparties
Pour migration vers une BDR la question qui se pose ici est comment répartir les données et comment on peut les reintégrer :
- Décomposition en BD locales
- Intégration logique des BDs locales existantes
… BDR
BD2 BD
nBD1
décomposition intégration
1.23
Méthode de conception d’une BD répartie
• METHODE DESCENDANTE
-> Schéma conceptuel global de la base -> Fragmentation des relations
-> Allocation des fragments
• METHODE ASCENDANTE
-> N schémas conceptuels locaux
-> Intégration des n vues locales afin d'obtenir un unique schéma conceptuel global
-> Modification éventuelle de la fragmentation et de la réplication
1.24
METHODE DESCENDANTE : Conception par décomposition
Table globale
fragmentation
allocation
Site 1 Site 2
1.25
Exemple
1.26 Objectifs de la décomposition
Fragmentation
• trois types : horizontale, verticale, mixte
• performances en favorisant les accès locaux
• équilibrer la charge de travail entre les sites (parallélisme)
Duplication (ou réplication)
• favoriser les accès locaux
• augmenter la disponibilité des données
1.27 Fragmentation horizontale
Fragments définis par sélection
• Client1 = Client where ville = "Paris"
• Client2 = Client where ville ≠ "Paris"
Reconstruction
Client =Client1 U Client2
nclient nom ville
C 1 C 2 C 3 C 4
Dupont Martin Martin Smith
Paris Lyon Paris Lille
nclient nom ville
C 1 C 3 Dupont Martin
Paris Paris
nclient nom ville
C 2
C 4 Martin
Smith
Lyon Lille Client
Client1
Client2
1.28 Fragmentation horizontale dérivée
Fragments définis par jointure Cde1 = Cde where
Cde.nclient = Client1.nclient Cde2 = Cde where
Cde.nclient = Client2.nclient
Reconstruction Cde = Cde1 U Cde2
ncde nclient produit D 1
D 2 D 3 D 4
C 1 C 1 C 2 C 4
P 1 P 2 P 3 P 4 Cde
qté 10 20 5 10
ncde nclient produit D 1
D 2
C 1
C 1 P 1
P 2 Cde1
qté 10 20
ncde nclient produit D 3
D 4
C 2
C 4 P 3
P 4 Cde2
qté
5
10
1.29 Fragmentation verticale
Fragments définis par projection
• Cde1 = Cde (ncde, nclient)
• Cde2 = Cde (ncde, produit, qté) Reconstruction
• Cde = [ncde, nclient, produit, qté] where Cde1.ncde = Cde2.ncde
Utile si forte affinité d'attributs
ncde nclient produit D 1
D 2 D 3 D 4
C 1 C 1 C 2 C 4
P 1 P 2 P 3 P 4 Cde
qté 10 20 5 10
ncde nclient D 1
D 2 D 3 D 4
C 1 C 1 C 2 C 4 Cde1
ncde Cde2
P 1 P 2 P 3 P 4
10 20 5 10 D 1
D 2 D 3 D 4
produit qté
1.30 Allocation des fragments aux sites
Non-dupliquée
• partitionnée : chaque fragment réside sur un seul site Dupliquée
• chaque fragment sur un ou plusieurs sites
• maintien de la cohérence des copies multiples Règle intuitive:
• si le ratio est [lectures/màj] > 1, la duplication est avantageuse
1.31 Exemple d'allocation de fragments
P 1
P 2 10
20 D 1
D 2
C 1 C 1 Cde1
ncde client produit D 3
D 4
C 2
C 4 P 3
P 4 Cde2
qté 5 10 nclient nom ville
C 1 C 3
Dupont
Martin Paris Paris
C 2 C 4
Martin
Smith Lyon Lille
Client1 Client2
nclient nom ville
Site 1 Site 2
ncde client produit qté
1.32
METHODE ASCENDANTE :
Création d'un schéma unique partant de plusieurs schémas
Conception BDR par intégration
Traduction de schémas
Intégration de schémas
BD1 BD2 BD3
Traducteur 1
S local 1
Intégrateur
Schéma Global Traducteur 2
S local
2 S local 3
Traducteur 3
1.33 Les étapes
La création d'un schéma unique passe par les quatre étapes suivantes : 1.
pré-intégration• identification des éléments reliés (e.g. domaines équivalents) et établissement des règles de conversion (e.g. 1 inch = 2,54 cm)
• Pbs : hétérogénéité des modèles de données, des puissances d’expression, des modélisations
2. comparaison
• identification des conflits de noms (synonymes, homonymes) et des conflits structurels (types, clés, dépendances)
3. conformance
• résolution des conflits de noms (renommage) et des conflits structurels (changements de clés, tables d'équivalence)
• Définition de règles de traduction entre le schéma intégré et les schémas initiaux.
4. fusion et restructuration
• fusion des schémas intermédiaires et restructuration pour créer un schéma intégré optimal.
Exemple : Exercice 1 de TD1
1.34 5. Requêtes réparties
Fragmentation
Optimisation
Schéma
de fragmentation
Schéma d'allocation Requête sur tables globales
Requête sur fragments
Plan d'exécution réparti
1.35
Exemple : On considère le schéma relationnel suivant : -
Produit(NP, Designation, PrixUnit, ...)- Client(NCL, Nom, Ville)
- Commande(NP, NCL, Date, Qte,...) On cherche à exécuter la requête :
select NCL,Nom,Date, Sum(Qte*PrixUnit)
from (Cmd join Client using (NCL)) join Produit using (NP) group by NCL,Nom,Date;
L’implementation de la BD repartie est comme suite :
1.36
On sait que les commandes concernent les produits qui sont enregistrer dans le site3 et le site 4 (produit1).
L’exécution de cette requête peut se faire par le schéma :
1.37
La fragmentation de l ’arbre d’exécution donne :
1.38
Allocation des fragments de l ’arbre
1.39
Plan d ’exécution d’une requête repartie
ensemble des Sous-Requêtes sur les schémas locaux et des opérations de transferts des résultats intermédiaires.
L’objectif est de recherche un plan d ’exécution de coût minimal
Coût = f ( temps de réponse, $ )
est une fonction sur l ’espace des plans d ’exécution Coût = a*Coût CPU + b*Coût ES + d*Coût Comm
En WAN, le coût de communication est majoritaire d*Coût Comm >> a*Coût CPU + b*Coût ES
1.40
6. Notion de Transaction Répartie
(un chapitre concernant cette partie est assurée par B. Sadeg)application
Gérant de
Transactions Globales
Gérant de
Transactions Locales
Gérant de
Transactions Locales résultats
Begin Read Write Abort Commit
STrans.
STrans.
1.41
7. Les produits industriels des SGBDR
Sur pc
• SQL Server 2000, Sybase (Mode réparti, Two-phase commit, Triggers, Librairie de fonctions enrichie, Intégrité des données)
• Informix(Consultation multiserveur)
• Ingres(Mode réparti avec : Ingres Star, 2 phases commit).
• MS ACCESS
Sur mainframe
• DB2 : Transaction distribuée,
Définition de données global gestion d’intégrité des données externes, Données externe (non DB2)
• Oracle
1.42 Oracle/Star
SGBD Oracle
• gestion du dictionnaire de la BDR SQL*Net
• transparence au réseau
• connexion client-serveur, login à distance automatique
• évaluation de requêtes réparties
• validation en deux étapes et réplication
SQL*Connect : passerelle vers les bases non-Oracle
1.43
8.
8. 8.
8. Database link Database link Database link (sous oracle) Database link
Lien à une table dans une BD distante
Syntaxe :
SQL> CREATE [PUBLIC] DATABASE LINK <nom de lien de base de données> [CONNECT TO
<utilisateur oracle> IDENTIFIED BY <mot de passe utilisateur oracle distant>]
USING '<chaîne de connection>' ;
'chaîne de connection' est une chaîne de connexion SQL*NET définie dans le fichier (tnsnames.ora).
Exemple : la chaîne de connection 'db2' peut être définie comme suite : db2=(DESCRIPTION= (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP) (HOST=193.48.166.221)(PORT= 1521)))
(CONNECT_DATA= (SID=distante_db)))
Exemple de creation de lien :
CREATE [PUBLIC] DATABASE LINK nomdb CONNECT TO scott IDENTIFIED BY tiger USING 'db2' ;
select * from Emp@nomdb;
Synonyme: pseudo table locale = table distante
Exemple : create synonym Emp_db2 for Emp@nomdb;
select * from Emp_db2
Autres requêtes et exemple relatives à Database link
SQL> decribe dba_db_links;
SQL> select owner, db_link, username from dba_db_links;
exemple
SQL> CREATE DATABASE LINK compta_bordeaux CONNECT TO compta IDENTIFIED BY xyz USING 'la_base_de_bordeaux' ;
SQL> SELECT * FROM balance@compta_bordeaux ; -- on peut le rendre transparent grace aux synonymes
SQL> CREATE SYNONYM balance FOR balance@compta_bordeaux ; SQL> SELECT * FROM balance ;
Références
G. Gardarin, O. Gardarin , Le Client-Serveur , Eyrolles, 2e édition, 1996
Bases de données : Introduction et Objectifs, G. Gardarin et L. Bouganim, support de cours, http://georges.gardarin.free.fr/
S. Miranda, A. Ruols , Client-Serveur, Moteurs SQL, middleware, et architectures parallèles Eyrolles, 2e édition, 1996.
M.T.Ozsu, P.Valduriez , Principles of Distributed DataBase Systems Prentice-Hall, Inc., Englewood Cliffs, New Jersey, 1991.
G.Gardarin, P.Valduriez , SGBD avancés, BD objets, déductives, réparties, Eyrolles, Paris, 1990.
Didier DONSEZ Répartition, Réplication, Nomadisme, Hétérogénéité dans les SGBDs, polycopié, IMAG, Université Grenoble.