Complément : Groupement de tables
Définition : Groupement de table
Un groupement ou cluster est une structure physique utilisée pour stocker des tables sur lesquelles doivent être effectuées de nombreuses requêtes comprenant des opérations de jointure.
Dans un groupement les enregistrements de plusieurs tables ayant une même valeur de champs servant à une jointure (clé du groupement) sont stockées dans un même bloc physique de la mémoire permanente.
Cette technique optimise donc les opérations de jointure, en permettant de remonter les tuples joints par un seul accès disque.
Définition : Clé du groupement
Ensemble d'attributs précisant la jointure que le groupement doit optimiser.
Syntaxe : Syntaxe sous Oracle
Il faut d'abord définir un groupement, ainsi que les colonnes (avec leur domaine), qui constituent sa clé. On peut ainsi ensuite, lors de la création d'une table préciser que certaines de ses colonnes appartiennent au groupement.
CREATE CLUSTER nom_cluster (NomColonneClé1 type, NomColonneClé2 type, ...);
CREATE TABLE nom_table (...)
CLUSTER nom_cluster (Colonne1, Colonne2, ...);
Remarque :
Le clustering diminue les performances des requêtes portant sur chaque table prise de façon isolée, puisque les enregistrements de chaque table sont stockés de façon éclatée.
Remarque : Groupement et dénormalisation
Le groupement est une alternative à la dénormalisation, qui permet d'optimiser les jointures sans créer de redondance.