Typen von Tabellen

Db2® -Datenbanken speichern Daten in Tabellen. Neben Tabellen, die zum Speichern persistenter Daten verwendet werden, gibt es auch Tabellen, die zur Darstellung von Ergebnissen dienen, sowie Übersichtstabellen und temporäre Tabellen. Ferner bieten Tabellen mit mehrdimensionalem Clustering (MDC) besondere Vorteile in einer Data-Warehouse-Umgebung.

Basistabellen
Diese Tabellentypen enthalten persistente Daten. Es gibt verschiedene Typen von Basistabellen:
Reguläre Tabellen
Reguläre Tabellen mit Indizes sind die "allgemein einsetzbaren" Tabellen.
MDC-Tabellen (MDC - Multidimensional Clustering)
Diese Tabellentypen werden als Tabellen implementiert, die physisch auf der Grundlage mehrerer Schlüssel bzw. Dimensionen gleichzeitig in Clustern angeordnet werden. MDC-Tabellen werden beim Data-Warehousing und in umfangreichen Datenbankumgebungen verwendet. Clusterindizes in regulären Tabellen unterstützen das eindimensionale Clustering von Daten. MDC-Tabellen bieten die Vorteile des Datenclusterings in mehr als einer Dimension. MDC-Tabellen stellen ein garantiertes Clustering innerhalb der zusammengesetzten Dimensionen sicher. Demgegenüber ist es zwar möglich, einen Clusterindex für reguläre Tabellen zu haben, und der Datenbankmanager versucht in diesem Fall, das Clustering aufrechtzuerhalten, jedoch lässt sich das Clustering nicht garantieren und nicht in der Regel im Lauf der Zeit ab. MDC-Tabellen können mit partitionierten Tabellen koexistieren und können selbst partitionierte Tabellen sein.
Tabellen mit mehrdimensionalem Clustering werden in einer Db2 pureScale® -Umgebung nicht unterstützt.
ITC-Tabellen (ITC - Insert Time Clustering)
Diese Tabellen ähneln vom Konzept her sowie physisch den MDC-Tabellen. Zeilen werden jedoch nicht nach einer oder mehreren benutzerdefinierten Dimensionen, sondern nach dem Zeitpunkt in Gruppen zusammengefasst, an dem sie in die Tabelle eingefügt wurden. Bei ITC-Tabellen kann es sich um partitionierte Tabellen handeln.
ITC-Tabellen werden in einer Db2 pureScale -Umgebung nicht unterstützt.
Bereichsclustertabellen
Diese Tabellentypen werden als sequenzielle Datencluster implementiert und bieten schnellen, direkten Zugriff. Jeder Datensatz in der Tabelle verfügt über eine vorbestimmte Satz-ID, die eine interne Kennung zur Lokalisierung eines Datensatzes in einer Tabelle darstellt. RCT-Tabellen werden verwendet, wenn die Daten eine dichte Clusterbildung über eine oder mehrere Tabellenspalten aufweisen. Die höchsten und niedrigsten Werte in den Spalten definieren den Bereich der möglichen Werte. Sie verwenden diese Spalten für den Zugriff auf Datensätze in der Tabelle. Dies ist die optimale Methode zur Nutzung des Merkmals der vorbestimmten Satz-IDs (RIDs) von RCT-Tabellen.
Bereichsclustertabellen werden in einer Db2 pureScale -Umgebung nicht unterstützt.
Partitionierte Tabellen
Diese Tabellentypen arbeiten mit einem Datenorganisationsschema, bei dem Tabellendaten auf mehrere Speicherobjekte, die als Datenpartitionen oder Datenbereiche (RANGE) bezeichnet werden, entsprechend den Werten einer oder mehrerer Spalten der Tabelle, die den Tabellenpartitionierungsschlüssel bilden, verteilt werden. Datenpartitionen können einer partitionierten Tabelle hinzugefügt oder zugeordnet werden und die Zuordnung kann auch wieder aufgehoben werden. Ferner können mehrere Datenpartitionsbereiche aus einer Tabelle in einem Tabellenbereich gespeichert werden. Partitionierte Tabellen können große Datenmengen enthalten und das Einlagern (Rollin) bzw. Auslagern (Rollout) von Tabellendaten vereinfachen.
Temporale Tabellen
Diese Tabellentypen werden zum Zuordnen von zeitbasierten Statusinformationen zu Ihren Daten verwendet. Die Daten in Tabellen ohne temporale Unterstützung sind aktuell (d. h. zum gegenwärtigen Zeitpunkt gültig). Im Unterschied dazu können Daten in temporalen Tabellen für einen Zeitraum gültig sein, der vom Datenbanksystem und/oder von Benutzeranwendungen definiert wird. Beispielsweise kann in einer Datenbank das Verlaufsprotokoll für eine Tabelle gespeichert sein (d. h. die Inhalte gelöschter Zeilen oder die ursprünglichen Werte für Zeilen, die aktualisiert wurden), damit Sie frühere Stände Ihrer Daten abrufen können. Außerdem können Sie einer Datenzeile einen Datumsbereich zuordnen, um festzulegen, wann die Daten von Ihren Anwendungen oder Geschäftsregeln als gültig angesehen werden.
Temporäre Tabellen
Diese Tabellentypen werden als temporäre Arbeitstabellen für eine ganze Reihe von Datenbankoperationen verwendet. Deklarierte temporäre Tabellen (DGTTs) werden im Systemkatalog nicht aufgeführt. Dadurch sind sie nicht persistent und können von anderen Anwendungen nicht verwendet bzw. nicht mit anderen Anwendungen gemeinsam genutzt werden. Wenn die Anwendung, die diese Tabelle verwendet, beendet wird oder die Verbindung zur Datenbank trennt, werden alle Daten in dieser Tabelle und die Tabelle selbst gelöscht. Im Gegensatz dazu werden erstellte temporäre Tabellen (CGTTs) im Systemkatalog aufgeführt und müssen nicht in jeder Sitzung, in der sie verwendet werden, definiert werden. Infolgedessen sind sie persistent und können mit anderen Anwendungen über verschiedene Verbindungen hinweg gemeinsam genutzt werden.
Keiner der Typen von temporären Tabellen unterstützt folgende Elemente:
  • Spalten mit einem benutzerdefinierten Verweistyp oder benutzerdefinierten strukturierten Typ
  • LONG VARCHAR-Spalten
