bases de données réparties

60
Bases de Données Réparties (BDRé) Abdelouahed Sabri 2011/2012 [email protected] Clients, Distributeurs Clients habitants Tétouan Clients habitants Tanger Distributeurs (Nom, Télé)

Upload: abdelouahed-abdou

Post on 05-Dec-2014

2.016 views

Category:

Education


21 download

DESCRIPTION

Un Système de Gestion de Bases de Données Réparties est constitué d'un ensemble de processeurs autonomes «appelés sites » (stations de travail, micro-ordinateurs, …) reliés par un réseau de communication qui leur permet d'échanger des données. Un SGBDRé suppose que les données soient stockées sur au moins deux sites. Chaque site est doté de son propre SGBD. Ce support de cours propose une vue d’ensemble sur les avantages et inconvénients de répartition de données. Aussi, il présente les différentes techniques de répartition

TRANSCRIPT

Page 1: Bases de données réparties

Bases de Données Réparties (BDRé)

Abdelouahed Sabri 2011/2012

[email protected]

Clients, Distributeurs

Clients habitants Tétouan

Clients habitants Tanger

Distributeurs (Nom, Télé)

Page 2: Bases de données réparties

Plan

Introduction

C’est quoi une base de données répartie

Avantages et Inconvénients

Objectifs

Modélisation et conception

Fragmentation

Allocation

Répartition avancée

La pratique

Abdelouahed Sabri 2011/2012

2

Page 3: Bases de données réparties

Introduction

Architectures

Architecture centralisée:

• Programme d'application et SGBD sur même machine (même site),

Architecture client-serveur, notée 2-tiers:

• Programme d’application sur le client et SGBD sur le serveur,

Architecture 3-tiers:

• Interface utilisateur sur le client, programme d’application sur le serveur

d’application et le SGBD sur le serveur de données.

Bases de données

Centralisées

Réparties ou distribuées

Fédérées

Multi-bases Abdelouahed Sabri 2011/2012

3

Page 4: Bases de données réparties

Introduction

BD centralisée:Gérée par un seul SGDB,

Stockée dans un emplacement physique unique,

Les traitements sont confiés à une seule et même unité.

Multi-base:Plusieurs SGBD, hétérogènes ou non, capables d’inter-opérer sans modèle

commun (vue commune),

BD Fédérée:Plusieurs SGBD hétérogènes sont utilisés comme un seul via un modèle commun

(vue commune)

Ex: Utilisés dans la fusion ou acquisition des bases de données de compagnies

BD Répartie:Un seul système gérant une collection de bases de données logiquement reliées

qui sont réparties sur différents sites accessible via un modèle commun (vue

commune)

Abdelouahed Sabri 2011/2012

4

Page 5: Bases de données réparties

Introduction

Différence entre bases de données réparties et le modèle

client-serveur

Abdelouahed Sabri 2011/2012

5

Client-Serveur Bd Répartie

Plusieurs bases vues par le client Une base logique vue par l’utilisateur

Plusieurs connexions Une seule connexion

Localisation explicite des bases (« connection

string » ou DSN)

Indépendance à la localisation

Règles de localisation dans l’application Règles de localisation dans le dictionnaire

1 ordre SQL 1 seule BD 1 ordre SQL plusieurs BD

n transactions mono-base 1 transaction logique

Synchronisation des transactions dans

l’application

Synchronisation automatique des n sous-

transactions

Plusieurs COMMIT mono-base 1 COMMIT généralisé

Page 6: Bases de données réparties

Introduction

Pourquoi répartir?

Besoin de décentralisation des organisations,

Partage de données géographiquement reparties.

Principe de la répartition:

Les données et traitements sont répartis sur différents

sites interconnectés par un réseau de communication.

La défaillance d'un site ne peut pas entraîner

l'indisponibilité totale du système et sa probabilité peut

être négligée grâce à la tolérance aux fautes, assurée par

la redondance des informations et des traitements.

Abdelouahed Sabri 2011/2012

6

Page 7: Bases de données réparties

Introduction

Système de Gestion de Bases de Données Réparties

Constitué d'un ensemble de processeurs autonomes

«appelés sites » (stations de travail, micro-ordinateurs, …)

reliés par un réseau de communication qui leur permet

d'échanger des données.

Un SGBDRé suppose que les données soient stockées sur

au moins deux sites.

• Chaque site est doté de son propre SGBD.

Abdelouahed Sabri 2011/2012

7

Page 8: Bases de données réparties

Introduction Avantages de répartir les données

Limiter le transfert d'information (en nombre et en volume)

en répartissant les données là où elles sont le plus utilisées.

Ceci est particulièrement important pour une base de données dont

les différents utilisateurs sont géographiquement dispersés

Exemple: Des agences d'une banque

La répartition de charge de travail sur plusieurs unités de

traitement opérant en parallèle permet d’accroître les

performances.

Augmenter la fiabilité et la disponibilité en dupliquant les

données sur plusieurs sites

Exemple: Comptes bancaires

Abdelouahed Sabri 2011/2012

8

Page 9: Bases de données réparties

Introduction Inconvénients de répartir les données

Inconvénients

Complexité des SGBDs,

Problème de concurrence d’accès,

Surcoût du traitement: la distribution de données

entraine des communications inter-sites,

Sécurité.

Abdelouahed Sabri 2011/2012

9

Page 10: Bases de données réparties

Introduction

Exemple 1:

Abdelouahed Sabri 2011/2012

10

Clients, Distributeurs

