Complément : Groupement de tables

DéfinitionGroupement 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éfinitionClé du groupement

Ensemble d'attributs précisant la jointure que le groupement doit optimiser.

SyntaxeSyntaxe 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.

1
CREATE CLUSTER nom_cluster (NomColonneClé1 type, NomColonneClé2 type, ...);
2
3
CREATE TABLE nom_table (...)
4
 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.

RemarqueGroupement et dénormalisation

Le groupement est une alternative à la dénormalisation, qui permet d'optimiser les jointures sans créer de redondance.