You are on page 1of 64

BASES DE DONNÉES

DISTRIBUÉES

Master IAM
(Intelligence Artificielle & Multimédia)
Présenté par Dr. Yasmina Medjadba

1
 Chapitre I: Introduction

 Chapitre II: Structure de bases de données distribuées

Sommaire 1. Introduction
2. Fragmentation

3. Allocation de ressources

2
• Une entreprise, selon son besoin, peut choisir entre l’utilisation de base
de données centralisée ou distribuée.

Entreprise

Introduction Centralisée Distribuée

u1 u2 un
u1 u2 un

3
Problème de base de données centralisées

Introduction

4
Problème de base de données centralisées

• L’augmentation du volume de données


• L’augmentation du volume de traitements
• L’augmentation du volume de transactions.
Introduction
Multiplier les sources de données, et les fait communiquer
par un réseaux

Base de données distribuées

5
Qu’est ce qu’une bases de données distribuées?

• Une base de données distribuée est répartie et gérée par des sites différents
et apparaissant à l'utilisateur comme une base unique.
• Une collection de multiple bases de données distribuées sur un réseau
informatique logiquement interreliées.

Introduction

6
Qu’est ce qu’une bases de données distribuées?

Un client d’un système de gestion de base de données distribuée

• Une application qui accède aux informations distribuées par les


interfaces du système (Exemple: un navigateur Web).
Introduction
Un système de gestion de bases de données distribuées (SGBD)

• l’application qui permet la gestion de la base de données distribuée


et rend la distribution transparente aux utilisateurs

7
Les avantages des bases de données distribuées

 Continuité de service : en cas de panne d’un serveur, un autre


prend la relève.

 Haute performance : les requêtes sont distribuées sur les


Introduction différents serveurs.

 La transparence des données : les développeurs et les


utilisateurs n’ont pas a se préoccuper de la localisation des
données qu’ils utilisent.

8
Objectifs d’une base de données distribuées

Exemple
• Soit une entreprise qui a des annexes dans plusieurs villes: Alger, Batna,
Oran.
• Le gérant veut maintenir une base de données des employés et les projets
sur lesquels ils travaillent.
Introduction • Le gérant utilise 4 tables:
Emp (idEmp, nomEmp, poste);
Prj (idPrj, nomPrj, budget, ville);
Sal (poste, salaire);
Aff (idEmp, idPrj, resp, dur) //Affectation d’un employé à un projet
avec telle responsabilité et telle durée.
9
Exemple
Emp Aff

idEmp nomEmp poste idEmp idPrj resp dur


E1 Sm Cmptable E1 P1 Directeur 12
E2 Md Ing. E2 P1 Analyste 24
E3 Hm Elec.Ing E2 P2 Analyste 6
E4 Ad Programmeur E3 P3 Consultant 10
E3 P4 Ingénieur 48
E4 P2 Programmeur 18
Prj Sal

idPrj nomPrj budget ville poste salaire


P1 Instrumentati
-on
15000 Alger Comptable 40000
P2 BDD develop.
135000 Batna Ing. 34000
P3 Construction
250000 Batna Elec.Ing 27000
P4 Entretien 310000 Oran Programmeur 24000

10
Objectifs d’une base de données distribuées

Exemple
 Si la base de données est centralisée, on peut trouver les noms des
employés qui travaillent dans un projet pour une durée supérieure de 12

Introduction mois ainsi que leurs salaires avec la requête suivante:


SELECT nomEmp, salaire
FROM Emp, Aff, Sal
WHERE Aff.dur > 12
AND Emp.idEmp = Aff.idEmp
AND Sal.poste = Emp.poste

11
Objectifs d’une base de données distribuées

 Si la base est distribuée, L’utilisateur doit posé la même question au

système sans faire attention à la distribution des information

Introduction (transparence),

 C’est le système qui s’occupe de la récupération des informations.

