Vous êtes sur la page 1sur 48

Universit Abou Bekr Belkaid

Facult de technologie
Dpartement de gnie BioMdical

COURS DE BASES, ENTREPT


ET TRANSFERT DES
DONNES BIOMDICALES
PRSENT PAR MR A. GAOUAR

e-mail : gaouaradil@gmail.com

2016 2017

PROMOTION M1 TMD
CHAPITRE I
INTRODUCTION AUX BDD
REPARTIES
INTRODUCTION:
Le dveloppement des techniques informatiques
ces dernires annes a permis lexpansion des outils
informatiques dans l'organisation des entreprises. En
effet, des volumes de donnes incommensurables
sont manies par ces dernires, et cela grce la
puissance des micro-ordinateurs qui ne cesse de
crotre.
aussi, les performances des rseaux et la baisse
considrable des cots du matriel informatique ont
permis l'apparition d'une nouvelle approche afin de
remdier aux difficults causes par la centralisation
des donnes, et ce en rpartissant les ressources
informatiques tout en prservant leur cohrence.
I- BESOINS, OBJECTIFS ET DFINITIONS:
1. PROBLMATIQUE:
Les pressions pour la distribution :
Il devient impratif de dcentraliser linformation (cas des
multinationales),
Augmentation du volume de linformation (14 fois de 1990
2000),
Augmentation du volume des transactions (10 fois dans les 5
prochaines annes).
Besoin de serveurs de BDD qui fournissent un bon temps de rponse
sur de gros volumes de donnes.
Prdiction daccroissement:
Vitesse des microprocesseurs : 50% par an,
Capacit des DRAM : 4 fois tous les 4 ans,
Dbit des disques : 10 fois sur les 10 dernires annes.
Goulot dtranglement sur les E/S.
Pour amliorer le dbit des E/S :
Partitionnement des donnes,
Accs parallle aux donnes,
Utiliser plusieurs nuds (avec un bon rapport cot/ performance),
et les faire communiquer par un rseau.
Les inconvnients que prsentent les BDD centralises:
Goulots dtranglement, si jamais plusieurs personnes tentent dy
accder en mme temps et que leurs besoins soient considrables,
Reprsente un point de dfaillance unique si jamais il y a un
problme avec la BDD en question, tout est perdu,
Difficult de rcupration des sauvegarde en cas dchec de mise
jour.
Pour pallier tous ces problmes, on a crer Les bases de
donnes rparties. Qui semblent tre un moyen performant pour
diminuer les problmes que nous avant voqus, MAIS ne restent pas
sans failles.
2- BUTS DE LA RPARTITION DES BASES DE
DONNES:
Les bases de donnes rparties ont une architecture
plus adapte lorganisation des entreprises
dcentralises.
Plus de fiabilit : les bases de donnes rparties ont
souvent des donnes rpliques (dupliques). La panne
dun site nest pas trs importante pour lutilisateur, qui
peut sadresser ou tre rediriger vers un autre site.
Meilleures performances : rduire le trafic sur le
rseau est une possibilit daccrotre les performances
et de la BDD et du rseau. Le but de la rpartition des
donnes est de les rapprocher de lendroit o elles sont
utilises.
Rpartir une base de donnes sur plusieurs sites permet de
rpartir la charge sur les processeurs, les serveurs de BDD et
sur les entres/ sorties.
Faciliter laccroissement: laccroissement se fait par lajout
de machines sur le rseau.
3. SGBD RPARTI:
Une base de donnes centralise est gre par un seul
SGBD, est stocke dans sa totalit un emplacement physique
unique et ses divers traitements sont confis une seule et
mme unit de traitement. Par opposition, une base de donnes
distribue est gre par plusieurs processeurs, sites ou SGBD.
Un systme de bases de donnes rparties ne doit donc en
aucun cas tre confondu avec un systme dans lequel les bases
de donnes sont accessibles distance. Il ne doit non plus tre
confondu avec une multi-bases ou une BDD fdre.
Dans une multi-base, plusieurs BDD interoprent
avec une application via un langage commun et sans
modle commun. Un serveur multi-bases est intgr
dans le SGBD.
Dans une BDD fdre, plusieurs BDD htrognes
sont manipules comme une seule via une vue
commune. Du point de vue organisationnel nous
distinguons deux architectures :
1. Architecture Client-Serveur : les serveurs, ont pour
rle de servir les clients. Par servir, on dsigne la
ralisation dune tche demande par le client.
2. Architecture Pair--Pair (Peer-to-Peer, P2P) : par
ce terme on dsigne un type de communication pour
lequel toutes les machines ont une importance
quivalente.
4. OBJECTIFS DFINIS PAR C.J. DATE:
Les principaux objectifs sont:
1. Transparence pour lutilisateur.
2. Autonomie de chaque site.
3. Absence de site privilgi.
4. Continuit de service.
5. Transparence vis vis de la localisation des donnes.
6. Transparence vis vis de la fragmentation.
7. Transparence vis vis de la rplication.
8. Traitement des requtes distribues.
9. Indpendance vis vis du matriel.
10. Indpendance vis vis du systme dexploitation.
11. Indpendance vis vis du rseau.
12. Indpendance vis vis du SGBD
5. PROBLMES SURMONTER:
1. Cot : la distribution entrane des cots
supplmentaires en terme de communication,
et en gestion des communications (hardware
et software installer pour grer les
communications et la distribution).
2. Problme de concurrence.
3. Scurit : la scurit est un problme plus
complexe dans le cas des bases de donnes
rparties que dans le cas des bases de
donnes centralises.
II- CONCEPTION DUNE BASE DE DONNES
RPARTIE:
La dfinition du schma de rpartition est la
partie la plus dlicate de la phase de conception
d'une BDR car il n'existe pas de mthode miracle
pour trouver la solution optimale. L'administrateur
doit donc prendre des dcisions en fonction des
critres techniques et organisationnels, avec pour
objectif de minimiser le nombre de transferts entre
sites, le temps de transfert, le volume de donnes
transfres, les temps moyens de traitement des
requtes, le nombre de copies de fragments, etc...
1. CONCEPTION DESCENDANTE (TOP DOWN
DESIGN):
On commence par dfinir un schma
conceptuel global de la base de donnes rpartie,
puis on le distribue sur les diffrents sites en
schmas conceptuels locaux.
La rpartition se fait donc en deux tapes:
1. Premire tape: la fragmentation,
2. Deuxime tape: lallocation de ces
fragments aux sites.
.Lapproche top down est utilise quand on part
du nant, cest--dire une nouvelle cration de
BDD.
2. CONCEPTION ASCENDANTE (BOTTOM UP
DESIGN):
Lapproche se base sur le fait que la rpartition est
dj faite, cest--dire que les BDD existent, mais il faut
russir les intgrer en une seule BDD globale.
En dautres termes, les schmas conceptuels locaux
existent et il faut russir les unifier et consolider dans
un schma conceptuel global.
C'est--dire :
1. Rconciliation smantique
2. Identification des donnes semblables
3. Accordement de leurs types, grer leurs
cohrence
4. Interfacer ou adapter les SGBD
La rpartition d'une base de donne intervient dans les
trois niveaux de son architecture en plus de la rpartition
physique des donnes :
Le schma externe : le niveau externe dcrit les donnes
sous forme de vues, chacune d'elles tant adapte une
classe particulire d'utilisateurs; un schma externe, labor
partir du schma conceptuel, peut naturellement mixer des
donnes stockes dans diffrentes bases;
Le schma conceptuel : o les donnes sont
reprsentes sans prendre en compte les contraintes
techniques ou de mise en forme; toutes les donnes sont
dcrites dans ce schma en utilisant un modle de donnes,
indpendamment de leur localisation dans le systme rparti;
Le schma interne : le niveau interne global n'a pas
d'existence relle mais fait place des schmas internes
locaux, rpartis sur diffrents sites.
Ces schmas correspondent la
description de l'organisation physique de la
base, notamment la spcification de la
fragmentation des donnes et la localisation de
ces fragments;
L'utilisateur accde aux donnes rparties
travers ces diffrents schmas en utilisant le
langage SQL.
III- LA FRAGMENTATION:
La fragmentation est le processus de
dcomposition d'une base de donne en un ensemble
de sous bases de donnes. Cette dcomposition doit
tre sans perte d'information.
La fragmentation peut tre coteuse sil existe des
applications qui possdent des besoins opposs.
Les rgles de fragmentation sont les suivantes :
1. La compltude : pour toute donne dune relation
R, il existe un fragment Ri de la relation R qui
possde cette donne.
2. La reconstruction : pour toute relation
dcompose en un ensemble de fragments Ri, il
existe une opration de reconstruction.
3. Disjonction : une donne n'est prsente que
dans un seul fragment, sauf dans le cas de la
fragmentation verticale pour la cl primaire qui doit
tre prsente dans l'ensemble des fragments issus
d'une relation.
1. TECHNIQUES DE FRAGMENTATION:
. Il existe plusieurs techniques de fragmentation,
dfinies par lunit de fragmentation.
a- Rpartition des classes d'objet:
. Cette technique consiste en la rpartition de
classes (relation en relationnel, classe en Orient-
objet) qui peuvent tre rparties sur diffrents
fragments. Toutes les occurrences d'une mme
classe appartiennent ainsi au mme fragment.
L'opration de partitionnement est la dfinition
de sous-schmas.
L'opration de recomposition est la runion de
sous-schmas.
Dans l'exemple suivant la base de donnes
relationnelle peut tre fragmente en {Compte,
Client} et {Agence}
RELATION COMPTE
N-Client Agence Type-Compte Solde
17400 BDL COURANT 200.000,00
17900 BDL COURANT 150.000,50
18000 AGB COURANT 1.000.000,00
18500 CPA EPARGNE 1.645.500,00
18500 CPA COURANT 77.000,00

