Documente Academic
Documente Profesional
Documente Cultură
Exercices Bibliographie
Introduction
Contenu : 1. Besoins 2. Aspects caractristiques 3. Dmarche de conception
1. Besoins
Dans une base de donnes centralise, il y a un seul SGBD, un seul stockage physique, une seule unit de traitement. Dans une base de donnes rparties, il peut y avoir plusieurs SGBD, plusieurs sites de stockage et plusieurs units de traitement. Les raisons qui prsident la cration des bases de donnes rparties sont multiples :
q q q q q
limiter le transfert d'informations rpartir la charge de travail entre plusieurs units de traitement ou de stockage augmenter la fiabilit augmenter la disponibilit faciliter l'interoprabilit
dfinition : une base de donnes rpartie est une base de donnes dont les diffrentes parties sont stockes sur des sites distants relis par rseau.
2 - Aspects caractristiques
On peut reprsenter trs schmatiquement une base de donnes rparties par l'image suivante :
q q
transparence de localisation : lutilisateur accdent au schma conceptuel via des vues ; il ne sait pas sur quel site se trouvent physiquement les donnes transparence de partitionnement : lutilisateur ne sait pas comment la base est partitionne transparence de duplication : lutilisateur ne sait pas sil existe des copies des informations, ni o elles se trouvent si elles existent
Une base de donnes est usuellement modlise en 3 niveaux : externe, conceptuel, interne. Pour une base de donnes rparties, la rpartition a lieu dans les trois niveaux :
les vues des utilisateurs sont prsentes sur leur site (site utilisateur) ; elles correspondent au niveau externe. Il y a donc rpartition des vues. le schma conceptuel (global) est associ aux schmas locaux des sites physiques via un schma de fragmentation (la manire dont la base est dcoupe) et un schma d'allocation (la manire dont les fragments sont rpartis). il n'y a pas de schma interne global, mais des schmas locaux internes.
3 - Dmarche de conception
Pour concevoir une base de donnes rparties, il faut commencer par les deux tapes standards de conception des bases de donnes centralises. 1) Recueillir l'expression des besoins des utilisateurs et en dduire les vues externes prvoir. 2) Intgrer ces vues dans un schma conceptuel global et unique
Les deux phases suivantes sont des phases critiques et dlicates pour des bases de donnes rparties : 3) Cration du schma de fragmentation : la base de donnes sera dcoupe en fragments distincts constituant une partition de la base : l'intersection des fragments doit tre vide et leur runion doit redonner le schma global. 4) Cration du schma d'allocation : les fragments doivent tre distribus "au mieux" entre les diffrents sites. Les deux dernires phases concernent les sites locaux : 5) Cration d'un schma local pour chaque site, relatif aux fragments dvolus ce site. 6) Cration des schmas internes : implmentation des donnes des fragments sur les supports physiques de stockage.
Fragmentation
1. Dcomposition en fragments 2. Rpartition par classes d'objets 3. Fragmentation horizontale 4. Fragmentation verticale 5. Fragmentation par valeurs Contenu : 6. Mthodologie de la fragmentation horizontale 7. Mthodologie de la fragmentation verticale 8. Schma de localisation 9. Mises jour
1. Dcomposition en fragments
Il s'agit de dcomposer la base de donnes en fragments sans perte d'information. On procde de la manire suivante :
q
la non perte d'informations est vrifie par recomposition de la base en utilisant le langage de manipulation de donnes (SQL par exemple). les fragments doivent tre exclusifs (il ne s'agit pas de duplication)
Pour dcouper la base, il faut descendre un certain degr de granularisation aboutissant des units de fragmentation (considres comme inscables). On peut procder de 4 manires (ventuellement combinables) :
q q q q
la rpartition par classes d'objets la rpartition par occurrences (tuples) ou fragmentation horizontale la rpartition par attributs ou fragmentation verticale la rpartition par valeurs qui combine les deux prcdentes.
dfinir les fragments, c'est dire constituer un partition nement de la base dfinir la correspondance schma global --> fragments dfinir la correspondance fragments --> schma global (recomposition)
3 - Fragmentation horizontale
Encore appele fragmentation par occurrences, la fragmentation horizontale est base sur un dcoupage des tuples des "classes". exemple : Considrons la table CUISINIER. Elle peut tre divise en deux fragments par rpartition des tuples en deux catgories :
4 - Fragmentation verticale
Dans la fragmentation verticale ou fragmentation par attributs, les fragments sont construits partir de quelques attributs d'une "classe". exemple : la table CUISINIER peut tre rpartie en 2 fragments, l'un avec les attributs numero, nom, prenom, l'autre avec les attributs numero, numeq. On constatera que l'attribut numero est commun ; c'est une ncessit car numero est la cl de la table et la recomposition n'est possible que grce cet attribut (par jointure).
q q
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';
Pour effectuer la fragmentation horizontale on se base sur les critres de recherche, c'est dire les conditions exprimes dans les "WHERE" des ordres SQL. On a C1 = AB, C2 = C, C3 = DA o dsigne le "ET LOGIQUE" et A, B, C, D reprsentent les prdicats suivants : A : prenom = 'Jean' B : nom LIKE '%R%' C : numeq = '1' D : numeq = '2' On a videmment CD = , CD = D, CD = C o C et D dsignent les contraires de C et D. A partir des conditions Ci, on peut construire l'ensemble des conjonctions CCj de conditions : CC = { Ci* pour i = 1,n et Ci* = Ci ou Ci} Concrtement : CC = {C1C2C3, C1C2C3, C1C2C3, C1C2C3, C1C2C3, C1C2C3, C1C2C3, C1C2C3} Evaluons chacun des termes : C1C2C3 = C1C2C3 = C1C2C3 = ABD C1C2C3 = ABC
attributs, c'est dire aux projections des relations sur certains attributs. Nous allons reprendre l'exemple prcdent pour expliciter concrtement la mthodologie de fragmentation verticale. exemple : Reprenons les requtes les plus frquentes :
q
q q
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';
Les projections sont : P1 : (numero, numeq) P3 : (numero, nom) P2 n'est pas considre comme une projection car tous les attributs sont demands dans la requte R2. A partir de P1 et P3, on construit l'ensemble IP des intersections de projections : IP = { IPj* pour j = 1,n et Pj* = Pj ou ~Pj} o ~Pj dsigne le complment de Pj sur l'ensemble des attributs de la table CUISINIER avec l'incorporation obligatoire de la cl numero : ~P1 = (numero, nom, prenom) ~P3 = (numero, prenom, numeq) Concrtement IP = {P1IP1, ~P1I~P1, P3IP3, ~P3I~P3, P1IP3, P1I~P3, ~P1I~P3} avec P1IP1 = P1 = (numero, numeq) ~P1I~P1 = ~P1 = (numero, nom, prenom) P3IP3 = P3 = (numero, nom) ~P3I~P3 = ~P3 = (numero, prenom, numeq) P1IP3 =(numero) ~P1IP3 = (numero, nom) P1I~P3 = (numero, numeq) ~P1I~P3 = (numero, prenom) On reprend chaque fragment et on regarde quelles sont les requtes qui les concernent :
Le fragment 1 est concern par les requtes R1 et R3, donc par tous les lments de l'ensemble IP construits partir de P1 et P3, soit P1IP3, ~P1IP3, P1I~P3, ~P1I~P3 IP1 = {(numero), (numero, nom), (numero, numeq), (numero, prenom)} Le fragment 2 est concern par les requtes R1 et R2, donc seulement par les projections P1 et ~P1, donc par les lments de IP P1IP1 = P1 et ~P1I~P1 = ~P1, donc : IP2 = {(numero, numeq), (numero, nom, prenom)} Le fragment 3 est concern par la requte R3 donc seulement par les projections P3 et ~P3, donc par les lments de IP P3IP3 = P3 et ~P3I~P3 = ~P3, donc : IP3 = {(numero, nom), (numero, prenom, numeq)} Le fragment 4 est concern par la requte R2, donc par tous les attributs : IP4 = {(numero, nom, prenom, numeq)} Le fragment 5 n'est concern par aucune des requtes, donc par tous les attributs : IP5 = {(numero, nom, prenom, numeq)} On dduit de ces considrations les divers fragments :
8 - Schma de localisation
Pour dfinir le schma de localisation, on recherche 1) d'o sont mises les requtes (priorit 1) 2) d'o sont faites les mises jour (priorit 2)
exemple : reprenons l'exemple prcdent et supposons que deux sites soient pris en considration. Supposons que la requte R1 soit mise de A ou B, que la requte R2 soit mise de A seulement et que la requte R3 soit mise de B seulement. Pour les trois requtes, les fragments suivants sont concerns : R1 --> fragment 13, fragment 21 R2 --> fragment 21, fragment 22, fragment 41 R3 --> fragment 12, fragment 31 On fera donc les affectations site A : fragment 13, fragment 21, fragment 22, fragment 41 site B : fragment 12, fragment 31 On notera que l'on a fait un choix arbitraire pour le fragment 21. Pour les autres fragments, on cherche quilibrer les sites : site A : fragment 11, fragment 51 site B : fragment 14, fragment 32 On peut alors constater que certains fragments peuvent tre recombins : site A : fragment 11, fragment 13, fragment 2, fragment 4, fragment 5 site B : fragment 12, fragment 14, fragment 3
9 - Mises jour
Les mises jour consistent en les trois oprations d'insertion (INSERT), de suppression (DELETE) et de modification (UPDATE). Insertion
exemple : insrer 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 prsent, il s'agit de CC3) ; ensuite il faut insrer le tuple dans tous les fragments verticaux.
Suppression exemple : suppression du cuisinier Jean DUBOUT : DELETE FROM CUISINIER WHERE nom = 'DUBOUT' AND prenom = 'Jean' ; On utilise "au mieux" les conditions CC : -- pas de "R' dans le nom : B -- prenom = 'Jean' : A Donc CC3 et CC4 sont concernes. On cherchera donc dans les fragments correspondants exemple : supprimer le cuisinier de numro 21 DELETE FROM CUISINIER WHERE numero = 21 ; On est ici oblig de chercher dans tous les segments Modification
exemple : modification de l'affectation du cuisinier DUBOUT UPDATE CUISINIER SET numeq = 1 WHERE nom = 'DUBOUT' ; La condition de slection est B ; il faut donc chercher dans les fragments concerns par CC3, CC4, CC5. On trouve l'enregistrement dans le fragment 3. On modifie puis on vrifie que la CC est toujours vrifie ; ce n'est plus le cas ici puisque numeq = 1. La nouvelle condition est BC soit CC4. On dplace alors le tuple dans le fragment 4.
Supposons que la requte soit formule sur un site S0 : SELECT prenom FROM CUISINIER, EQUIPE WHERE CUISINIER.numeq = EQUIPE.numeq AND nomeq = "les chefs" ; On peut envisager plusieurs stratgies dont les deux suivantes :
Dans la stratgie 1, on commence par slectionner les tuples sur l'attribut nomeq='les chefs' dans les fragments E1 et E2 sur les sites S3 et S4 respectivement. Les rsultats E'1 et E'2 sont ensuite transfrs sur les sites S1 et S2 respectivement. Sur ces sites les jointures avec C1 et C2 sont effectues. Les rsultats C'1 et C'2 sont ensuite transfres sur le site de consultation S0. L'union des tuples est effectue puis la projection sur l'attribut prenom. Dans la stratgie 2, on commence par transfrer tout sur le site de consultation o l'on effectue les oprations adquates pour obtenir le rsultat cherch.
Comparons les deux stratgies en supposant les donnes suivantes : le temps d'accs ta un tuple ncessite 1 unit de temps, le temps de transfert d'un tuple entre deux sites ncessite 10 units de temps. On suppose que C1 et C2 contiennent chacun 50 tuples et que E1 et E2 contiennent chacun 10 tuples ce qui signifie qu'une quipe possde en moyenne 5 cuisiniers. stratgie 1 temps de cration de E'1 : 10ta temps de cration de E'2 : 10ta E'1 contient 0 ou 1 tuple E'2 contient 1 ou 0 tuple temps de transfert de E'1 : 0 ou tr temps de transfert de E'2 : tr ou 0 temps de cration de C'1 : 0 ou 50ta temps de cration de C'2 : 50ta ou 0 C'1 contient 0 ou 5 tuples C'2 contient 5 ou 0 tuples temps de transfert de C'1 : 0 ou 5tr temps de transfert de C'2 : 5tr ou 0 temps de cration de R : 5ta En dfinitive le temps de rponse est 75ta + 6tr, soit 135 units. Bien que notre calcul soit grossier et approximatif, il permet de faire une nette distinction entre les deux stratgies : la stratgie 1 est bien meilleure que la stratgie 2.
stratgie 2 temps de transfert de C1 : 50tr temps de transfert de C2 : 50tr temps de transfert de E1 : 10tr temps de transfert de E2 : 10tr temps de cration de E' : 20ta temps de cration de R : 100ta + 5ta = 105ta En dfinitive, le temps de rponse est 125ta + 120tr soit 1325 units.