Darüber hinaus können XML-Spalten nicht in erstellten temporären Tabellen verwendet werden.
Materialized Query Tables (MQTs)
MQTs werden von einer Abfrage definiert, die auch die Daten für die MQT festlegt. Verwenden Sie MTQs, um die Leistungsfähigkeit von Abfragen zu erhöhen. Basierend auf den Datenbankkonfigurationseinstellungen für die Abfrageoptimierung stellt der Datenbankmanager fest, dass ein Teil der Abfrage durch eine MQT aufgelöst werden kann. MQTs werden danach klassifiziert, wie ihre Daten verwaltet werden.
Spiegeltabellen
Eine Spiegeltabelle ist eine in Spalten organisierte MQT-Kopie einer in Zeilen organisierten Tabelle. Sie kann alle Spalten oder eine Teilmenge der Spalten der nach Quellenzeilen organisierten Tabelle enthalten. Spiegeltabellen werden durch Replikation verwaltet.

Sie können alle der oben genannten Typen von Tabellen mit der Anweisung CREATE TABLE erstellen.

Abhängig von der Art Ihrer Daten bietet ein Tabellentyp möglicherweise eine bestimmte Funktionalität, durch die sich die Speicher- und Abfrageleistung optimieren lassen. Wenn Sie z. B. mit Datensätzen arbeiten, die über eine lockere Clusterbildung (ohne monotones Wachstum) verfügen, sollten Sie prüfen, ob eine reguläre Tabelle und Indizes eingesetzt werden können. Wenn Sie über Datensätze verfügen, die doppelte (jedoch nicht eindeutige) Werte im Schlüssel aufweisen, sollten Sie keine Bereichsclustertabelle verwenden. Auch wenn Sie vorab keine festgelegte Menge an Plattenspeicherplatz für Bereichsclustertabellen zuordnen können, sollten Sie diesen Tabellentyp nicht verwenden. Wenn Sie Daten haben, die das Potenzial für ein Clustering nach mehreren Dimensionen haben, wie zum Beispiel eine Tabelle, in der Einzelhandelsumsätze nach geografischer Region, Unternehmensbereich und Lieferant aufgezeichnet werden, könnte sich eine Tabelle mit mehrdimensionalem Clustering (MDC-Tabelle) für diese Zwecke anbieten.

Neben den verschiedenen, oben beschriebenen Tabellentypen stehen Ihnen auch Optionen für solche Merkmale für Partitionierung, durch die sich die Leistung für Tasks wie das Einlagern definierter Datenbestände (Rollin) verbessern lassen. Partitionierte Tabellen können darüber hinaus auch wesentlich mehr Informationen als reguläre, nicht partitionierte Tabellen aufnehmen. Außerdem können Sie auch Funktionen wie die Komprimierung nutzen, mit deren Hilfe Sie Ihre Datenspeicherkosten erheblich senken können.