Pour cela, il a été défini plusieurs types de transparence:

12
Objectifs d’une base de données distribuées

1. Transparence de données (Indépendance)

• La définition des données dans une base de données se fait à deux niveaux
(structure logique et structure physique), Se qui permet de définir une :

Introduction indépendance de données logique

• les applications de l’utilisateur ne sont pas autorisées à


modifier la structure logique des données (le schéma).

•indépendance de données physique.

• les détails de la structure de stockage des données seront


cachés aux applications de l’utilisateur.

13
Objectifs d’une base de données distribuées

2. Transparence du réseau

 Ce type de transparence fait référence à ce que l’existence du réseau

Introduction est caché à l’utilisateur.

 L’accès aux données de la base doit se faire de la même manière soit

on mode centralisé ou distribué.

14
Objectifs d’une base de données distribuées

3. Transparence de réplication (redondance)

 Il est préférable de faire des copies de quelques données de la base sur


Introduction plusieurs sites (raisons de performance, disponibilité des données).

 En plus, si une machine s’arrête, on peut trouver les données sur une autre
machine.

15
Objectifs d’une base de données distribuées

4. Transparence de fragmentation

 Fragmenter une table de la base de données et placer chaque fragment sur

Introduction un site différent (raisons de performance).

 La fragmentation permet aussi de réduire les inconvénients de la réplication.

 Cette opération de fragmentation doit être faite d’une manière transparente à


l’utilisateur. Il utilise la table originale comme si elle n’est pas fragmentée.

16
Objectifs d’une base de données distribuées

4. Transparence de fragmentation

Il existe deux types de fragmentation:

Fragmentation horizontale
Introduction • La table est partitionnée en plusieurs sous-tables contenants
chacune un sous-ensemble de lignes de la table originale.

Fragmentation verticale
• La table est partitionnée en plusieurs sous-tables qui sont
définies sur un sous-ensemble d’attributs (de colonnes) de la
table originale.

17
Objectifs d’une base de données distribuées

Introduction Fragmentation verticale

Fragmentation horizontale

18
1. Problèmes de la distribution

Structure de BDD 2. Fragmentation


Distribuées 3. Allocation de ressources

19
Problèmes de la distribution

L’organisation des systèmes distribués tourne autours de trois


axes:
1. Niveau de partage:
Structure de BDD • Pas de partage;
Distribuées • Partage de données;
• Partage de données et des applications.

2. Type d’accès:
• Accès statique (localisation des données connue dès le début);
• Accès dynamique (localisation des données inconnue).

20
Problèmes de la distribution

3. Niveau de connaissances sur le comportement (type) d’accès:


• Pas de connaissance préalable sur le type d’accès (le design ou la
Structure de BDD
conception de la base est très difficile);
Distribuées
• Information partielles sur le type d’accès;

• Information complètes sur le type d’accès (Le cas le plus pratique).

21
Problèmes de la distribution

• Concernant la distribution des relations de la base, au lieu de distribuer les

Structure de BDD relations d’une même base sur plusieurs sites, il est préférable de
Distribuées
distribuer des « fragments» d’une même relation sur plusieurs sites.

Ø Ainsi, ce processus est divisé en deux parties: fragmentation et allocation.

22
Fragmentation
 La fragmentation est le processus de décomposition d'une base
de donnée logique en un ensemble de "sous" bases de données.
Cette décomposition doit être sans perte d'information.
Structure de BDD
 Le processus de fragmentation peut se faire sous différentes
Distribuées
stratégies:
 horizontale,

 verticale,

 hybride.

23
Fragmentation
 la syntaxe générale de la commande SQL de création des
fragments:
Create Table tab_name As

Structure de BDD Select att1, att2,...attn


Distribuées
from tab1, tab2,....tabm

where m1 and m2 and...and ml;

att: attribut,

m: prédicat,

24
Prédicat
 Nous avons besoin de définir deux notions:
