Types de tableaux

Les bases de données Db2® stockent les données dans des tables. Outre les tables utilisées pour stocker les données persistantes, il existe également des tables qui sont utilisées pour présenter les résultats, les tables récapitulatives et les tables temporaires ; les tables de mise en cluster multidimensionnelles offrent des avantages spécifiques dans un environnement d'entrepôt.

Tables de base
Ces types de table contiennent des données persistantes. Il existe différents types de tables de base, notamment:
Tables standard
Les tables ordinaires avec index sont le choix de table "à usage général".
Tables MDC
Ces types de table sont implémentés en tant que tables qui sont physiquement regroupées sur plusieurs clés, ou dimensions, en même temps. Les tables MDC sont utilisées dans les environnements d'entreposage de données et de base de données de grande taille. Les index de regroupement sur des tables régulières prennent en charge le regroupement unidimensionnel des données. Les tables MDC offrent les avantages de la mise en cluster de données sur plusieurs dimensions. Les tables MDC fournissent une mise en cluster garantie dans les dimensions composites. En revanche, bien que vous puissiez avoir un index en cluster avec des tables standard, la mise en cluster dans ce cas est tentée par le gestionnaire de base de données, mais elle n'est pas garantie et se dégrade généralement au fil du temps. Les tables MDC peuvent coexister avec des tables partitionnées et peuvent elles-mêmes être des tables partitionnées.
Les tables de classification multidimensionnelle ne sont pas prises en charge dans un environnement Db2 pureScale® .
Tables ITC (Insert time clustering)
Ces types de table sont conceptuellement et physiquement similaires aux tables MDC, mais au lieu d'être regroupées par une ou plusieurs dimensions spécifiées par l'utilisateur, les lignes sont regroupées par cluster au moment de leur insertion dans la table. Les tables ITC peuvent être des tables partitionnées.
Les tables ITC ne sont pas prises en charge dans un environnement Db2 pureScale .
Tables RCT
Ces types de table sont implémentés en tant que clusters séquentiels de données offrant un accès rapide et direct. Chaque enregistrement de la table possède un ID d'enregistrement (RID) prédéterminé qui est un identificateur interne utilisé pour localiser un enregistrement dans une table. Les tables RCT sont utilisées lorsque les données sont regroupées dans une ou plusieurs colonnes de la table. Les valeurs les plus grandes et les plus petites des colonnes définissent la plage des valeurs possibles. Vous utilisez ces colonnes pour accéder aux enregistrements de la table ; il s'agit de la méthode la plus optimale pour utiliser l'aspect RID (Record Identifier) prédéterminé des tables RCT.
Les tables groupées par plage ne sont pas prises en charge dans un environnement Db2 pureScale .
Tables partitionnées
Ces types de table utilisent un schéma d'organisation de données dans lequel les données de table sont divisées en plusieurs objets de stockage, appelés partitions de données ou plages de données, en fonction des valeurs d'une ou de plusieurs colonnes de clé de partitionnement de table de la table. Les partitions de données peuvent être ajoutées à, connectées à et déconnectées d'une table partitionnée, et vous pouvez stocker plusieurs plages de partitions de données d'une table dans un espace table. Les tables partitionnées peuvent contenir de grandes quantités de données et simplifier l'enregistrement et le déploiement des données de table.
Tables temporelles
Ces types de table sont utilisés pour associer des informations d'état basées sur le temps à vos données. Les données des tables qui n'utilisent pas le support temporel représentent le présent, tandis que les données des tables temporelles sont valides pour une période définie par le système de base de données, les applications client, ou les deux. Par exemple, une base de données peut stocker l'historique d'une table (les lignes supprimées ou les valeurs d'origine des lignes mises à jour) ce qui vous permet de demander l'état passé de vos données. Vous pouvez également affecter une plage de dates à une ligne pour indiquer le moment où elle est jugée valide par l'application ou les règles métier.
Tables temporaires
Ces types de table sont utilisés comme tables de travail temporaires pour diverses opérations de base de données. Les tables temporaires déclarées (DGTT) n'apparaissent pas dans le catalogue système, ce qui les rend inutilisables et ne peuvent pas être partagées avec d'autres applications. Lorsque l'application utilisant cette table s'arrête ou se déconnecte de la base de données, toutes les données de la table sont supprimées et la table est supprimée. En revanche, les tables temporaires créées (CGTT) apparaissent dans le catalogue système et n'ont pas besoin d'être définies dans chaque session où elles sont utilisées. Par conséquent, ils sont persistants et peuvent être partagés avec d'autres applications sur différentes connexions.
Aucun type de table temporaire n'est pris en charge
  • Références définies par l'utilisateur ou colonnes de type structuré définies par l'utilisateur
  • Colonnes LONG VARCHAR
En outre, les colonnes XML ne peuvent pas être utilisées dans les tables temporaires créées.
Tables de requêtes matérialisées (MQT)
Les tables de requêtes matérialisées sont définies par une requête qui détermine également les données de la table de requêtes matérialisée. Utilisez des tables de requêtes matérialisées pour améliorer les performances des requêtes. En fonction des paramètres de configuration de base de données pour l'optimisation de requête, le gestionnaire de base de données détermine qu'une partie d'une requête peut être résolue à l'aide d'une table de requêtes matérialisée. Les tables de requêtes matérialisées sont classées en fonction de la façon dont leurs données sont gérées.
Tables ombrées
Une table fantôme est une copie de table de requêtes matérialisée organisée par colonnes d'une table organisée par lignes. Il peut contenir toutes les colonnes ou un sous-ensemble de colonnes de la table organisée en lignes source. Les tables fantômes sont gérées par la réplication.

Vous pouvez créer tous les types de table précédents à l'aide de l'instruction CREATE TABLE.

En fonction de l'aspect de vos données, vous pouvez trouver un type de table qui offre des fonctions spécifiques permettant d'optimiser les performances de stockage et de requête. Par exemple, si vous avez des enregistrements de données qui sont regroupés de manière lâche (et qui n'augmentent pas de façon monotone), envisagez d'utiliser une table et des index standard. Si des enregistrements de données ont des valeurs en double (mais pas uniques) dans la clé, n'utilisez pas de table groupée par plages. De plus, si vous ne pouvez pas vous permettre de préallouer une quantité fixe de stockage sur disque pour les tables de cluster de plages de valeurs que vous souhaitez, n'utilisez pas ce type de table. Si vous disposez de données susceptibles d'être regroupées en plusieurs dimensions, telles qu'une table de suivi des ventes au détail par région géographique, division et fournisseur, une table de regroupement multidimensionnel peut convenir à vos besoins.

Outre les différents types de table décrits précédemment, vous disposez également d'options pour des caractéristiques telles que le partitionnement, qui peuvent améliorer les performances pour des tâches telles que la mise en continu des données de table. Les tables partitionnées peuvent également contenir beaucoup plus d'informations qu'une table normale non partitionnée. Vous pouvez également utiliser des fonctions telles que la compression, qui peuvent vous aider à réduire considérablement vos coûts de stockage de données.