Microsoft PowerPoint - ch1_BDReparties.ppt [Mode de

Transcription

Microsoft PowerPoint - ch1_BDReparties.ppt [Mode de
Université du Havre
MASTER MATHÉMATIQUES ET INFORMATIQUE-Option SIRES
2013/20134
gestion de données
COURS BASES DE DONNEES REPARTIES
Nakechbandi M., LITIS, Email : [email protected]
Introduction : Rappel - Bases de données
Chapitre 1
conception et modélisation
système(logiciel)
1. Introduction : Notion de Bases de données
2. Définition : BD Répartie
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
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
Architecture des SGBD
Architecture centralisée
Les architectures physiques de SGBD sont très liées au mode de répartition.
Terminaux passifs
— BD centralisée
— BD client/serveur
— BD client/multi-serveurs
réseau
— BD répartie
— BD hétérogène
Appli 1
Appli 2
Mainframe
Appli n
— BD mobile
— BD parallèle
SGBD
données
1.3
1.4
Architecture Client-Multiserveurs
Architecture client-serveur
Clients intelligents
Appli 1
Appli 2
Appli n
Appli 1
SQL
SQL
réseau
ODBC
ODBC
serveur
SQL
SQL
SGBD
code
SGBD 1
données
code
SGBD 2
données
code
1.5
1.6
Architecture répartie
Architecture mobile
données
Clients intelligents
mobiles
Appli 1
Appli 2
Données répliquées
et/ou personnelles
Appli n
Réseau sans fil
serveur
SGBD 1
code
SGBD 2
données
code
1.7
données
SGBD
code
données
1.8
BD parallèle
2. Définition : BD Répartie
BD Répartie
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
• 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
CREATE TABLE tableName (...) PARALLEL 4;
4 spécifie le nombre de processus qui peuvent parcourir la table en parallèle
• 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.9
1.10
Exemple
Une application gère une coopérative vinicole dont le schéma conceptuel est le suivant :
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 :
Producteurs
PARIS
Buveurs
commandes
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é)
Bordeaux
Vins
Dijon
vins
producteurs
producteurs
produit
1.11
produit
1.12
Quelques définitions complémentaires
Exemples (Multibase, BD fédérée)
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 : Exercice 1 td1
Commentaires
•
Système légataire : stocke les données de gestion de l'entreprise,
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).
•
•
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.
Exemple :
1.13
1.14
Système de GBD réparti (SGBDR)
Evaluation de l'approche BDR
avantages
• Extensibilité
SGBDR
• partage des données hétérogènes et réparties
SGBD1
SGBD2
• performances avec le parallélisme (d’accès)
• Disponibilité des données à sur plusieurs sites (avec la réplication)
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
inconvénients
• administration complexe
• distribution du contrôle
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é
• surcharge (l’échange de messages augmente le temps de calcul)
1.15
1.16
Schéma global
3. Architecture de schémas
schéma conceptuel global
• donne la description globale et unifiée de toutes les données de la BDR (e.g., des
relations globales)
Deux approches :
• Schéma global
• Schéma fédéré
• indépendance à la répartition
application 1
application 2
schéma de placement
• règles de correspondance avec les données locales
• indépendance à la localisation, la fragmentation et la duplication
Schéma global
Le schéma global fait partie du dictionnaire de la BDR et peut être conçu comme une BDR
(dupliqué ou fragmenté)
Schéma local 1
Schéma local 2
Schéma local 3
1.17
Exemple de schéma global
1.18
Architecture fédérée
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
application 1
application 2
Schéma fédéré 1
Schéma fédéré 2
Schéma local 1
1.19
Schéma local 2
1.20
Schéma local 3
Pour migration vers une BDR la question qui se pose ici est comment répartir les données et comment
Exemple de schéma fédéré
on peut les reintégrer :
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,...)
- Décomposition en BD locales
- Intégration logique des BDs locales existantes
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
BDR
décomposition
intégration
Solution :
BD1
BDn
BD2
…
1.21
Méthode de conception d’une BD répartie
•
1.22
METHODE DESCENDANTE : Conception par décomposition
METHODE DESCENDANTE
->
Schéma conceptuel global de la base
->
Fragmentation des relations
->
Allocation des fragments
Table globale
fragmentation
•
METHODE ASCENDANTE
allocation
->
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.23
Site 1
Site 2
1.24
Exemple
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.25
1.26
Fragmentation horizontale
Fragmentation horizontale dérivée
Client
Fragments définis par sélection
• Client1 = Client where ville = "Paris"
• Client2 = Client where ville ≠ "Paris"
nclient
C1
C2
C3
C4
nom
ville
Dupont
Martin
Martin
Smith
Paris
Lyon
Paris
Lille
Client1
nclient
C1
C3
Reconstruction
Client =Client1 U Client2
nom
ville
Dupont
Martin
Paris
Paris
nclient
C2
C4
1.27
nom
ville
Martin
Smith
Lyon
Lille
ncde
D1
D2
D3
D4
nclient
C1
C1
C2
C4
produit
qté
P1
P2
P3
P4
10
20
5
10
Reconstruction
Cde = Cde1 U Cde2
Cde1
ncde
Client2
Cde
Fragments définis par jointure
Cde1 = Cde where
Cde.nclient = Client1.nclient
Cde2 = Cde where
Cde.nclient = Client2.nclient
D1
D2
Cde2
nclient
C1
C1
produit
qté
ncde
P1
P2
10
20
D3
D4
1.28
nclient
C2
C4
produit
qté
P3
P4
5
10
Allocation des fragments aux sites
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
Non-dupliquée
• partitionnée : chaque fragment réside sur un seul site
Cde
ncde
D1
D2
D3
D4
Utile si forte affinité d'attributs
nclient
C1
C1
C2
C4
produit
qté
P1
P2
P3
P4
10
20
5
10
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
Cde2
Cde1
ncde
D1
D2
D3
D4
nclient
C1
C1
C2
C4
ncde
produit
qté
D1
D2
D3
D4
P1
P2
P3
P4
10
20
5
10
1.29
1.30
METHODE ASCENDANTE :
Création d'un schéma unique partant de plusieurs schémas
Exemple d'allocation de fragments
Conception BDR par intégration
BD1
BD2
BD3
Client2
Client1
nclient
nom
ville
nclient
nom
ville
C1
C3
Dupont
Martin
Paris
Paris
C2
C4
Martin
Smith
Lyon
Lille
Traduction
de schémas
Traducteur 1
Traducteur 2
S local 1
S local 2
Cde2
Cde1
ncde
client
D1
D2
C1
C1
produit
P1
P2
qté
ncde
client
produit
qté
10
20
D3
D4
C2
C4
P3
P4
5
10
Site 2
Site 1
1.31
Intégration
de schémas
Intégrateur
Schéma Global
1.32
Traducteur 3
S local 3
Les étapes
5. Requêtes réparties
La création d'un schéma unique passe par les quatre étapes suivantes :
Requête sur tables globales
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.
Requête sur fragments
Exemple : Exercice 1 de TD1
Plan d'exécution réparti
1.33
Exemple : On considère le schéma relationnel suivant :
- Produit(NP, Designation, PrixUnit, ...)
- Client(NCL, Nom, Ville)
- Commande(NP, NCL, Date, Qte,...)
Schéma
de fragmentation
Fragmentation
Schéma
d'allocation
Optimisation
1.34
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 :
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.35
1.36
La fragmentation de l ’arbre d’exécution donne :
Allocation des fragments de l ’arbre
1.37
1.38
6. Notion de Transaction Répartie
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
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.
STrans.
Gérant de
Transactions Locales
Gérant de
Transactions Locales
1.39
1.40
7. Les produits industriels des SGBDR
Oracle/Star
SGBD Oracle
• gestion du dictionnaire de la BDR
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
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
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.41
1.42
Autres requêtes et exemple relatives à Database link
8. Database link (sous oracle)
SQL> decribe dba_db_links;
SQL> select owner, db_link, username from dba_db_links;
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>' ;
Exemple
SQL> CREATE DATABASE LINK compta_bordeaux CONNECT TO compta IDENTIFIED BY xyz
USING 'la_base_de_bordeaux' ;
'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)))
SQL> SELECT * FROM balance@compta_bordeaux ;
Exemple de creation de lien :
CREATE [PUBLIC] DATABASE LINK nomdb CONNECT TO scott IDENTIFIED BY tiger USING
'db2' ;
select * from Emp@nomdb;
-- 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
G. Gardarin et L. Bouganim, Bases de données : Introduction et Objectifs, support de cours, http://georges.gardarin.free.fr/
G. Gardarin, P.Valduriez , SGBD avancés, BD objets, déductives, réparties, Eyrolles, Paris, 1990.
Synonyme: pseudo table locale = table distante
Exemple : create synonym Emp_db2 for Emp@nomdb;
select * from Emp_db2
1.43
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.
D. DONSEZ Répartition, Réplication, Nomadisme, Hétérogénéité dans les SGBDs, polycopié, IMAG, Université Grenoble.

Documents pareils