Clients habitants Tétouan

Clients habitants Tanger

Distributeurs (Nom, Télé)

Page 11: Bases de données réparties

Introduction

Exemple 2: Une banque peut avoir des agences à Casa, à Rabat et à Fès.

BD centralisée:

1. Le siège principal de la banque gérerait tous les comptes des clients,

2. Les agences devraient communiquer avec le siège social pour avoir accès

aux données.

BD répartie:

• Les informations sur les comptes sont distribuées dans les agences et celles-ci

sont interconnectées (entièrement ou partiellement) afin qu'elles puissent

avoir accès aux données externes.

Cependant, la répartition de la base de données bancaire est invisible aux

agences en tant qu'utilisateurs, et la seule conséquence directe pour elles est

que l'accès à certaines données est beaucoup plus rapide.

Abdelouahed Sabri 2011/2012

11

Page 12: Bases de données réparties

Objectifs d’une base de données repartie

Les 12 principaux objectifs définis par C.J. Date[1] sont:

Abdelouahed Sabri 2011/2012

12

1) Transparence pour l’utilisateur,

2) Autonomie de chaque site,

3) Absence de site privilégié,

4) Continuité de service,

5) Transparence vis-à-vis de la

localisation de données,

6) Transparence vis-à-vis de la

fragmentation,

7) Transparence vis-à-vis de la

réplication,

8) Traitement réparti des requêtes,

9) Indépendance vis-à-vis du

matériel,

10) Indépendance vis-à-vis du

système d’exploitation,

11) Indépendance vis-à-vis du

réseau,

12) Indépendance vis-à-vis du

SGBD

[1] C.J. Date: auteur du livre An Introduction to Database Systems (8th Edition)

Page 13: Bases de données réparties

Objectifs d’une base de données repartie (suite)

Transparence de localisation:

Les utilisateurs accèdent au schéma conceptuel via des

vues. Un utilisateur ne sait pas sur quel site se trouvent

physiquement les données

• Exemple: un client peut ouvrir un compte à Fès et effectuer

régulièrement des opérations à Rabat C'est le système qui

recherche le site où sont mémorisées ses informations et non

l'utilisateur qui doit l'indiquer.

Abdelouahed Sabri 2011/2012

13

Page 14: Bases de données réparties

Objectifs d’une base de données repartie (suite)

Transparence de partitionnement:l’utilisateur ne sait pas comment la base est partitionnée.

Transparence de duplication:l’utilisateur ne sait pas s’il existe plusieurs copies d'une même

information ou non.Lors de la modification d'une information, c'est le système qui doit se

préoccuper de mettre à jour toutes les copies.

Exemple: Un client possède des comptes (courant, épargne logement, ...) à

Fès mais effectue régulièrement des retraits d'argent à Rabat, les

informations le concernant soient réparties entre Fès à Rabat: l'historique

des opérations du compte courant est conservé à Rabat, la gestion de ses

autres comptes est assurée à Fès, et le solde du compte courant est dupliqué

à Fès et Rabat.Abdelouahed Sabri 2011/2012

14

Page 15: Bases de données réparties

Objectifs d’une base de données repartie (suite)

Indépendance vis-à-vis du SGBD:

Un système réparti ne doit pas être dépendant en aucun cas des

différents SGBDs, la relation globale doit être exprimée dans un

langage normalisé indépendant des constructeurs.

Autonomie de chaque site:

Vise à garder une administration locale séparée et indépendante

pour chaque serveur participant à la base de données répartie afin

d'éviter une administration centralisée.

• Toute manipulation sur un site (reprise après panne, mises à jour des

logiciels) ne doit pas altérer le fonctionnement des autres sites.

Abdelouahed Sabri 2011/2012

15

Page 16: Bases de données réparties

Modélisation d’une base de données réparties

Une base de données est généralement modélisée en 3 niveaux:

Externe, Conceptuel et Interne.

Schéma interne: Description de l’organisation physique des données

Stockage physique

Schéma conceptuel: Description d’univers à modéliser avec

éventuellement les contraintes liés à ces objets (contraintes d’intégrités)

Domaine des concepteurs de Bases de données

Schéma externe: Application accédant aux données : des vues (accès

limités) Domaine des créateurs d’applications

L’avantage de se découpage est de permettre des modifications à un

niveau sans que cela interfère (le moins possible) sur les autres

niveauxAbdelouahed Sabri 2011/2012

16

Page 17: Bases de données réparties

Modélisation d’une base de données réparties

Pour une base de données réparties, la répartition a lieu dans les

trois niveaux:

Abdelouahed Sabri 2011/2012

17

les vues des utilisateurs sont présentées

sur leur site (site utilisateur); elles

correspondent au niveau externe.

Il y a donc répartition des vues.

le schéma conceptuel (global) est associé

aux schémas locaux des sites physiques

via un schéma de fragmentation (la

manière dont la base est découpée) et un

schéma d'allocation (la manière dont les

fragments sont répartis).

il n'y a pas de schéma interne global,

mais des schémas locaux internes.

Page 18: Bases de données réparties

Conception d’une base de données répartie

La définition du schéma de répartition est la partie la plus

délicate de la phase de conception d'une base de données

répartie:Il n y’a pas de méthode standard on se base sur les besoins,

L'administrateur (le concepteur) doit prendre des décisions sur

comment la répartition doit être faite.

L'objectif est de minimiser:

• le nombre de transferts entre sites,

• les temps de transfert,

• le volume de données transférées,

