Chapitre1 - Base de données distribuée

publicité
Université du Havre
MASTER MATHÉMATIQUES ET INFORMATIQUE-Option SIRES
2016/2017
COURS BASES DE DONNEES REPARTIES
Nakechbandi M., LITIS, Email : [email protected]
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
8. Le produit Oracle
1
gestion de données
1. Introduction : Rappel - Bases de données
conception et modélisation
systè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
2
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 parallèle
3
Architecture centralisée
Terminaux passifs
réseau
Appli 1
Appli 2
Appli n
Mainframe
SGBD
données
4
Architecture client-serveur
Clients intelligents
Appli 1
Appli 2
Appli n
réseau
serveur
SGBD
code
données
5
Architecture Client-Multiserveurs
Appli 1
SQL
ODBC
SQL
ODBC
SQL
SQL
SGBD 1
code
données
SGBD 2
code
données
6
Architecture répartie
Appli 1
Appli 2
Appli n
SGBD 1
code
données
SGBD 2
code
données
7
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
8
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
9
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é)
10
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
Vins
producteurs
produit
Dijon
vins
producteurs
produit
11
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 : Dans le schéma relationnel ci-dessous, on pressente une multibase base de données :
PERSONNE (N-PERS, NOM, PRÉNOM, ADRESSE,...)
VOITURE (N-VEH, MARQUE, TYPE,... )
CONDUCTEUR (N-PERS, N-VEH, NBACC,...)
ACCIDENT (N-ACC, DATE, DEPT, N-VEH, N-PERS, ...)
BLESSÉ (N-ACC, N-PERS, GRAVITÉ, ...)
Implémentation :
Sites 75 à 95 : bases préfectures de la région parisienne avec Voiture, Conducteur et Personne pour les voitures
immatriculées dans le département.
Site 2 : base SAMU de la région parisienne avec ACCIDENT, BLESSÉ.

BD fédérée : Plusieurs bd accédées comme une seule via une vue commune (avec modèle
commun).
Exemple : toutes les bases de données qu’on va faire avec Oracle dans ce cours.
12
Système de GBD réparti (SGBDR)
SGBDR
SGBD1
SGBD2
Par définition : Un SGBD Reparti (ou Distribué) est un système qui assure la gestion
d'une bd
repartie via plusieurs SGBD.

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é
13
 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)
14
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 réintégrer :
- Décomposition en BD locales
- Intégration logique des BDs locales existantes
BDR
décomposition
BD1
intégration
BD2
BDn
…
15
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
16
METHODE DESCENDANTE : Conception par décomposition
Table globale
fragmentation
allocation
Site 1
Site 2
17
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
18
Fragmentation horizontale

Fragments définis par sélection
• Client1 = Client where ville = "Paris"
• Client2 = Client where ville  "Paris"
Client
nclient
C1
C2
C3
C4
nom
ville
Dupont
Martin
Martin
Smith
Paris
Lyon
Paris
Lille
nom
ville
Dupont
Martin
Paris
Paris
nom
ville
Martin
Smith
Lyon
Lille
Client1
nclient
Reconstruction
Client =Client1 U Client2
C1
C3
Client2
nclient
C2
C4
19
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
Cde
ncde
D1
D2
D3
D4
Utile si forte affinité d'attributs
D1
D2
D3
D4
C1
C1
C2
C4
produit
qté
P1
P2
P3
P4
10
20
5
10
Cde2
Cde1
ncde
nclient
nclient
ncde
produit
qté
C1
C1
C2
C4
D1
D2
D3
D4
P1
P2
P3
P4
10
20
5
10
20
METHODE ASCENDANTE :
Création d'un schéma unique partant de plusieurs schémas
Conception BDR par intégration
BD1
Traduction
de schémas
BD2
Traducteur 1
Traducteur 2
S local 1
S local 2
Intégration
de schémas
BD3
Traducteur 3
S local 3
Intégrateur
Schéma Global
21
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 2 et 3 de TD1
22
5. Evaluation de requêtes réparties
Exemple : On considère un schéma global composé de trois tables suivantes :
-
Produit (NP, Designation, PrixUnit, ...);
Client (NCL, Nom, Ville);
Commande (NP, NCL, Date, Qte,...) ;
Qui sont Reparties (implemenés) selon le schéma de la figure ci-dessous.
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;
23
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 :
24
La fragmentation de l ’arbre d’exécution donne :
25
Allocation des fragments de l ’arbre
26
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 rechercher 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 Réseaux à distance (WAN), le coût de communication est majoritaire
d*Coût Comm >> a*Coût CPU + b*Coût ES
27
6. Notion de Transaction Répartie
Begin
Read
Write
Abort
Commit
(un chapitre concernant cette partie est assurée par B. Sadeg)
application
résultats
Gérant de
Transactions Globales
STrans.
Gérant de
Transactions Locales
STrans.
Gérant de
Transactions Locales
28
7. Les produits industriels des SGBDR
(Pour un panorama des produis de SGBD voir : http://fadace.developpez.com/sgbdcmp/)
Sur pc
• SQL Server, 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 (IBM): Transaction distribuée,
Définition de données global  gestion d’intégrité des données externes,
Données externe (non DB2)
• Oracle (Apogée : le progiciel de gestion intégré pour l'organisation et la gestion des
enseignements et des étudiants de l‘Université du Havre utilise Oracle architecture
client/serveur)
• ?
29
8. Le Produit Oracle
Une base de données Oracle est constituée de plusieurs éléments :
• Des processus chargés en mémoire sur le serveur
• Des fichiers physiques stockés sur le serveur
• D'un espace mémoire sur le serveur appelé SGA (System Global Area)
Architecture générale d’une instance Oracle
30
Ci-dessous les éléments d’une base de données Oracle sous Unix :
- les processus
- les fichiers physiques stockés sur le serveur
- l’espace mémoire appelé SGA (System Global Area)
31
Sous Windows l’espace mémoire SGA (System Global Area) est structuré comme suite :
Par contre la structure des fichiers Windows est identique à celle de Unix :
32
Database link (sous oracle)
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
33
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
• D. DONSEZ Répartition, Réplication, Nomadisme, Hétérogénéité dans les SGBDs, polycopié, IMAG, Université Grenobl.
• M. Exbrayat, Bases de Données Réparties Concepts et Techniques, ULP Strasbourg, support de cours, 2007, http://icps.ustrasbg.fr/~loechner/enseignement/m2ria/exbrayat/Bdrep1-bases.pdf
• Georges Gardarin, Bases de données réparties, support de cours : georges.gardarin.free.fr/Cours_BD_Web/GG2-BDReparties.ppt
visiter également : 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, Englewood Cliffs, New Jersey, 1991.
34
Téléchargement