Beruflich Dokumente
Kultur Dokumente
M. Bouneffa
Introduction et Historique
Inventes la fin des annes 70 pour lintgration des BD et des rseaux. s Projet SDD1 (1976) : grer les donnes embarques dans les bateaux de la US Navy. s Sirius (France lanc en 1977) s Ingres/Star (Berkeley 1977) s R* (IBM San Jose )
s
Au milieu des annes 80, les projets de recherche se sont intresss aux bases de donnes htrognes (Multibase, etc.) et la fdration de bases de donnes existantes.
Dfinition :
Une BDR est un ensemble de BD gres par des sites diffrents et apparaissant lutilisateur comme une base unique.
Exemple
Buveurs Commandes Bordeaux VINS PRODUCTEURS PRODUIT Paris
Schma global
Cest le schma qui permet de reprsenter lensemble des donnes de la BDR. s Ce schma nest pas forcment matrialis sur le disque. Chaque BD peut implanter une partie du schma global (appel aussi schma conceptuel de la BDR).
s
Exemple
s s s s s
BUVEURS(NB, NOM, PRENOM, VILLE) COMMANDES(NB, NV, DATE, Qt) VINS(NV, CRU, ANNEE, DEGRE) PRODUCTEURS(NP, NOM, REGION) PRODUIT(NV, NP, Qt)
Dfinitions
s
SGBD rparti ou SGBDR (Distributed DBMS ou DDBMS) Systme qui gre des collections de BD logiquement relies, distribues sur un rseau, en fournissant un mcanisme daccs qui rend la rpartition transparente aux utilisateurs.
Dfinitions (2)
Client de SGBDR (DDBMS Client) Application qui accde aux informations distribues par les interfaces du S.G.B.D.R. s Serveur de SGBDR (DDBMS server) SGBD grant une base de donnes locale intgre dans une BDR.
s
Dfinitions (3)
Nud ou site du SGBR (DDBMS node) Calculateur dans le rseau participant la gestion dune BDR.
s
En rsum
Un SGBDR est un ensemble de logiciels systmes grant des donnes rparties sur un ensemble de sites, intgrant des modules clients et des modules serveurs. s Clients et serveurs collaborent par des mdiateurs spcifiques.
s
Exemple
Site Paris
Variantes de SGBDR
La fdration de BD locales dissmines sur diffrents sites au sein dune BDR est une forme ultime de coopration qui ncessite lintgration des bases. s Il est possible de faire cooprer des BD sans les intgrer. s Des BD capables dchanger des donnes sont dites interoprables.
s
Si un langage commun permet de les interroger sans cacher lexistence de plusieurs bases on parle de multibases.
Multibase (Multibase)
s
Plusieurs bases de donnes htrognes capables dinteroprer avec une application via un langage commun (sans modle commun).
Plusieurs bases de donnes htrognes accdes comme une seule via une vue commune (un modle commun).
Exemple de BD fdrer
Client Systme lgataire Site 1 Donnes de gestion Donnes textuelles Rseau de communication Donnes gographiques Localisation des clients Site 5 Donnes techniques
Oprations sur des produits
Site 4
Site 3
Avantages de lintgration de BD
prendre en compte la rpartition gographique des donnes s prendre en compte la distribution fonctionnelle des donnes s meilleure disponibilit des donnes en prsence de pannes s une plus grande flexibilit afin dassurer le partage des donnes htrognes et rparties
s
Inconvnients de lintgration de BD
Complexit du SGBDR s manque dexprience dans lintgration des BD htrognes s distribution du contrle des donnes entre plusieurs site (problmes de cohrence non triviaux) s difficult du changement (intgration dun nouveau type de SGBD, etc.)
s
Multiclients multiserveurs
s
Le SGBR doit permettre plusieurs clients de manipuler la bdr en assurant la srialisabilit des transactions
Exemple
Select From Nom, Prnom BUVEURS B, VINS V, COMMANDES C Where V.CRU=VOLNAY and V.DEGRE> 12 and C.Qt > 100 and C.NV=V.NV and B.NB =C.NB and C.DATE >= 1/10/92 and B.VILLE=PARIS
Meilleure disponibilit
On ne dpend pas dun seul site central s Utlisation de copie (rplication), en cas de panne on peut se replier sur les copies s Assurer un mcanisme de gestion de transactions distribues pour assurer la cohrence des rplicats
s
Autonomie locale
Chaque base est indpendante et peut avoir ses propres donnes et schmas locaux s Chaque base doit connatre les donnes partages par les autres bases
s
Htrognit
Le SGBDR htrogne doit tre capable dunifier modles et langages afin de grer des bases fdres. s Utilisation dun modle pivot s Intgration de schmas :
s
Procd consistant rapprocher des schmas smantiquement diffrents afin de constituer un schma unique quivalent.
Modle unifi
Objet
Relationnel
Fichier
Schma local
Schma local
Architecture de rfrence
Niveau interoprable Gestion objets intgrs
Accs objets distants
Niveau communication
Modle pivot
SGBD X
Architecture de rfrence
s
3 niveaux de fonctionnalits : le niveau local : prsent dans chaque serveur, il permet dexporter les donnes selon le modle pivot du SGBDR. Le niveau communication : il permet de transmettre les sous-requtes en provenance dun site client au serveur dans le langage pivot et transmet les rsultats en conformit avec le schma export. Le niveau interoprable : il permet de formuler des requtes utilisant les vues intgres de la base; il assure la dcomposition des requtes en sous-requtes et le passage des vues intgres aux diffrents schmas imports
Les SGBDR
s
Le schma fonctionnel dun SGBDR peut tre implant par plusieurs variantes oprationnelles selon :
le choix du modle et du langage pivots le degr dhtrognit permis
3 gnrations de SGBDR
les SGBDR bass sur le modle relationnel avec des SGBD locaux relationnels les SGBDR bass sur le modle relationnel avec des SGBD locaux htrognes les SGBDR bass sur les modles objets
Systmes relationnels rpartis Le mme SGBD existe chez les clients et les serveurs Les schmas imports/exports sont grs par la mtabase du SGBD Exemples :
SDD1 (1980) Sirius Delta (1982) R* (1982) Ingres/star (1977)
Systmes fdrs construits autour du relationnel Ne sont pas centrs autour dun SGBD particulier Intgration de BD htrognes autour de SQL
Prise en compte de la diversit syntaxique Mme concept exprim par des constructeurs diffrents (relationnel dans une BD et objet dans une autre, etc.) Prise en compte de la diversit smantique Mme concept conu diffremment
problme de diffrence de structure, de terminologie ou dchelle.
s
=>
Exemples :
Mermaid (1987) Multibase (1982) MSQL (1987) Sabrina-star (1990)
SGBDR de 3 me gnration
s s s
Bass sur le modle Objet Meilleure prise en compte de lhtrognit Les plus connus sont IRO-DB, Omega, Pegasus Problmes didentifiants globaux pour les objets Problmes doptimisation de requtes distribus, etc.
Conception descendante Construction du schma global puis le rpartir sur les diffrents sites
BDR
BD1
BD2
BD3
BD2
Technique de fragmentation
Dfinition dun fragment : Sous-table obtenue par slection de lignes et de colonnes partir dune table globale, localise sur un site unique. s La fragmentation est utilise en conception descendante pour fragmenter une table globale en rpartissant les fragments sur les diffrents sites dune BDR. s En conception ascendante les fragments sont dj existants et il sagit de reconstruire le schma de la table globale.
s
Fragmentation horizontale
s
Adapte la rgionalisation des tables. Chaque rgion A dfinit un prdicat du type REGION=A qui dfinit le fragment associ.
Clients Paris Calais Lyon
Fragmentation verticale
s
Adapte un dcoupage fonctionnel. Chaque fragment peut tre associe une fonction Fi grant les attributs Ai1 ... Ain. La table globale doit pouvoir tre retrouve par jointure des diffrents fragments.
numro type cot descriptif Conditionnement
Soit R une table P1 .. Pi un ensemble de prdicats Fi(R) = RestPi (R) Les prdicats P1 ... Pi sont disjoints :
i j Pi Pj = Faux Fi(R) Fj(R) =
Cette dfinition correspond une fragmentation dite primaire. Il est possible de driver dune fragmentation primaire une autre fragmentation par semi-jointure avec les autres relations Une semi-jointure de S par R est une jointure de R et S suivie dune projection sur les tuples de S. Une fragmentation horizontale drive dune fragmentation primaire dune relation R est dfinie par :
Fi(S) = ProjS (S X Fi(R) ).
Exemple
Dept
deptno 1 2 3 4 nom Ventes Achats Fabrication Conditionne ment loc Calais Calais Dunkerque Dunkerque
empno 10 20 30 40 50 60
numdep 1 1 2 3 1 2 4 1
Comment fragmenter ?
s
Grain / degr de fragmentation Trop peu de fragments - faible concurrence Trop de fragments - surcot dans la reconstruction des relations Possibilits de fragmentation dune relation Horizontale - base sur des slections Verticale - base sur des projections
Chaque fragment sur un seul site copie unique, BD partitionne Duplication de fragments (+) performances des requtes et disponibilit (-) cot des mises jour et contrle de concurrence plus complexe Frquemment : duplication partielle
BD : taille des relations, CI, etc. Applications : FAQ (Requtes frquentes) Sites : capacits de stockage / traitement. Rseaux et systme Les deux dernires servent essentiellement dans lallocation
Proprits de la fragmentation
s
Reconstruction
Possible avec les oprateurs de lalgbre relationnelle
Critres de fragmentation horizontale simples ou complexes Compltude Horizontale : chaque n-uplet de R est dans un fragment Verticale : chaque attribut est dans un fragment Pas de perte dinformation Similaire la normalisation
s s
Fragments disjoints Une entit est dans un seul fragment Exemple FAQ : Restsal < 30 ( Emp) et Restsal >20 ( Emp) Fragments candidats : Restsal < 30 ( Emp) et Restsal >20
( Emp)
Non disjoint
s
Gnration automatique Souvent manuelle par ladministrateur. Diffrentes mthodologies selon le type de fragmentation.
s s
Commencer avec les conditions de slection frquentes (FAQ) Extraire des requtes les conditions de slections : A < 10, A > 5, Ville = Paris, Ville = Lyon On obtient un ensemble : C={c1, c2,...cn} des conditions lmentaires (ce).
s s
Exemple
Conditions non satisfiables Connaissance des contraintes dintgrit, e.g; ville soit Paris, soit Lyon.
A < 10, A > 5, Ville = Paris, Ville != Lyon A < 10, A > 5, Ville != Paris, Ville = Lyon A < 10, A <= 5, Ville = Paris, Ville != Lyon A < 10, A <= 5, Ville != Paris, Ville = Lyon A >=10, A > 5, Ville = Paris, Ville != Lyon A >= 10, A > 5, Ville != Paris, Ville = Lyon
Fragments finaux
s
5 < A < 10, Ville = Paris 5 < A < 10, Ville = Lyon A <= 5, Ville = Paris A <= 5, Ville = Lyon A >=10, Ville = Paris A >= 10, Ville = Lyon
Proprits de la fragmentation ?
s
Compltude :
tout n-uplet t vrifie une des ce et nous avons limin seulement les cc impossibles
Disjonction :
Bonnes proprits
Obtenir une partition de lensemble de nuplets telle que : s pour tout B de la partition, deux n-uplets de B aient la mme probabilit dtre accds par toute application/requte importante
Partition P2 avec conditions : Ville = Paris et Ville = Lyon Partition P3 avec conditions : (Ville = Paris et Sal < 10000) et (Ville = Lyon et Sal >=10000) P3 nest pas minimale : il vaut mieux commencer par une minimale et distribuer plus si ncessaire.
Matrice d'utilisation
Exemple A1 A2 A3 A4 Q1 1 0 1 0 Q2 0 1 1 0 Q3 0 1 0 1 Q4 0 0 1 1
s
Refs( qk ), pour deux attributs (Ai, Ak) = nombre daccs faits par une excution de qk (sur le site s) Ai et Ak Accs( qk) = frquence de qk sur le site s (mesure pendant une certaine priode) Matrice daffinit
Acc1(q1)=15 Acc2(q1) = 20 Acc3(q1) = 10 Acc1(q2)=5 Acc2(q2) = 0 Acc3(q2) = 0 Acc1(q3)=25 Acc2(q3) = 25 Acc3(q3) = 25 Acc1(q4)= 3 Acc2(q4) = 0 Acc3(q4) = 0
Matrice d'affinit :
Partitionnement
Trouver un point dans la matrice pour crer deux ensembles dattributs : AttrHaut (AH) et AttrBas (AB) s Quelle requte accde quel ensemble ?
Partitionnement - Exemple
Q = { q1, q2, q3, q4 } s AH = { A1, A3 } s AB = { A2, A4} s RH = { q1 } s RB = { q3 } s Autres = { q2, q4 }
Partitionnement (Suite)
Objectif : s Maximiser les accs un seul fragment s Minimiser les accs aux deux fragments s TotalAccs =
TotalRH =
Partitionnement (Suite)
Trouver un point dans la matrice pour crer deux ensembles dattributs AH et AB tels que : z = (TotalRH * TotalRB) TotalAutres2 est maximis
s
Dans lexemple (simple) la cl est dans lensemble Duplication de la cl pour garantir la reconstruction Si beaucoup dattributs alors il est peut tre ncessaire de trouver plusieurs points dans la matrice. Utiliser plutt une approche rcursive : partir de deux groups AH et AB et raffiner
dattributs considr
s s
Fragmentation hybride
s
Allocation
Problme doptimisation trs difficile s Minimiser cots: stockage, traitement, communication s Maximiser performances: temps de rponse, dbit du systme s Modle cot / performances s Utiliser modle simple / sens commun e.g: considrer les com. / Accs
s
Exemple
Client1 = RestVille = Paris (Client) s Client2 = Rest Ville != Paris (Client) s Commande1 = SemiJointure(Commande , Client1) s Commande2 = SemiJointure(Commande, Client2) s Allocation : @Site1 : Client1, Commande1 @Site2 : Client2, Commande2
s
Requtes Rparties
Les oprations prcdentes (par exemple) accdent des donnes situes sur diffrents sites. Le SGBD gre les accs distants en rpartissant la requte Excution distante de la sous requte Rcupration de donnes rsultat Assemblage local (requte en lecture)
Cas d'Oracle
Permet la distribution et la rplication Assure une bonne transparence diffrents Systme de nommage simple
niveaux
Accs BD distante : LINK Accs table distante : schma.table@base Lien public, lien priv
svc_maint.emp@sales.france.europe.computers
Transparence
Localisation : synonymes
FOR svc_maint.emp@sales.france.europe.computers CREATE PUBLIC SYNONYM employes
Caracatristiques
Autonomie des sites Gestion indpendante, upgrades localiss Scurit Les utilisateurs et leurs rles doivent tre connus sur chaque site accd Possibilit dutiliser un Security Server Encryptage Administration globale : enterprise manager
Exemples
Unicit
Intgrit Rfrentielle
Exemples
CREATE DATABASE LINK ventes.suptechno.ma USING ventes; CREATE DATABASE LINK ventes.suptehno.ma CONNECT TO scott IDENTIFIED BY tiger USING ventes; CREATE DATABASE LINK ventes.suptechno.ma CONNECT TO CURRENT_USER USING ventes; Remarque : USING -> nom du service!
DB Links : complments
Visibilit : Public Pratique si utilis par un grand nombre dutilisateurs Private (dfaut) + scuris, accessible uniquement au propritaire et ses sous-programmes Global Accessible de nimporte quelle base, mais suppose une gestion centrale (directory server)
Exemples
CREATE PUBLIC DATABASE LINK ventes.suptechno.ma USING ventes; CREATE PUBLIC DATABASE LINK ventes.suptechno.ma CONNECT TO scott IDENTIFIED BY tiger USING ventes; CREATE PUBLIC DATABASE LINK ventes.suptechno.fr CONNECT TO CURRENT_USER USING ventes;
Suppression
Paramtrage
OPEN_LINKS : nombre de liens simultans dans une mme session (dfaut 4, 0 = pas de limite) (INIT.ORA)
Liens partags
Un lien peut tre partag par plusieurs utilisateurs Mot cl shared CREATE SHARED DATABASE LINK nomlien [CONNECT TO util IDENTIFIED BY passwd ]| [CONNECT TO CURRENT_USER] AUTHENTICATED BY schema IDENTIFIED BY passwd [USING service] Authentification pour le lien, connexion au schma distant suivant mode de connexion choisi Intrt : si beaucoup de connexions, sinon surcot (pooling) Peut tre connect vers serveur processus
Nommage global
Oracle peut utiliser le nommage global
Chaque base est identifie par un nom et un domaine. Le nom complet doit tre unique Utile avec les liens, indispensable pour la rplication
Paramtrage
GLOBAL_NAMES (INIT.ORA)
BD rparties 2 : la rplication
Ensemble de techniques permettant la gestion de copies multiples de donnes Les copies peuvent diverger un instant donn mais doivent obligatoirement converger terme
Pourquoi rpliquer ?
s
Il faut assurer la convergence des copies terme Il faut assurer la transparence de gestion aux utilisateurs : Les clients doivent croire lexistence dune seule copie.
le SGBD doit assurer la diffusion des mises jour aux copies le choix de la meilleur copie lors de laccs
Mode de distribution dans lequel toutes les sous-oprations locales effectues suite une mise jour globale sont accomplies pour le compte de la mme transaction.
Update1
Update1 Update1
Avantages :
Prise en compte immdiate des modifications Utiles pour les systmes tels que les systmes boursiers ou bancaires : modifications du court de change, etc.
Inconvnients :
Ncessit de grer des transactions multisites (compliques et coteuses)
Mode de distribution dans lequel certaines sous-oprations locales effectues suite une mise jour globale sont accomplies dans des transactions indpendantes, en temps diffr. Les mises jour peuvent tre effectues le soir, en fin de semaine, etc.
Ce mode de mise jour convient aux applications ncessitant une cohrence lche des copies :
Mise jour du catalogue des produits Mise jour de lannuaire Etc.
Plus simples mettre en oeuvre mais ne garantit pas laccs la dernire mise jour.
Diffuser le rsultat ou lopration de mise jour Comment raliser la mise jour ? Utilisation de triggers (surtout en mode synchrone) Utilisation de files persistantes : mmorisation des transactions de report et excution par la suite de ces transactions par une tche de fond. Utilisation dappels priodiques (polling) : un ou plusieurs sites centralisent les mises jours et rafrachissent la bd de faon priodique (push).
Rplication asymtrique : Technique de gestion de copies dans laquelle un site primaire est seul autoris mettre jour et diffuser les mises jour aux autres copies dites secondaires.
s
Rplication asymtrique
s s
Le site primaire garantit lordonnancement correct des m-a-j Ce mode correspond aux applications responsabilit centralise : diffusion du catalogue des produits par une centrale dachat Permet galement la consolidation de la BDR partir dinformations provenant de fragments
Asynchrone
Synchrone
Cours_devises
Copies secondaires
Cours_devises
Cours_devises
Copies secondaires
Cours_devises
Assure une meilleure tolrance aux pannes s Une meilleure disponibilit et performance
s
Commandes
Commandes
Commandes
Site saisie
Site expdition
Site facturation
Commandes
Commandes
Commandes
Site saisie
Site expdition
Site facturation
Commandes
Commandes
Commandes
Site saisie
Site expdition
Site facturation
Rplication symtrique
s
s s s
Technique de gestion de copies o chaque copie peut tre mise jour tout instant et assure la diffusion des mises jour aux autres copies Problmes de concurrence daccs divergence des copies Convient aux applications responsabilit distribue : suivi dune commande, gestion de clients mobiles, etc.
2 principales techniques :
Verrouillage des copies : un site doit demander des autorisations toutes les copies avant de mettre jour une copie Estampillage : horloge logique associ aux objets de la base et aux messages de mises jour. Ces techniques seront tudies en cours de gestion de la concurrence dans un environnement distribu.
Vue simple
Rafrachissement rapide possible Repose sur cl
WITH PRIMARY KEY WITH ROW ID sous requte de type exists union
Exemple
CREATE MATERIALIZED VIEW info_produit REFRESH FAST AS SELECT * FROM info_produit ip WHERE id =10 AND EXISTS (SELECT * FROM descr_produit dp WHERE) UNION
DISTINCT, UNIQUE INTERSECT, MINUS, UNION ALL CONNECT BY Jointure Agrgation UNION si pas les mmes types (ou requtecomplexe)
Pour autoriser le fast refresh if faut crer un snapshot log sur la table source
CREATE SNAPSHOT LOG ON Table WITH PRIMARY KEY TABLESPACE ... STORAGE ()
Privilges
ALTER ANY SNAPSHOT CREATE ANY SNAPSHOT DROP ANY SNAPSHOT
Plutt pour le DBA Utile car permet dutiliser les liens privs permet ajout, modif et suppr Permet gestion de vue sous-jacente au
snapshot
A la fin des annes 80 et au dbut des annes 90, la plupart des fournisseurs de SGBD avaient des projets voire des produits de versions rparties de leur SGBD et des capacit fdrer des BD (homognes et htrognes) Les diffrentes expriences faites, par les utilisateurs dans le cadre dapplications, avec ces SGBD ont montr leurs limites, en particulier dans un contexte avec mise jour Au dbut des annes 2000, les fournisseurs ne mettent plus en avant les aspects distribus.
Les fournisseurs ont volu vers des solutions base de rplication des bases de donnes et des moyens daccs des bases de donnes trangres A titre dillustration de cette volution, Ingres qui proposait la solution la plus lgante et la plus avance en matire de distribution a renonc cette ambition. Ingres a t acquise par CA (Computer Automation). CA ne met pas lemphase sur laspect distribu
Architecture Ingres/star
IBM DB2
Trois produits (entre autres) : DataLinks DataJoiner DataPropagator Permet DB2 d accder des donnes stockes indpendamment de DB2 Permet diffrents niveaux de contrle sur ces donnes externes : Intgrit rfrentielle. Contrle daccs Oprations de sauvegarde et de restauration coordonnes Transactionnel distribu
DataLinks :
Composants de DataLinks : Nouveau type de donnes DATALINK (URL - Uniform Resource Locator) DB2 Data Links Manager qui a deux composantes : Data Links File Manager (DLFM) et Data Links Filesystem Filter (DLFF) API DBMS/DLFM pour dialoguer avec les Data Links File Managers
Transparent Gateway SQL and Data Dictionary Translation Information : fournit aux services htrognes les informations ncessaires la tradution. Traduction des types de donnes Assure la connexion des systmes non-Oracle Plusieurs possibilits concernant la localisation du
Localisation du gateway
Difficult : synchronisation
En lecture seule ou avec possibilit de mise jour de la fonction de mise jour distante (interaction avec le site dtenant la base matre)