Partition (base de données)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Partition.

Dans une base de données, une partition est une division logique d'une table stockée en plusieurs parties indépendantes. Le partitionnement de tables est généralement effectué pour améliorer la gestion, la performance ou la disponibilité. Chaque partition se retrouve sur des serveurs ou des disques différents. Cela permet également d'obtenir une capacité de base de données supérieure à la taille maximum des disques durs ou d'effectuer des requêtes en parallèle sur plusieurs partitions.

Critères de partitionnement[modifier | modifier le code]

Les systèmes de gestion de base de données récents proposent le fractionnement d'une table selon plusieurs critères. Ils prennent une clef de partitionnement et partitionnent suivant le critère.

Les critères principaux :

Partitionnement en gammes (range partitionning) 
il sélectionne une partition en déterminant si la clef de partition est incluse dans un certain éventail de données. Un exemple serait une partition pour toutes les lignes où la colonne code postal a une valeur entre 75000 et 75999.
Partitionnement par liste 
une partition contient une liste de valeurs. Si la clef de partitionnement dispose de l'une de ces valeurs, la partition est choisie. Par exemple, toutes les lignes où la colonne Pays contient Islande, Norvège, Suède, Finlande ou Danemark peuvent former une partition des pays nordiques.
Partitionnement par hashage 
la valeur de la fonction de hashage détermine l'appartenance à une partition. En supposant qu'il existe quatre partitions, la fonction de hashage retournera une valeur entre 0 et 3.

Le partitionnement composite permet de combiner plusieurs de ces schémas de partitionnement, par exemple en appliquant d'abord un partitionnement en gammes puis un partitionnement en hashage. Un hashage consistent (où rajouter des données ne change pas les précédents résultats de la fonction de hashage) peut être considéré comme un partitionnement composite de hash et de liste où les hash réduisent l'espace des clefs tel qu'elles puissent être listées.

Partitionnement horizontal[modifier | modifier le code]

Article détaillé : Base de données orientée ligne.

Le partitionnement horizontal d'une table divise les données en blocs de lignes, généralement en fonction de la clef primaire.

Partitionnement vertical[modifier | modifier le code]

Article détaillé : Base de données orientée colonne.

Le partitionnement vertical d'une table divise les données en blocs de colonnes.

Partitionnement sur Oracle[modifier | modifier le code]

Article détaillé : Partitionnement (Oracle).

Le partitionnement de la base de données Oracle est un module de division des données d'Oracle, payant et fréquemment utilisé sur des tables de volumétrie importante.

Le partitionnement permet de découper une table ou un index sur des critères logiques. La table se comporte alors comme plusieurs tables de dimensions plus petites. Les avantages principaux du partitionnement sont :

  • de pouvoir définir des critères de stockage différents pour chacune des partitions (tablespace, initial...)
  • le découpage logique de la table permet un accès plus rapide aux informations (moins de lectures disques à effectuer en particulier)

Liens externes[modifier | modifier le code]