II.4.3. Conception de la
fragmentation
II.4.3.1. Fragmentation
La fragmentation est la tâche de diviser une table en
ensemble de plus petites tables. Cette division doit se faire sans perte
d'informations. Les sous-ensembles de la table s'appellent les fragments.La
fragmentation peut être de trois types :horizontal,
vertical, et hybride (combinaison d'horizontal et de
vertical).
II.4.3.1.1. Avantages de la fragmentation
· Puisque des données sont stockées
près du site de l'utilisation, l'efficacité du système de
base de données est augmentée ;
· Les techniques locales d'optimisation de requêtes
sont suffisantes pour la plupart des requêtes puisque les données
sont localement disponibles ;
· Puisque les données non pertinentes ne sont pas
disponibles aux sites, la sécurité et l'intimité du
système de base de données peuvent être maintenues.
II.4.3.1.2. Limites de la fragmentation
· Lorsque l'on a besoindes données de
différents fragments, les vitesses d'accès peuvent être
très hautes ;
· En cas de fragmentations récursifs, le travail
de la reconstruction aura besoin de techniques chères ;
· Le manque de copies de secours des données dans
différents emplacements peut rendre la base de données inefficace
en cas d'échec d'un emplacement.
II.4.3.1.3. Types de fragmentation
a) Fragmentation Horizontale (Répartition
des occurrences)
Elle consiste à partitionner ou à
découper une table en sous tables par l'utilisation des prédicats
permettant de sélectionner les lignes appartenant à chaque
fragment selonun ou plusieurscritères de sélection suivant les
valeurs d'un ou plusieurs champs.La fragmentation se fait par sélection,
et la reconstitution de la table (relation) initiale se fait grâce
à l'union de sous tables.
Ce type de fragmentation est adapté à la
régionalisation ou départementalisation dans une entreprise. Par
exemple, considérons qu'une base de données du casier judiciaire
contient tous les enregistrements des individus condamnés dans une table
individu ayant le schéma suivant.
Id
|
Nom
|
Prenom
|
Genre
|
Mention
|
Province
|
Crime
|
1
|
TSHIAMUA
|
Juslin
|
M
|
Avec antécédent judiciaire
|
Kinshasa
|
Viol
|
2
|
LUKETA
|
Christian
|
M
|
Avec antécédent judiciaire
|
Kinshasa
|
Vol
|
3
|
MULANGA
|
Goshen
|
F
|
Avec antécédent judiciaire
|
Congo central
|
xxx
|
4
|
LIKOTELO
|
Camile
|
M
|
Avec antécédent judiciaire
|
Congo central
|
yyy
|
5
|
NTUMBA
|
Aaron
|
M
|
Avec antécédent judiciaire
|
Kasaï central
|
zzz
|
Tableau 1: Illustration de la fragmentation
Au cas où le détail de tous les individus de la
province de Congo central doit être envoyé dans la province du
Kasaï central, alors le concepteur réduira horizontalement la base
de données comme suit :
CREATE TABLE IND_CONGO_CENTRALAS
SELECT * FROM INDIVIDU WHERE PROVINCE
IN(«CONGO CENTRAL»);
|
Résultat:
Id
|
Nom
|
Prenom
|
Genre
|
Mention
|
Province
|
Crime
|
3
|
MULANGA
|
Goshen
|
F
|
Avec antécédent judiciaire
|
Congo central
|
xxx
|
4
|
LIKOTELO
|
Camile
|
M
|
Avec antécédent judiciaire
|
Congo central
|
yyy
|
Tableau 2: Exemple d'une fragmentation horizontale
b) Fragmentation Verticale (Répartition des
attributs)
Elle se fait non au niveau des données mais de la
structure même de la base où certains champs sont envoyés
dans un fragment et d'autres ailleurs.
La fragmentation verticale consiste à partitionner une
relation en groupes d'attributs et une clé doit apparaitre dans tous les
groupes. Toutes les valeurs des occurrences pour un même attribut se
trouvent dans le même fragment.
Une fragmentation verticale est utile pour distribuer les
parties des données sur le site où chacune de ces parties est
utilisée.Elle se fait par projection et la reconstruction de la relation
initiale se fait grâce à des jointures en vue d'éviter les
pertes d'informations.
Par exemple, dans le schéma individu, on veut juste
savoir le crime de chaque individu, le concepteur réduira la base comme
suit :
CREATE TABLEIND_MENTION AS
SELECT ID, CONCAT(NOM,' ',PRENOM)
AS NOMS, CRIME FROM INDIVIDU;
|
Résultat :
Id
|
Noms
|
Crime
|
1
|
Juslin TSHIAMUA
|
Viol
|
2
|
Christian LUKETA
|
Vol
|
3
|
Goshen MULANGA
|
Xxx
|
4
|
Camile LIKOTELO
|
Yyy
|
5
|
Aaron NTUMBA
|
Zzz
|
Tableau 3: Exemple d'une fragmentation verticale
c) Fragmentation hybride (Répartition des
valeurs)
C'est la combinaison des deux techniques de fragmentation
précédentes, horizontale et verticale. Les occurrences et les
attributs peuvent donc être répartis dans des partitions
différentes.C'est la technique de fragmentation la plus flexible
puisqu'elle produit des fragments avec l'information étrangère
minimale.Cependant, la reconstruction de la table originale est souvent une
tâche ardue.
La fragmentation hybride peut être faite de deux
manières alternatives :
· Au début, produire d'un ensemble de fragments
horizontaux ; produire alors des fragments verticaux d'un ou plusieurs des
fragments horizontaux.
· Au début, produire d'un ensemble de fragments
verticaux ;produire alors des fragments horizontaux d'un ou plusieurs des
fragments verticaux.
L'opération de partitionnement est une combinaison de
projections et de sélections et celle de recomposition est une
combinaison de jointures et d'unions.
CREATE
TABLEIND_MENTIONASSELECT ID,
CONCAT(NOM,' ',PRENOM) AS NOMS, CRIME
FROM INDIVIDU WHERE PROVINCE
IN(`KINSHASA');
|
Résultat :
Id
|
Noms
|
Crime
|
1
|
Juslin TSHIAMUA
|
Viol
|
2
|
Christian LUKETA
|
Vol
|
Tableau 4: Exemple de fragmentation hybride
|