• les temps moyens de traitement des requêtes,

• le nombre de copies de fragments.

Abdelouahed Sabri 2011/2012

18

Page 19: Bases de données réparties

Conception d’une base de données répartie

Méthodes de conception:

Deux approches fondamentales sont à l'origine de la

conception des bases de données réparties :

1. La conception descendante (Top down design),

2. La conception ascendante (Bottom up design).

NB: Pour les deux approches il faut recueillir l'expression

des besoins des utilisateurs afin de créer un schéma

conceptuel unique et en déduire les vues externes à prévoir.

Abdelouahed Sabri 2011/2012

19

Page 20: Bases de données réparties

Conception d’une base de données répartie

Conception descendante

Conception du schéma conceptuel global de la base de données

répartie,

Création du schéma de fragmentation :

• la base de données sera découpée en fragments distincts constituant

une partition de la base l'intersection de ces fragments doit être

vide et leur réunion doit redonner le schéma global.

Création du schéma d'allocation :

• les fragments doivent être distribués entre les différents sites.

Création d'un schéma local pour chaque site, relatif aux fragments

dévolus à ce site,

Création des schémas internes :

• implémentation des données des fragments sur les supports physiques

de stockage. Abdelouahed Sabri 2011/2012

20

Page 21: Bases de données réparties

Conception d’une base de données répartie

Conception ascendante

Il existe plusieurs bases de données disjointes (plusieurs schémas

conceptuels locaux) qu’il faut réunir en un schéma conceptuel

global

• Intégration (fédération) des BD existantes

Abdelouahed Sabri 2011/2012

21

Page 22: Bases de données réparties

Fragmentation

Définition:

On définit la fragmentation comme étant le processus de décomposition

d'une base de donnée logique (telle que la voient les utilisateurs) en un

ensemble de « sous »-bases de données appelés fragments.

Caractéristiques:

La fragmentation doit être sans perte d'information,

Pour toute donnée d’une table R, il existe un fragment Ri de la table R qui possède

cette donnée. Règle de complétude

La non perte d'informations est vérifiée par recomposition de la base à partir des

différents fragments en utilisant le langage de manipulation de données (SQL par

exemple) leur réunion doit redonner le schéma global Règles de reconstruction

Les différents fragments doivent « de préférence » être exclusifs (leur

intersection est vide)

Dans le cas contraire on parle de duplication il faut affiner la fragmentation

Abdelouahed Sabri 2011/2012

22

Page 23: Bases de données réparties

Fragmentation

Techniques de fragmentation

Il existe différentes façons pour fragmenter une base de données

L'unité de fragmentation détermine la nature de l'élément le plus

petit dont les composants ne peuvent être fragmentés

• On parle de granularité: taille du plus petit élément

Une granularité fine donne de grandes possibilités pour la fragmentation et

autorise une répartition flexible et efficace de la base de données, mais à

l'inconvénient de provoquer une certaine lourdeur pour la recomposition des

informations.

A l'opposé, une granularité élevée permet une gestion simple de la

fragmentation, mais fournit des possibilités très limitées pour la fragmentation.

L'unité de fragmentation est généralement laissée au libre choix de

l'administrateur.

Il y a quatre unités de fragmentation de base: Relations, Tuples,

Attributs, ValeursAbdelouahed Sabri 2011/2012

23

Page 24: Bases de données réparties

Fragmentation

Fragmentation par relation (classe d’objets)

Ce sont les classes (relation ou table dans le modèle relationnel,

entité en Entité-Association, classe dans le modèle orienté-objet)

qui peuvent être réparties dans des fragments différents.

Les fragments sont définis à partir des "classes" de la base de données.

Toutes les occurrences d'une même classe appartiennent au même fragment.

L'opération de partitionnement est la définition de sous schémas.

L'opération de recomposition est la réunion de sous schémas.

Abdelouahed Sabri 2011/2012

24

Page 25: Bases de données réparties

Fragmentation

Fragmentation par relation (suivant)

Exemple: Banque

• Trois tables: Agence, Clients, Compte

Abdelouahed Sabri 2011/2012

25

Compte

NoClient Agence TypeCompte Somme

174 723 Lausanne courant 123 345.89

177 498 Genève courant 34 564.00

201 639 Lausanne courant 45 102.50

201 639 Lausanne dépôt 325 100.00

203 446 Genève courant 274 882.95

Client

NoClient NomClient Prénom Age

174 723 Villard Jean 29

177 498 Cattell Blaise 38

201 639 Tesllis Alan 51

203 446 Kovalsky Validmir 36

Agence

Agence Adresse

Lausanne Rue du Lac, 3, 1002 Lausanne

Genève Avenue du Mont Blanc, 21, 1200 Genève

• Cette base peut être fragmentée en deux

fragments: {Compte, Client} et

{Agence}.

Page 26: Bases de données réparties

Fragmentation

Fragmentation horizontale

Appelée aussi fragmentation par occurrences ou par tuples,

La fragmentation horizontale est basée sur un découpage

(horizontal) des tuples des tables

• Les occurrences d'une même table peuvent être réparties dans des

fragments différents (avec tous les attributs)

• Le découpage est effectué en utilisant la sélection,

• La reconstruction est effectuée en utilisant l’opération d’union.

Abdelouahed Sabri 2011/2012

26

Page 27: Bases de données réparties

Fragmentation

Fragmentation horizontale (suivant)

Exemple: Banque

• La table Compte peut être divisée en deux fragments par répartition

des tuples en deux catégories :