Structure de BDD
Distribuées  prédicat simple,

 prédicat minterm.

25
Prédicat
1. Prédicat simple

 Soit une relation R(A1,A2,…,An), tel que Ai est un attribut de R défini


sur un domaine Di. Un prédicat simple pj est défini sur R comme suit:

Structure de BDD pj : Ai  val


Distribuées
tel que   {=, <, >, , , } et val  Di

On note Pr l’ensemble de tous les prédicats simples définis sur R.

26
Prédicat

1. Prédicat simple

Exp.
Structure de BDD
Distribuées Soit la relation Prj de l’exemple précédent, on peut définir
quelques prédicats simples:

nomPrj = "Construction"

budget  100000

27
Prédicat

2. Prédicat minterm

 Un prédicat minterm m est défini par une conjonction de


prédicats simples.
Structure de BDD  Une conjonction est une expression booléenne contenant des
Distribuées prédicats simples séparés par des AND. On peut utiliser aussi le
NOT.

�= �∗�
�� ∈��

tel que: pj* = pj ou pj* = pj


28
Prédicat

2. Prédicat minterm
Exp.
Soit les minterms suivants:

Structure de BDD m1 : poste = "Ing"  salaire  50000


Distribuées m2 : poste = "Ing"  salaire > 50000
m3 : (poste = "Ing")  salaire  50000
m4 : (poste = "Ing")  salaire > 50000
m5 : poste = "Comptable"  salaire  50000
m6 : poste = "Comptable"  salaire > 30000

29
Prédicat

 pour éviter les problèmes de fragmentation,Nous avons besoin de bien

Structure de BDD choisir les prédicats simples qui seront à la base des prédicats minterm
Distribuées permettant de fragmenter une relation.

 D’une manière générale, cet ensemble doit contenir seulement les prédicats
avec des attributs et conditions utilisés par les applications.

30
Prédicat
 Cet ensemble de prédicats simples doit être complet et minimal.
Pour cela, nous avons besoin de définir deux aspects
Structure de BDD
Distribuées importants:
 complétude,

 minimalité.

31
Prédicat
 Complétude

 Un ensemble de prédicats simples Pr est dit complet ssi la probabilité d’accès


par chaque application à n’importe quel tuple de n’importe quel (de chaque)
Structure de BDD fragment-minterm est égale.
Distribuées
 Autrement dit:

 La complétude garantit que les tuples de chaque fragment-minterm soient


accédés par toutes les applications avec la même probabilité.

32
Prédicat
 Complétude

Exp
Structure de BDD
Distribuées  Par contre, s’il y a une 2ème application qui cherche à accéder aux projets
qui ont un budget inférieur à 100000, dans ce cas, Pr n’est plus complet.

→ Cause: Les tuples des fragments qui ont un budget < 100000 ont une
probabilité d’accès supérieur aux tuples qui ont un budget > 100000.

33
Prédicat
 Complétude

Exp:

Structure de BDD Soit l’ensemble P r = {ville="Alger", ville="Batna", ville="Oran"}


Distribuées permettant de fragmenter la relation Prj en Prj 1 , Prj 2 , Prj 3
comme dans l’exemple précèdent.

S’il y a une seule application qui cherche à accéder aux tuples des
fragments selon leurs locations, l’ensemble Pr est complet.

34
Prédicat
 Complétude

Structure de BDD Exp


Distribuées Solution: Pour rendre l’ensemble Pr complet, nous devons ajouter le prédicat
(budget<100000) et sa négation (budget≥100000) comme suit:

→ P r = {ville="Alger", ville="Batna", ville="Oran", budget<100000 ,


budget≥100000}

35
Prédicat
 Complétude
Solution:
Les minterms à utiliser dans la fragmentation sont:

Structure de BDD m1: ville = "Alger"  budget < 100000