RELATION CLIENT
RELATION AGENCE
N- Nom Prnom Age
Client Agence Adresse
17400 Boughera Madjid 34 AGB BD DES 24 METRES
17900 Haliche rafik 34 BDL CITE DES NOYERS
18000 Ronaldo Cristiano 31 CPA KIFFANE, LES DHALIAS
18500 Messi leo 32
b- Rpartition des occurrences (fragmentation horizontale) :
Dcomposition de la table en groupes de lignes.
L'oprateur de partitionnement est la slection ()
L'oprateur de recomposition est l'union ()
Il existe deux types de fragmentation horizontale:
Fragmentation horizontale Primaire
Fragmentation horizontale Drive
b1. Fragmentation horizontale primaire :
Exemple
Client (NCL, Nom, Ville) peut tre fragmente :
Client1= SELECT * FROM Client WHERE Ville = Paris
Client2= SELECT * FROM Client WHERE Ville <> Paris
Reconstruction de la relation initiale:
Client = Client1 Client2
b2.Fragmentation horizontale drive :
La Fragmentation dune table en fonction des fragments
horizontaux dune autre table.
Cette fragmentation est obtenue dans le cas de lien
pre_fils.
Exemple
Commande (NCL, NProduit, Date, Qte, NReprsentant)
Commande1= SELECT * FROM Commande
WHERE NCL IN
(SELECT NCL FROM CLIENT1)
Commande2= SELECT * FROM Commande
WHERE NCL IN
(SELECT NCL FROM CLIENT2)
Reconstruction de la relation initiale:
Commande = Commande1 Commande2
c- Rpartition des attributs (fragmentation
verticale):
Toutes les valeurs des occurrences pour un
mme attribut se trouvent dans le mme fragment.
Une fragmentation verticale est utile pour
distribuer les parties des donnes sur le site o
chacune de ces parties est utilise.
La fragmentation verticale est obtenue par
dcomposition de la table en groupes de colonnes.
L'oprateur de partitionnement est la projection
().
L'oprateur de recomposition est la jointure
(Join ou *).
Exemple:
Soit le partitionnement de la relation prcdente
Client en deux relations :
Cli1 = [N-Client, NomClient] Client
et Cli2 = [N-Client, Prnom, Age] Client
Relation Cli1 Relation Cli2
N-Client Nom N-Client Prnom Age
17400 Boughera 17400 Madjid 34
17900 Haliche 17900 rafik 34
18000 Ronaldo 18000 Cristiano 31
18500 Messi 18500 leo 32