• Compt1 = σ TypeCompte = courant(Compte)

• Compt2 = σ TypeCompte = dépôt (Compte)

Abdelouahed Sabri 2011/2012

27

Compt1

NoClient Agence TypeCompte Somme

174 723 Lausanne courant 123 345.89

177 498 Genève courant 34 564.00

201 639 Lausanne courant 45 102.50

203 446 Genève courant 274 882.95

Compt2

NoClient Agence TypeCompte Somme

201 639 Lausanne dépôt 325 100.00

• La recomposition est réalisée par une opération d’union

Compte = Compt1 ∪ Compt2

Page 28: Bases de données réparties

Fragmentation

Fragmentation verticale (par attributs)

Les fragments sont construits à partir de quelques attributs d'une

relation:

• Ce sont les attributs (avec leur occurrences) d'une même relation qui peuvent

être répartis dans des fragments différents.

• Toutes les valeurs des occurrences pour un même attribut se trouvent dans le

même fragment.

• La répartition des attributs dans différents fragments ne peut être correcte que

si l'identifiant (ou identité d'objet) est dupliqué dans chaque fragment cet

identifiant est utile pour la reconstruction (décomposition sans perte

d'informations.

Le découpage d'une relation en sous tables est effectuée utilisant la

projection sur les colonnes composant chaque fragment.

La reconstruction est effectuée par jointure des différents

fragments.Abdelouahed Sabri 2011/2012

28

Page 29: Bases de données réparties

Fragmentation

Fragmentation verticale (suite)

Exemple: Banque

• Dans les guichets bancaires on n’a besoin de connaître que les soldes des

comptes, alors que les services de contentieux ont besoin de connaître les

informations complètes sur chaque client.

• Compt1 = ∏ NoClient, Somme(Compte)

• Compt1 = ∏ Noclient, Agence, TypeCompte(Compte)

Abdelouahed Sabri 2011/2012

29

Compt1

NoClient Somme

174 723 123 345.89

177 498 34 564.00

201 639 45 102.50

201 639 325 100.00

203 446 274 882.95

Compt2

NoClient Agence TypeCompte

174 723 Lausanne courant

177 498 Genève courant

201 639 Lausanne courant

201 639 Lausanne dépôt

203 446 Genève courant

• La recomposition est réalisée

par une opération de jointure

Compte = Compt1 |x| Compt2

Page 30: Bases de données réparties

Fragmentation

Fragmentation hybride (par valeurs)

Cette fragmentation combine la fragmentation horizontale (par

occurrences) et verticale (par attributs).

• Le partitionnement est effectué par une combinaison de projections et de

sélections.

• Les occurrences et les attributs peuvent donc être répartis dans des différents

fragments.

La reconstruction est effectuée par combinaison de jointures et

d'unions des différents fragments.

Abdelouahed Sabri 2011/2012

30

Page 31: Bases de données réparties

Fragmentation

Fragmentation hybride (par valeurs)Exemple: Banque

• Compt1 = ∏ NoClient, Somme (σ TypeCompte = courant(Compte))

• Compt2 = ∏ NoClient, Somme ( σ TypeCompte = dépôt (Compte))

• Compt3 = ∏ NoClient, AgenceCompte)

• Compt4 = ∏ Noclient, TypeCompte(Compte)

Abdelouahed Sabri 2011/2012

31

Compt1

NoClient Somme

174 723 123 345.89

177 498 34 564.00

201 639 45 102.50

203 446 274 882.95

Compt2

NoClient Somme

201 639 325 100.00

Compt4

NoClient TypeCompte

174 723 courant

177 498 courant

201 639 courant

201 639 dépôt

203 446 courant

• La reconstruction

Compte= (Compt1 ∪ Compt2 ) |x| Compt3 |x| Compt4

Compt3

NoClient Agence

174 723 Lausanne

177 498 Genève

201 639 Lausanne

201 639 Lausanne

203 446 Genève

Page 32: Bases de données réparties

Fragmentation Méthodologie de la fragmentation horizontale

Question: Comment décomposer une base de données en

fragments horizontaux???

On se base sur les requêtes d'interrogation ou de mise à jour les

plus importantes et les plus fréquentes.

Pour le cas de la fragmentation horizontale on se base sur les

conditions de sélections.

• Soient c1, c2, ..., cn les conditions de sélection qui ont été extraites

des requêtes,

• On forme l'ensemble des 2n conjonctions de conditions où chaque

condition élémentaire est prise dans sa forme positive ou dans sa

forme négative

Abdelouahed Sabri 2011/2012

32

• On ôte de cet ensemble les conjonctions de condition qui sont toujours

fausses, et on simplifie les autres.

Page 33: Bases de données réparties

Fragmentation Méthodologie de la fragmentation horizontale

Exemple:

On considère une table CUISINIER que l'on se propose de répartir

en fragments horizontaux

Abdelouahed Sabri 2011/2012

33

On commencera par se baser sur les requêtes les plus fréquentes: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';

Cuisinier

NUMERO NOM PRENOM NUMEQ12 DUPONT Jean 134 DUPONT Jeanne 217 DUBOIS Robert 122 DUBALAI Aline 126 DUGENOU Jean 211 DURAND Aline 238 DURACUIRE ROBERT 29 DURALUMIN Roberte 113 DURDUR Jean 220 DURALEX Jean 1

Page 34: Bases de données réparties

Fragmentation Méthodologie de la fragmentation horizontale