Distribuées m2: ville = "Batna "  budget < 100000
m3: ville = "Oran "  budget < 100000
m4: ville = "Alger"  budget ≥ 100000
m5: ville = "Batna "  budget ≥ 100000
m6: ville = "Oran "  budget ≥ 100000
Les deux applications accèdent aux tuples de chaque fragment-minterm avec
une probabilité égale (0 ou 1/nb_tuples_fragment

36
Prédicat

Minimalité
 Définition 1 :
Structure de BDD  Un ensemble de prédicats simples est dit minimal si tous les prédicats sont
Distribuées
pertinents.

 Un prédicat est dit pertinent s’il cause la fragmentation d’un fragment F en


F 1 et F 2 et qu’il existe au-moins une application qui accède aux deux
fragments différemment (individuellement)(c-à-d F1 et F2 sont disjoints).

37
Prédicat
 Minimalité

 Définition 2 :

Structure de BDD  La minimalité d’un ensemble de prédicats exprime que si un prédicat dans
Distribuées cet ensemble permet de partitionner un fragment F en deux fragments F1
et F 2 , alors il existe au-moins une application accède à F 1 et F 2
individuellement.

 Cela veut dire que le prédicat est pertinent dans la détermination de F1 et


F2 .

38
 Prédicat

 Minimalité

Structure de BDD  Définition 3 :


Distribuées
 Le but de la minimalité est d’assurer qu’il y a une cause pour effectuer la
fragmentation (F1, F2) par un prédicats.

 Il existe au-moins une application qui n’a besoin que d’un seul fragment
(parmi les deux F1 et F2) à un moment donné.

39
Fragmentation
1.1. Fragmentation horizontale primaire

 Minimalité
Exp.

Structure de BDD  Dans l’exemple précèdent, l’ensemble de prédicats P r = {ville="Alger",


Distribuées ville="Batna", ville="Oran", budget<100000 , budget≥100000} est aussi
minimal parce que tous les prédicats sont pertinents.

 Soit la relation Aff(idEmp, idPrj, resp, dur) et soit une


application qui s’intéresse aux tuples du projet n°5.

 L’ensemble P r = {idPrj=5, idPrj5} est minimal parce que le prédicat à


l’intérieur est pertinent.

40
 Prédicat

 Minimalité
Structure de BDD
Distribuées Exp

 S’il existe une 2ème application qui s’intéresse aux tuples dont la durée > 12,
dans ce cas, l’application accède aux tuples des 2 fragments en même temps,
donc Pr n’est pas minimal.

41
Remarque:
Structure de BDD
La meilleure fragmentation est celle qui utilise un ensemble de
Distribuées
prédicats simples Pr complet et minimal.

42
Fragmentation

1. Fragmentation horizontale

Ce type de fragmentation permet de découper une


Structure de BDD relation en sous-relations contenants des sous-ensembles
Distribuées
des tuples de la relation mère.

R1

Relation (R)

R2

43
Fragmentation

1. Fragmentation horizontale

 La fragmentation horizontale est basée sur l’opération de


sélection qui utilise un prédicat (condition).
Structure de BDD
Distribuées  La reconstitution de la relation se fait par l’union des fragments.

 Il existe deux types de fragmentation horizontale:


 primaire et

 dérivée

44
Fragmentation

1. Fragmentation horizontale
1.1. Fragmentation horizontale primaire
 La fragmentation horizontale primaire est basée sur l’opération de sélection
Structure de BDD qui utilise un prédicat minterm.
�� = ��� �
Distribuées
tel que:
Ri est un fragment de la relation R
mi est un minterm
 est l’opération de sélection

45
Fragmentation

1. Fragmentation horizontale
1.1. Fragmentation horizontale primaire
Exp. 1
 Fragmentation de la relation Prj en fragmentation horizontale peut être
Structure de BDD faite comme suit:
Distribuées Prj1 = budget100000 (Prj)
Prj2 = budget>100000 (Prj)
→ Cet exemple présente un des problèmes de la fragmentation horizontale.
→ Si le domaine des attributs est continu et infini il sera difficile de définir le
nombre maximal de fragmentations possibles.
→ On ne peut pas partager le domaine en un nombre fini de sous-domaines.

46
Fragmentation

1. Fragmentation horizontale
1.1. Fragmentation horizontale primaire
Exp. 2
Structure de BDD
On peut fragmenter la relation Prj en se basant sur la localisation:
Distribuées
Prj1 = ville="Alger" (Prj)
Prj2 = ville="Batna" (Prj)
Prj3 = ville="Oran" (Prj)
→ Dans ce cas, le nombre maximal de fragmentations possibles est fixe.

47
Fragmentation

1.2. Fragmentation horizontale dérivée

 La fragmentation horizontale dérivée d’une relation (R) est basée sur des
fragments horizontaux d’une autre relation (S) à condition qu’il y est un lien
Structure de BDD
entre R et S.
Distribuées
 Les nouveaux fragments sont définis par semi-jointure.
Définition
 La semi-jointure entre deux relations R et S (R  S) permet de garder les
tuples de R qui ont relation avec des tuples de S.

48
Fragmentation

1.2. Fragmentation horizontale dérivée


Exp.

 Dans l’exemple précédent, nous voulons grouper les employés de la


Structure de BDD relation Emp(idEmp, nomEmp, poste) en 2 groupes selon leurs
Distribuées salaires. Un groupe pour ceux qui ont un salaire inférieur à 30000, et les
autres dans le deuxième groupe.

 On fragmente la relation Sal(poste, salaire)en deux fragments:

Sal1=salaire<30000(Sal)
Sal2=salaire30000(Sal)

49
Fragmentation

1.2. Fragmentation horizontale dérivée

Exp.
Structure de BDD  Les deux fragments contenant les deux groupes de salariés sont définis par
Distribuées
semi-jointure sur la colonne ‘poste’ comme suit:

Emp1 = Emp  Sal1

Emp2 = Emp  Sal2

50
Fragmentation

2. Fragmentation verticale

La fragmentation verticale permet de découper une relation R en plusieurs


relations. Chaque fragment contient un sous-ensemble d’attributs ainsi que la
Structure de BDD
clé primaire de R.
Distribuées R1 R2

51
Fragmentation

2. Fragmentation verticale
Exp.
 Soient deux applications qui utilisent la relation Emp(idEmp, nomEmp,
poste).
Structure de BDD  La première utilise les noms des employés, et l’autre utilise les postes des
Distribuées employés.
 On cherche à fragmenter la relation pour que chaque application accède
seulement au fragment qui l’intéresse.
Pour cela, on utilise la projection:
Emp1 = [idEmp, nomEmp](Emp)

Emp2 = [idEmp, poste](Emp)

52
Fragmentation

Structure de BDD 2. Fragmentation verticale

Distribuées  La reconstruction de la relation d’origine se fait par la jointure:

Emp = Emp1  Emp2

53
Fragmentation

3. Fragmentation hybride
 La fragmentation hybride est une combinaison des deux fragmentations
précédentes.
 Soit:
 Horizontal Vertical, reconstruction :(Union ”∪”, jointure ”” )
Structure de BDD  Vertical Horizontal, reconstruction :(jointure ””, Union ”∪”)
Distribuées Exp
 Soient quatre applications qui utilisent la relation
Emp(idEmp, nomEmp, âge, adr, poste, tel)
 La première utilise l'âge des employés  30ans,
 la deuxième utilise l'âge des employés > 30ans
 La troisième utilise le nom, l'âge, et l’adresse des employés  30ans,
 et l’autre utilise les postes et tel. des employés  30ans.

54
Fragmentation

3. Fragmentation hybride
Exp.
 On cherche à fragmenter la relation Emp pour que chaque application
Structure de BDD accède seulement au fragment qui l’intéresse.
Distribuées Emp1 =(age 30ans (Emp))
Emp2 =(age>30ans)(Emp)
Emp3 =[idEmp, nomEmp, age, adr](Emp1)
Emp4 =[idEmp, post, tel] (Emp1)

55
Fragmentation

3. Fragmentation hybride
 La reconstruction de la relation d’origine se fait par :
Emp1 = Emp3  Emp4,
Structure de BDD Emp = Emp1 ∪ Emp2.
Distribuées

56
Allocation de ressources

 L'affectation des fragments sur les sites est décidée en fonction de l'origine
prévue des requêtes qui ont servi à la fragmentation.

Structure de BDD  Soit un ensemble de fragments F={F 1 , F 2 , …, F n } distribués sur un


Distribuées ensemble de sites S={S1, S2, …, Sm} et un ensemble de requêtes Q={q1 ,
q2, …, qp} utilisant les fragments F situés sur les sites S.

 Le problème d’allocation de ressources se résume dans la recherche d’une


distribution optimale des F sur les S.

57
Allocation de ressources

 Pour assurer l’optimalité, nous devons respecter les deux conditions:


1. Le coût minimal
Structure de BDD Les coûts traités dans cette condition sont:
Distribuées  Le coût de stockage de chaque fragment Fi sur le site Sj;
 Le coût de consultation de Fi localisé sur Sj;
 Le coût de mise à jour de Fi sur tous les sites où il est stocké;
 Le coût de communication.

58
Allocation de ressources

2. La performance
Dans cette condition nous essayons de:
 Minimiser le temps de réponse;
Structure de BDD  Maximiser le débit de chaque site.
Distribuées
Remarque:
 Suite à la complexité du problème, on ne peut pas satisfaire toutes ces
conditions. Les modèles existants essayent de satisfaire les conditions qui les
intéresses.

59
Allocation de ressources

 Pour simplifier la modélisation de ce problème, nous introduisons


quelques définitions sur un fragment Fk.

Structure de BDD Soit R={r1, r2, …, rm} et U={u1, u2, …, um}


Distribuées
tel que:

 ri: le trafic de lecture à partir de Fk généré sur le site Si.

 ui: le trafic de mise à jour dans Fk généré sur le site Si.

60
Allocation de ressources

 Pour le coût de communication nous définissons:


0 �12 ⋯ �1,�−1 �1�
� � = ⋮ ⋮ ⋮ ⋮ ⋮
��1 ��2 ⋯ ��,�−1 0
0 �′12 ⋯ �′1,�−1 �′1�
Structure de BDD �′ � = ⋮ ⋮ ⋮ ⋮ ⋮
Distribuées �′�1 �′�2 ⋯ �′�,�−1 0
tel que:
 cij représente le coût de communication pour une requête de consultation
entre les sites Si et Sj.
 c'ij représente le coût de communication pour une requête de mise à jour
entre les sites Si et Sj.

61
Allocation de ressources

 Pour le coût de stockage nous définissions:


� = �1 , �2 , …, ��
Structure de BDD tel que:
Distribuées  di représente le coût de stockage du fragment Fk sur le site Si.

 Définissons aussi une variable de décision:


1 si le fragment �� est assigné au site ��
�� =
0 sinon

62
Allocation de ressources

Structure de BDD  Pour minimiser le coût d’allocation de ressources du fragment Fk qui sera
Distribuées placé sur les sites Sj tel que xj=1, nous allons chercher [ref. 1]:

min �� ∙ �′�� + �� ∙ min ��� + ��


�|�� =1
�=1 �|�� =1 �|�� =1

63
1. M. Tamer Özsu and Patrick Valduriez, “Principles of
Distributed Database Systems”, Third Edition, Springer,
2011

2. IBM, “Distributed database programming”, Version 6


Références
Release 1, 2008.

3. Georges Gardarin, « Bases de données réparties »,


Cours BDD Web.

64

You might also like