La relation d'origine est obtenue avec la


recomposition suivante : Client = Cli1 * Cli2
d- Rpartition des valeurs (fragmentation
hybride ou mixte):
C'est la combinaison des deux fragmentations
prcdentes, horizontale et verticale.
La Fragmentation mixte rsulte de lapplication
successive doprations de fragmentation
horizontale et de fragmentation verticale
Les occurrences et les attributs peuvent donc
tre rpartis dans des partitions diffrentes.
L'opration de partitionnement est une
combinaison de projections et de
slections.
L'opration de recomposition est une
combinaison de jointures et d'unions.
Larelation Client est obtenue avec : (Cli3
Cli5) * Cli4 * Cli6
Relation Cli3 [NoClient, NomClient] ([Age < 38]Client)
Relation Cli5 [NoClient, NomClient] ([Age 38]Client)
Relation Cli4 [NoClient, Prnom]Client
Relation Cli6 [NoClient, Age]Client
2- AVANTAGES ET INCONVNIENTS DE LA
FRAGMENTATION
A. Avantages
Rduction des accs non pertinents.
Paralllisme intra-requte.
Combine avec dautres techniques
doptimisation (index, vues matrialises, etc.).
B. Inconvnients
Gnration des fragments disjoints est un
problme difficile.
Accs multiples aux fragments ncessitent des
oprations de jointure et dunion.
La migration des donnes (consquence dune
mauvaise fragmentation horizontale).
3- COMMENT FRAGMENTER ?
A. Fragmentation horizontale