Exemple (suite):Pour effectuer la fragmentation horizontale on se base sur les critères de

recherche, c'est à dire les conditions exprimées dans les "WHERE" des

ordres SQL.• Soit

– A : prenom = 'Jean‘

– B : nom LIKE '%R%‘

– C : numeq = '1‘

– D : numeq = '2‘

• Les condition de sélection:– C1 = A ʌ B

– C2 = C

– C3 = D ʌ A

• A partir des conditions Ci, on peut construire l'ensemble des conjonctions CCj (i=1..8)

de conditions :

Abdelouahed Sabri 2011/2012

34

CC = {C1 ʌ C2 ʌ C3, ¬C1 ʌ C2ʌ C3, C1ʌ ¬C2ʌ C3, C1ʌ C2ʌ ¬C3, ¬C1ʌ ¬C2ʌ C3, C1ʌ ¬C2ʌ ¬C3,

¬C1ʌ C2ʌ ¬C3, ¬C1ʌ ¬C2ʌ ¬C3}

Page 35: Bases de données réparties

Fragmentation Méthodologie de la fragmentation horizontale

Exemple (suite):

Evaluons chacun des termes :• C1ʌ C2ʌ C3 = Φ

• ¬C1ʌ C2ʌ C3 = Φ

• C1ʌ ¬C2ʌ C3 = A ʌ B ʌ D

• C1ʌ C2ʌ ¬C3 = A ʌ B ʌ C

• ¬C1ʌ ¬C2ʌ C3 = A ʌ ¬B ʌ D

• C1ʌ ¬C2ʌ ¬C3 = A ʌ B ʌ ¬C ʌ ¬D

• ¬C1ʌ C2ʌ ¬C3 = (¬A ∪ ¬B)ʌ C

• ¬C1ʌ ¬C2ʌ ¬C3 = (¬A ʌ ¬B ʌ ¬C) ∪ (¬A ʌ ¬C ʌ ¬D) ∪ (¬B ʌ ¬C ʌ ¬D)

Supposons, comme hypothèse supplémentaire (contrainte d’intégrité) ,

qu'il n'y a que deux équipes de cuisiniers (1 et 2) ce qui implique• ¬Cʌ ¬D = Φ, ¬C = D, ¬D = C

Abdelouahed Sabri 2011/2012

35

Page 36: Bases de données réparties

Fragmentation Méthodologie de la fragmentation horizontale

Exemple (suite):

On a alors les 5 conjonctions de conditions significatives :• CC1 = C1ʌ ¬C2ʌ C3 = Aʌ Bʌ D

F1 = SELECT *FROM cuisinier WHERE prenom='Jean' AND nom LIKE '%R%'

AND numeq ='2'

• CC2 = C1ʌ C2ʌ ¬C3 = Aʌ Bʌ CF2 = SELECT *FROM cuisinier WHERE prenom='Jean' AND nom LIKE '%R%'

AND numeq ='1’

• CC3 = ¬C1ʌ ¬C2ʌ C3 = Aʌ ¬Bʌ DF3 = SELECT *FROM cuisinier WHERE prenom='Jean' AND nom NOT LIKE

'%R%' AND numeq ='2'

• CC4 = ¬C1ʌ C2ʌ ¬C3 = (¬A ∪ ¬B)ʌ CF4 = SELECT *FROM cuisinier WHERE (prenom !='Jean' OR nom NOT LIKE

'%R%' ) AND numeq ='1'

• CC5 = ¬ C1 ʌ ¬ C2 ʌ ¬ C3 = ¬ A ʌ DF4 = SELECT *FROM cuisinier WHERE prenom !='Jean' AND numeq ='2'

Abdelouahed Sabri 2011/2012

36

Page 37: Bases de données réparties

Fragmentation Méthodologie de la fragmentation horizontale

Exemple (suite):Ces 5 conditions définissent les fragments horizontaux (exclusifs) :

Abdelouahed Sabri 2011/2012

37

Cuisinier

NUMERO NOM PRENOM NUMEQ12 DUPONT Jean 134 DUPONT Jeanne 217 DUBOIS Robert 122 DUBALAI Aline 126 DUGENOU Jean 211 DURAND Aline 238 DURACUIRE ROBERT 29 DURALUMIN Roberte 113 DURDUR Jean 220 DURALEX Jean 1

F1

NUMERO NOM PRENOM NUMEQ13 DURDUR Jean 2F2

NUMERO NOM PRENOM NUMEQ20 DURALEX Jean 1

F3

NUMERO NOM PRENOM NUMEQ26 DUGENOU Jean 2

F4

NUMERO NOM PRENOM NUMEQ12 DUPONT Jean 117 DUBOIS Robert 122 DUBALAI Aline 19 DURALUMIN Roberte 1F5

NUMERO NOM PRENOM NUMEQ34 DUPONT Jeanne 211 DURAND Aline 238 DURACUIRE ROBERT 2

Fragmentation

Page 38: Bases de données réparties

Fragmentation Méthodologie de la fragmentation horizontale

Exercice:

On considère la table Compte (NoClient, Agence, TypeCompte,

Somme) . Proposer un schéma de fragmentation horizontal en

tenant compte des requêtes suivantes

• R1 = ∏ NoClient, Agence (σTypeCompte = 'courant' and Somme > 100000(Compte))

• R2 = σ Agence = 'Lausanne’(Compte)

