Répartition des données
1
Plan
• Stratégies de répartition
• Les types de fragmentation
• Données et fédération
2
Principes
• 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.
• La fragmentation peut être coûteuse s’il existe des applications qui
possèdent des besoins opposés.
• Les règles de fragmentation
• Les règles à appliquer sont :
• 1. La complétude
– pour toute donnée d’une relation R, il existe un fragment Ri de la relation R
qui possède cette donnée.
• 2. La reconstruction
– pour toute relation décomposée en un ensemble de fragments Ri, il existe
une opération de reconstruction.
– Pour les fragmentations horizontales, l’opération de reconstruction est l’une
union. Pour les fragmentations verticales c’est la jointure.
• 3. La Disjonction 3
Conception d’une base de données
répartie
• La définition du schéma de répartition est une
partie délicate de la phase de conception
d'une BDR
– il n'existe pas de méthode pour trouver la solution
optimale.
– DBA doit prendre des décisions en fonction de
critères techniques et organisationnels
– minimiser le nombre et le temps de transferts
entre sites, le volume de données transférées, les
temps moyens de traitement des requêtes, le
nombre de copies de fragments, etc...
4
Conception de BD répartie
• On ne met en place une BD répartie qu’en cas
de réel besoin
– Démarche de conception délicate
– Gestion complexe
– L’évolution du SI peut invalider la solution retenue…
• Des raisons valables :
– Volumes de données, sites distants, etc.
– Fusions de SI
5
• Conception descendante (top down design)
– On définit un schéma conceptuel global de la base
de données répartie,
– puis on distribue sur les différents sites en des
schémas conceptuels locaux.
• La répartition se fait donc en deux étapes:
– en première étape la fragmentation,
– En deuxième étape l’allocation de ces fragments
aux sites.
• L’approche top down est intéressante quand
on part du néant.
6
• En conception descendante
– Adéquation géographique
– Recherche de performance (I/O, traitements)
7
Migration vers une BD répartie
8
Décomposition
Transaction Distribuée
9
Fragmentation des données
• FRAGMENTATION: Découpage d’une relation R
en fragments R1; R2;… ; Rn
10
Fragmentation Horizontale
– Les tuples sont répartis
– Peut être définie par une sélection
– Fragments disjoints ou non (Duplication partielle)
– Reconstruction par UNION
11
12
Fragmentation Verticale
– Les tuples sont découpés et fragmentés
– Nécessite colonne commune (clé ou unique)
dupliquée
13
Fragmentation verticale
• On projette la table sur des attributs différents
suivant le site.
• Comme frag. horizontale, peut correspondre à
une consolidation ou une recherche de perf.
• La reconstruction des tuples doit être possible
(et validée)
• Forme la plus simple : Décomposition de R
– Identifiant (clef) dans chaque fragment
• Reconstruction par JOINTURE
14
15
Synthèse de la fragmentation
16
Intérêts de la fragmentation
• L’usage : dans le contexte de la répartition des données, il paraît approprié de
travailler sur des sous-ensembles de relations, constituant l’unité de répartition
• L’efficacité : Un stockage des données à proximité du lieu où elles sont le plus
utilisées est essentiel et inversement, les données non nécessaires aux
applications locales ne sont pas emmagasinées inutilement.
• Sous-requêtes en même temps: Lorsque le fragment constitue l’unité de
répartition, une transaction peut être découpée en plusieurs sous-requêtes qui
opèrent sur des fragments. Ceci a pour effet d’accroître le degré de simultanéité,
c'est-à-dire le parallélisme, du point de vue du système dans sa totalité, ce qui
permet aux transactions qui le peuvent, de s’exécuter en parallèle et en toute
sécurité.
• La sécurité: Les données qui ne sont pas indispensables aux applications locales
ne sont pas présentes inutilement à des endroits à la portée des utilisateurs non
17
autorisés
Réseau
18
Mise en pratique de la fragmentation
• Dans les SGBD commerciaux actuels:
– Pas de fragmentation explicite au niveau du
schéma
– Assemblage = création de vue (ou de snapshot)
– Distribution des données :
• Une solution = triggers
19
Mise en oeuvre sous SQL (Assemblage)
• Frag. Horizontale
• CREATE VIEW V1
AS SELECT Table1.cle, Table1.attr1
FROM Table1@site1
UNION
SELECT Table2.cle, Table2.attr1
FROM Table2@site2
20
Mise en œuvre sous SQL (Assemblage)
• Frag. Verticale
• CREATE VIEW V1
AS SELECT Table1.cle, Table1.attr1, Table2.attr2
FROM Table1@site1, Table2@site2
WHERE Table1.cle=Table2.cle
• Remarque :
– l’attribut de fragmentation n’est pas forcément la
clé primaire…
– En frag. verticale, il faut au moins que ce soit une
clé
21
Gestion de l’hétérogénéité
• Hétérogénéité « sans problème »
– SE et réseau : géré par SGBD (si « bon » SGBD)
• Hétérogénéité plus délicate
– SGBD : pb des dialectes de SQL
– passerelles entre SGBD
• Ex : ODBC (au départ sous Windows mais
porté sous d’autres OS)
• Ex : passerelles propriétaires SGBD à SGBD
22
Communication Inter-sites
• Chaque SGBD dispose d’un démon permettant
les connexions distantes, sur un mode client –
serveur Listener (médiateur)
• Chaque SGBD dispose d’une table des BDs
accessibles
– Nom >> doit être unique !!!
– Adresse
– Protocole
• Cette approche permet aussi un équilibrage de
charge transparent…
23
Mise en oeuvre en SQL
(Insertion avec les triggers Oracle)
• CREATE TRIGGER Tr1
INSTEAD OF INSERT on Table
BEGIN
IF :New.cle < 1000 THEN
INSERT INTO Table1@site1(cle,attr1)
VALUES(:New.cle,:New.attr);
ELSE
INSERT INTO Table2@site2(cle,attr2)
VALUES (:New.cle,:New.attr);
END IF;
END; 24
Fédération
– Distribution pré-existante
– Nécessite consolidation, uniformisation («
réconciliation sémantique»)
– Identifier les données semblables
– Accorder leurs types, gérer leur cohérence…
– Interfacer ou adapter les SGBD…
– Ex : fusion, mise en place DW
25
BD fédérée
• Généralement, l’architecture proposée est constituée
de cinq couches ou cinq niveaux d’abstraction :
26
• un schéma local (Local schema) est le schéma
d’une base de données constituant la fédération
;
• un schéma du composant (Component schema)
est dérivé du schéma local par transformation et
il constitue une couche de médiation ;
• un schéma d’export (Export schema) constitue
une sous-partie du schéma du composant. Il
filtre les données accessibles par la fédération.
• Il définit les droits d’accès aux données ;
• le schéma intégré (Integrated schema) compose
un ensemble de schémas d’export. Il définit
comment sont traduites les requêtes effectuées
à son niveau en une multitude de requêtes sur
chaque base de données de la fédération ;
• un schéma externe (External schema) est une
vue du schéma intégré pour un usage particulier
(type d’application, type d’utilisateur…).
27