Il existe deux catgories de mthodes de


fragmentation:
Data-driven partitioning (fragmentation dirige par
les donnes):
Hash-partitioning (Oracle10g)
Range partitioning (Oracle10g)
List Partitioning (Oracle10g)
Query-Driven Partitioning (fragmentation dirige par
les requtes):
Prdicats dfinis dans les requtes
a. Fragmentation dirige par des requtes
La mthode prconise doptimiser les requtes les
plus frquentes, avec connaissance pralable des
requtes ainsi que les frquences daccs aux
requtes.
Mais le Changement des requtes peut entraner
une re-fragmentation
Dfinitions:
Les prdicats simples:

tant donne une relation R(A 1 , A2 , ..., An )


Un prdicat simple pj dfini sur R est dfini:
pj : Ai valeur
avec: {=, <, >, , , }; et valeur
domaine(Di)
Les minterms :
Soit
Pr = {p1, p2, ..., pm} un ensemble de prdicats
simples dfinis sur la relation Ri, lensemble de minterms
M= {m1, m2 , ..., mz } est dfini comme suit:
M = {mi | mi = Pj Pr p*j }, 1 i
z, 1 j z;
where p*j = pj or pj
Exemple
m1 : (Ville =Poitiers) (Salaire 10 000)
m2 : NOT(Ville=Poitiers) (Salaire 10 000)
m3 : (Ville =Poitiers) NOT(Salaire 10 000)
m4 : NOT(Ville =Poitiers) NOT(Salaire 10 000)
b- Algorithme de fragmentation horizontale
On se base sur les requtes d'interrogation ou de
mise jour les plus importantes et les plus
frquentes.
Pour le cas de la fragmentation horizontale on se
base sur les conditions de slections:
Soient c1, c2, ..., cn les conditions de
slection qui ont t extraites des requtes,
On forme l'ensemble des 2n conjonctions de
conditions (les minterms) o chaque
condition lmentaire est prise dans sa
forme positive ou dans sa forme ngative
On te (enlve) de cet ensemble les
conjonctions de condition qui sont toujours
fausses, et on simplifie les autres.
En dautres termes pour appliquer cet algorithme, il
faut :
Gnrer les prdicats simples;
Gnrer les minterms;
liminer les minterms contradictoires.
Exemple:
Considrons les prdicats simples suivants:
A<10, A>5, Loc = Poitiers, Loc = Paris
Les minterms gnrer sont :

(1) A<10 A>5 Loc=SA Loc=SB