• R3 = ∏ NoClient, Somme(σ Agence = ' Genève’ and TypeCompte = 'courant' (Compte))

Abdelouahed Sabri 2011/2012

38

Compte

NoClient Agence TypeCompte Somme

174 723 Lausanne courant 123 345.89

177 498 Genève courant 34 564.00

201 639 Lausanne Courant 45 102.50

201 639 Lausanne Dépôt 325 100.00

203 446 Genève Courant 274 882.95

Page 39: Bases de données réparties

Fragmentation Méthodologie de la fragmentation verticale

Question: Comment décomposer une base de données en

fragments verticaux???

On se base les requêtes d’interrogation ou de mise à jour

prédéfinies les plus importantes et les plus fréquentes pour extraire

les attributs concernés

• Les fragments verticaux sont exclusifs, sauf en ce qui concerne le (ou

les) attribut(s) de jointure (clé, identifiant, OID) qui sont communs à

tous les fragments et qui seront utilisés pour que la décomposition soit

sans perte d'information (reconstruction).

Abdelouahed Sabri 2011/2012

42

Page 40: Bases de données réparties

Fragmentation Méthodologie de la fragmentation verticale

Pour le cas de la fragmentation verticale on se base sur les

conditions de projections.

Soient p1, p2, ..., pn les conditions de projection qui ont été

extraites des requêtes,

On forme l'ensemble des 2n intersections des expressions de

projection où chacune est soit l'expression initiale soit son

complément.

Abdelouahed Sabri 2011/2012

43

On ôte de cet ensemble les conjonctions de condition qui sont

toujours fausses, et on simplifie les autres.

NB: Dans le cas où la requête ne possède pas d’attributs de jointure il

faut les ajouter.

Page 41: Bases de données réparties

Fragmentation Méthodologie de la fragmentation verticale

Exemple :

On considère une table CUISINIER que l'on se propose de répartir

en fragments verticaux

Abdelouahed Sabri 2011/2012

44

On commencera par se baser sur les requêtes les plus fréquentes: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';

Cuisinier

NUMERO NOM PRENOM NUMEQ12 DUPONT Jean 134 DUPONT Jeanne 217 DUBOIS Robert 122 DUBALAI Aline 126 DUGENOU Jean 211 DURAND Aline 238 DURACUIRE ROBERT 29 DURALUMIN Roberte 113 DURDUR Jean 220 DURALEX Jean 1

Page 42: Bases de données réparties

Fragmentation Méthodologie de la fragmentation verticale

Exemple (suite):

Pour effectuer la fragmentation verticale on se base sur les projections

utilisées:

• P1 : (numero, numeq)

• P3 : (numero, nom)

• P2 n'est pas considérée comme une projection car tous les attributs sont

demandés dans la requête

A partir des projection Pi, on construit l'ensemble IP des intersections de

projections :

Abdelouahed Sabri 2011/2012

45

Où ¬Pj désigne le complément de Pj sur l'ensemble des attributs de la table

CUISINIER avec l'ajout obligatoire de la clé numero :

• ¬P1 = (numero, nom, prenom)

• ¬P3 = (numero, prenom, numeq)

IP = { P1 ∩ P3, ¬ P1 ∩ P3, P1 ∩ ¬P3, ¬P1 ∩ ¬P3}

Page 43: Bases de données réparties

Fragmentation Méthodologie de la fragmentation verticale

Exemple (suite):P1 ∩ P3 = (numero, numeq) ∩ (numero, nom) = (numero)

¬ P1 ∩ P3= (numero, nom, prenom) ∩ (numero, nom) = (numero, nom)

P1 ∩ ¬P3= (numero, numeq) ∩ (numero, prenom, numeq)= (numero, numeq)

¬P1 ∩ ¬P3 = (numero, nom, prenom) ∩ (numero, prenom, numeq)= (numero, prenom)

Fragments verticaux:

F1 = ∏numero(Cuisinier)

F2 = ∏numero, nom(Cuisinier)

F3 = ∏numero, numeq(Cuisinier)

F4 = ∏numero, prenom(Cuisinier)

Abdelouahed Sabri 2011/2012

46

Page 44: Bases de données réparties

Fragmentation Méthodologie de la fragmentation hybride

C’est la combinaison des deux fragmentations: horizontale et verticale.

Abdelouahed Sabri 2011/2012

47

F1

NUMERO NOM PRENOM NUMEQ13 DURDUR Jean 2F2

NUMERO NOM PRENOM NUMEQ20 DURALEX Jean 1

F3

NUMERO NOM PRENOM NUMEQ26 DUGENOU Jean 2

F4

NUMERO NOM PRENOM NUMEQ12 DUPONT Jean 117 DUBOIS Robert 122 DUBALAI Aline 19 DURALUMIN Roberte 1F5

NUMERO NOM PRENOM NUMEQ34 DUPONT Jeanne 211 DURAND Aline 238 DURACUIRE ROBERT 2

Fragments

horizontaux

Pour chaque fragment horizontal, on

regarde quelles sont les requêtes qui

les concernent (sélection):

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‘;

Page 45: Bases de données réparties

Fragmentation Méthodologie de la fragmentation hybride

Les intersections de projection de chacun des fragments

horizontaux, avec les fragments correspondants sont donc:

Abdelouahed Sabri 2011/2012

48

F1

NUMERO NOM PRENOM NUMEQ13 DURDUR Jean 2F2

NUMERO NOM PRENOM NUMEQ20 DURALEX Jean 1

F3

NUMERO NOM PRENOM NUMEQ26 DUGENOU Jean 2

F4

NUMERO NOM PRENOM NUMEQ12 DUPONT Jean 117 DUBOIS Robert 122 DUBALAI Aline 19 DURALUMIN Roberte 1F5

NUMERO NOM PRENOM NUMEQ34 DUPONT Jeanne 211 DURAND Aline 238 DURACUIRE ROBERT 2

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';

R1 R3

R1 R2

R3

R2

Aucune

Page 46: Bases de données réparties

Fragmentation Méthodologie de la fragmentation hybride

Le fragment 1 est concerné par les requêtes R1 et R3, donc par tous les éléments

de l'ensemble IP construits à partir de P1 et P3, soit

IP1 ={P1 ∩ P3, ¬ P1 ∩ P3, P1 ∩ ¬P3, ¬ P1 ∩ ¬P3}IP1 = {(numero), (numero, nom), (numero, numeq), (numero, prenom)}

Le fragment 2 est concerné par les requêtes R1 et R2, donc seulement par les

projections P1 et ¬ P1, soit

IP2= {P1 ∩ P1, ¬ P1 ∩ ¬ P1}IP2 = {(numero, numeq), (numero, nom, prenom)}

Le fragment 3 est concerné par la requête R3 donc seulement par les projections

P3 et ~P3, soit IP3={ P3 ∩ P3 , ¬P3 ∩ ¬P3}IP3 = {(numero, nom), (numero, prenom, numeq)}

Le fragment 4 est concerné par la requête R2, donc par tous les attributsIP4 = {(numero, nom, prenom, numeq)}

Le fragment 5 n'est concerné par aucune des requêtes, donc par tous les attributs :IP5 = {(numero, nom, prenom, numeq)}

Abdelouahed Sabri 2011/2012

49

Page 47: Bases de données réparties

Fragmentation Méthodologie de la fragmentation hybride

Les différents fragments:

Abdelouahed Sabri 2011/2012

50

F21

NUMERO NUMEQ20 1

F32

NUMERO PRENOM NUMEQ26 Jean 2

F41

NUMERO NOM PRENOM NUMEQ12 DUPONT Jean 117 DUBOIS Robert 122 DUBALAI Aline 19 DURALUMIN Roberte 1

F51

NUMERO NOM PRENOM NUMEQ34 DUPONT Jeanne 211 DURAND Aline 238 DURACUIRE ROBERT 2

F11

NUMERO13

F12

NUMERONOM13 DURDUR

F13

NUMERO NUMEQ13 2

F14

NUMERO PRENOM13 Jean

F22

NUMERO NOM PRENOM20 DURALEX Jean

F31

NUMERONOM26 DUGENOU

Cuisinier

NUMERO NOM PRENOM NUMEQ12 DUPONT Jean 134 DUPONT Jeanne 217 DUBOIS Robert 122 DUBALAI Aline 126 DUGENOU Jean 211 DURAND Aline 238 DURACUIRE ROBERT 29 DURALUMIN Roberte 113 DURDUR Jean 220 DURALEX Jean 1

Page 48: Bases de données réparties

Schéma d’allocation

Après la fragmentation, la question qu’ont doit se poser est:Ou seront affectés chacun des fragments???

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.

Pour chaque requête:On connaît l'ensemble des sites qui sont susceptible d'émettre cette

requête,

On possède de l'ensemble des fragments qui sont concernés par la

requête.

Placer les fragments sur les sites où ils sont le plus utilisés, pour

minimiser les transferts de données entre les sites.

Pour définir le schéma de localisation, on recherche:Priorité 1: D'où sont émises les requêtes de sélection

Priorité 2: D'où sont faites les mises à jourAbdelouahed Sabri 2011/2012

51

Page 49: Bases de données réparties

Schéma d’allocation

Exemple:

reprenons l'exemple précédent et supposons que deux sites

soient pris en considération A et B

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';

Abdelouahed Sabri 2011/2012

52

Page 50: Bases de données réparties

Schéma d’allocation

Exemple (suite):

Supposons que la requête R1 est émise de A ou B, que la requête R2 est

émise de A seulement et que la requête R3 est émise de B seulement.

Pour les trois requêtes, les fragments suivants sont concernés :

• R1 fragment13

• R2 fragment 21, fragment 22, fragment 41

• R3 fragment 12, fragment 31

• Pour les autres fragments, on peut dire:

– Le fragment 21 peut appartenir à la requête R1 ou R2

– Le fragment 11 peut appartenir a toutes les Requêtes

– Le fragment 51 n’appartient à aucune requête

– Le fragment 32 n’appartient à aucune requête

– Le fragment 14 n’appartient à aucune requête

On doit faire des choix pour ces fragments de façon à équilibrer les sitesAbdelouahed Sabri 2011/2012

53

Page 51: Bases de données réparties

Schéma d’allocation

Exemple (suite):

Supposons que la requête R1 est émise de A ou B, que la requête R2 est

émise de A seulement et que la requête R3 est émise de B seulement.

Pour les trois requêtes, les fragments suivants sont concernés :• R1 fragment13

• R2 fragments 21, 22 et 41

• R3 fragments 12 et 31

Pour les sites:

• site A: fragment 13, fragment 21, fragment 22, fragment 41, fragment 11,

fragment 51

• site B: fragment 12, fragment 31, fragment 14 , fragment 32

On peut combiner quelques fragments:

• site A: fragment 11, fragment 13, fragment 2, fragment 4, fragment 5

• site B: fragment 12, fragment 14 , fragment 3

Abdelouahed Sabri 2011/2012

54

• Le fragment 21 peut appartenir à la requête R1 ou R2

• Le fragment 11 peut appartenir a toutes les Requêtes

• Les fragments 51, 32 et 14 n’appartiennent à aucune requête

Page 52: Bases de données réparties

Les mises-à-jour

Les mises à jour consistent en trois opérations: insertion

(INSERT), suppression (DELETE) et modification

(UPDATE).

Insertion

Exemple: insérer 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 présent, il s'agit de CC3) ; ensuite il faut insérer le

tuple dans tous les fragments verticaux.

Abdelouahed Sabri 2011/2012

55

F32

NUMERO PRENOM NUMEQ26 Jean 221 Jean 2

F31

NUMERONOM26 DUGENOU21 DUBOUT

Page 53: Bases de données réparties

Les mises-à-jour

Suppression:

Exemple: suppression du cuisinier Jean DUBOUT :

DELETE FROM CUISINIER WHERE nom = 'DUBOUT' AND

prenom = 'Jean' ;

On utilise les conditions CC : CC3 et CC4 sont concernées.

On cherchera donc dans les fragments correspondants

Abdelouahed Sabri 2011/2012

56

F41

NUMERO NOM PRENOM NUMEQ12 DUPONT Jean 117 DUBOIS Robert 122 DUBALAI Aline 19 DURALUMIN Roberte 1

F32

NUMERO PRENOM NUMEQ26 Jean 221 Jean 2

F31

NUMERONOM26 DUGENOU21 DUBOUT

F41

NUMERO NOM PRENOM NUMEQ12 DUPONT Jean 117 DUBOIS Robert 122 DUBALAI Aline 19 DURALUMIN Roberte 1

F32

NUMERO PRENOM NUMEQ26 Jean 2

F31

NUMERONOM26 DUGENOU

Page 54: Bases de données réparties

Les mises-à-jour

Suppression (suite):

Exemple: supprimer le cuisinier de numéro 21

DELETE FROM CUISINIER WHERE numero = 21 ;

Aucune CC n’est concernée

Il faut chercher dans tous les fragments

Abdelouahed Sabri 2011/2012

57

Page 55: Bases de données réparties

Les mises-à-jour

Modification:

Exemple : modification de l'affectation du cuisinier DUBOUT

UPDATE CUISINIER SET numeq = 1 WHERE nom = 'DUBOUT' ;

On utilise les conditions CC : CC3, CC4, CC5 sont concernées.

On modifie puis on vérifie que les CC son toujours vérifiées:

• Puisque numeq = 1, il faut l’enlever du fragment F3 et F5

• On déplace alors le tuple dans le fragment 4.

Abdelouahed Sabri 2011/2012

58

Page 56: Bases de données réparties

Répartition avancée

Dans le cas où la méthode classique de fragmentation-

allocation ne s'avère pas satisfaisante, on peut faire appel à

des techniques plus puissantes (mais aussi plus complexes

à mettre en œuvre):

L'allocation avec duplication de fragments,

L'allocation dynamique des fragments,

La fragmentation dynamique.

Abdelouahed Sabri 2011/2012

60

Page 57: Bases de données réparties

Répartition avancéeAllocation avec duplication

Certains fragments peuvent être dupliquées sur plusieurs sites

(éventuellement sur tous les sites)

Avantages: Elle permet d’améliorer les performances en terme de temps d'exécution

des requêtes (en évitant certains transferts de données).

Elle permet une meilleure disponibilité des informations (connues de

plusieurs sites),

Elle permet une meilleure fiabilité contre les pannes.

Inconvénient: les mises à jour doivent être effectuées sur toutes les copies d'une même

donnée.

En conséquence:moins un fragment est sujet à des modifications et plus il est prédisposé à

la duplication.Abdelouahed Sabri 2011/2012

61

Page 58: Bases de données réparties

Répartition avancéeAllocation avec duplication

Deux types de duplication: synchrone et asynchrone.

Duplication synchrone:

• La sérialisabilité est assurée sur l’ensemble des nœuds

• Une transaction est confirmée seulement lorsque tous les sites ont été

mis-à-jour

Duplication asynchrone:

• Les mises-à-jour sont d’abord faites sur une copie primaire

• Les sites de réplication sont mis-à-jour en différé, à partir de la

copie primaire, après la confirmation de la transaction

• Ex. d’implémentation: vues matérialisées (eq. SNAPSHOTs)

Abdelouahed Sabri 2011/2012

62

Page 59: Bases de données réparties

Répartition avancéeAllocation dynamique

Ici, l'allocation d'un fragment peut changer en cours

d'utilisation de la BDR:

Le schéma d'allocation et les schémas locaux doivent être tenus à

jour.

Peut être utilisée comme une alternative à la duplication elle se

révèle plus efficace lorsque la base de données est disposée à de

nombreuses mises à jour.

Abdelouahed Sabri 2011/2012

63

Page 60: Bases de données réparties

Répartition avancéeFragmentation dynamique

Dans le cas où le site d'allocation peut changer

dynamiquement, il est possible que deux fragments

complémentaires (verticalement ou horizontalement) se

retrouvent sur le même site. Il est alors normal de les

fusionner.

A l'inverse, si une partie d'un fragment est appelée sur un

autre site, il peut être intéressant de décomposer ce

fragment et de ne faire migrer que la partie concernée.

Ces modifications du schéma de fragmentation se reflètent

sur le schéma d'allocation et sur les schémas locaux.

Abdelouahed Sabri 2011/2012

64