(2) A<10 A>5 Loc=SA (Loc=SB)
(3) A<10 A>5 (Loc=SA) Loc=SB
(4) A<10 A>5 (Loc=SA) (Loc=SB)
(5) A<10 (A>5) Loc=SA Loc=SB
(6) A<10 (A>5) Loc=SA (Loc=SB)
(7) A<10 (A>5) (Loc=SA) Loc=SB
(8) A<10 (A>5) (Loc=SA) (Loc=SB)
(9) (A<10) A>5 Loc=SA Loc=SB
(10) (A<10) A>5 Loc=SA (Loc=SB)
(11) (A<10) A>5 (Loc=SA) Loc=SB
(12) (A<10) A>5 (Loc=SA) (Loc=SB)
(13) (A<10) (A>5) Loc=SA Loc=SB
(14) (A<10) (A>5) Loc=SA (Loc=SB)
(15) (A<10) (A>5) (Loc=SA) Loc=SB
(16) (A<10) (A>5) (Loc=SA) (Loc=SB)
Aprs liminations des minterms contradictoires,
on obtient les fragments finaux sont :
F2: 5 < A < 10 Loc=SA
F3: 5 < A < 10 Loc=SB
F6: A 5 Loc=SA
F7: A 5 Loc=SB
F10: A 10 Loc=SA
F11: A 10 Loc=SB
Exercice dapplication:
On considre une table CUISINIER que l'on se
propose de rpartir en fragments horizontaux.
CUISINIER
NUMRO NOM PRNOM NUM-EQ
12 BELHOUCINE AMINE 1
34 BELHOUCINE HAYET 2
17 BOUKLI RACIM 1
22 SAMI ALI IBRAHIM 1
26 BOUDILMI AMINE 2
11 REGANI WISSEM 2
38 BOUBRIS RACIM 2
09 OUDRIRI RACIM 1
13 BOUNOUAR AMINE 2
20 SOCRATE AMINE 1
On commencera par se baser sur les requtes
les plus frquentes:
R1: SELECT numero, numeq FROM
CUISINIER WHERE prenom = AMINE' AND
nom LIKE '%R%';
R2: SELECT * FROM CUISINIER WHERE
numeq = '1';
R3: SELECT numero, nom FROM
CUISINIER WHERE numeq = '2' AND
prenom = AMINE';
SOLUTION :
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 commence par gnrer les prdicats simples:
P1 : prenom = amine
P2 : nom LIKE '%R%
P3 : numeq = '1
P4 : numeq = '2
Les condition de slection:
C1 = P1 P2
C2 = P3
C3 = P4 P1
A partir des conditions Ci, on peut construire
l'ensemble des minterms M={m1,.,m8} :
Remarque: le nombre de minterms est calcul
comme suit: 2i, dans notre cas 23 = 8.
Les minterms gnrs sont:
m1= C1 C2 C3,
m2= C1 C2 C3,
m3= C1 C2 C3,
m4= C1 C2 C3,
m5= C1 C2 C3,
m6= C1 C2 C3,
m7= C1 C2 C3,
m8= C1 C2 C3.
Evaluons chacun des minterms :
m1 =
m2 =
m3 = P1 P2 P4
m4 = P1 P2 P3
m5 = P1 P2 P4
m6 = P1 P2 P3 P4
m7 = (P1 v P2) P3
m8 = (P1 P2 P3) v (P1 P3 P4) v

(P2 P3 P4)
Supposons, comme hypothse supplmentaire
(contrainte dintgrit) , qu'il n'y a que deux quipes de
cuisiniers (1 et 2) ce qui implique:
P3 P4 = ,
P3 = P4,
P4 = P3.
On a alors les 5 conjonctions de conditions (cest--
dire les minterms) significatives suivantes:

m3 = C1 C2 C3 = P1 P2 P4

F1 = SELECT *FROM cuisinier WHERE


prenom=amine' AND nom LIKE '%R%' AND
numeq ='2'
m4 = C1 C2 C3 = P1 P2 P3

F2 = SELECT *FROM cuisinier WHERE


prenom='amine' AND nom LIKE '%R%' AND
numeq ='1

m5 = C1 C2 C3 = P1 P2 P4

F3 = SELECT *FROM cuisinier WHERE


prenom='amine' AND nom NOT LIKE '%R%' AND
numeq ='2'
m7 = C1 C2 C3 = (P1 P2) P3

F4 = SELECT *FROM cuisinier WHERE


(prenom !=amine' OR nom NOT LIKE '%R%' )
AND numeq ='1'

m8 = C1 C2 C3 = P1 P4

F5 = SELECT *FROM cuisinier WHERE prenom


!='amine' AND numeq ='2'
Ces 5 conditions dfinissent les fragments
horizontaux (exclusifs) :
Exercice dapplication N2:
soient les relations suivantes:
Relation Compte
NClient Agence TypeCompte Somme
174723 BDL Courant 123345
177498 CPA Courant 34564
201639 BDL Courant 45102
201639 BDL Dpt 325100
203446 CPA Courant 274882

Relation Agence
Agence Adresse
BDL Rue du lac, 3, 1002 lausane
CPA Avenue du Mont Blanc, 21, 1200 Genve
Relation Client
NClient NonClient Prnom Age
174723 Villard Jean 29
177498 Cattell Blaise 38
201639 Tsellis Alan 51
203446 Kowalsky Valdimir 36
Objectif: fragmenter la relation compte(Nclient, Agence,
TypeCompte, Somme).
Question1: proposer un schma de fragmentation
horizontale, en tenant compte des requte suivantes:
R1= Select(NClient, Agence) From compte Where
((TypeCompte=courant) and (Somme>100000));
R2= Select * From compte Where Agence=BDL;
R3= Select NClient, Somme From compte Where
((Agence=CPA) and (TypeCompte=courant));