Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Basistabelle

Basistabellen sind Tabellen, die die Anwenderdaten einer Datenbank enthalten. Eine Basistabelle wird mit einer CREATE TABLE-Anweisung definiert und permanent in der Datenbank gespeichert, bis sie mit einer DROP TABLE-Anweisung gelöscht wird.

Mit der ALTER TABLE-Anweisung können in einer bestehenden Basistabelle Tabellenbedingungen (siehe Abschnitt „Integritätsbedingung“) hinzugefügt oder gelöscht und Spalten und Indizes hinzugefügt, Spalten geändert oder gelöscht werden.

SESAM/SQL unterscheidet zwischen den folgenden Arten von Basistabellen:

  • Tabellen, die nur mit SQL bearbeitet werden können (SQL-Tabellen)

  • Tabellen, die ausschließlich BLOB-Objekte enthalten und nur mit SQL bearbeitet werden können (BLOB-Tabellen)

  • Tabellen, die nur mit CALL-DML bearbeitet werden können (Nur-CALL-DML-Tabellen)

  • Tabellen, die mit CALL-DML und eingeschränkter SQL bearbeitet werden können (CALL-DML/SQL-Tabellen)

SQL-Tabellen, BLOB-Tabellen und CALL-DML/SQL-Tabellen können auch als partitionierte Tabellen erzeugt werden, siehe Abschnitt „Partitionierte Tabelle“.

Nur-CALL-DML-Tabellen und CALL-DML/SQL-Tabellen werden unter dem Namen CALL-DML-Tabellen zusammengefasst.

Die Tabellenart ist im Zusammenhang mit der Utility-Anweisung MIGRATE von Bedeutung. Mit der MIGRATE-Anweisung werden Datenbanken, die mit SESAM/SQL V1.1 bzw. einer früheren Version erstellt worden sind, in Basistabellen einer SESAM/SQL-Datenbank der aktuellen Version überführt.

Bei CALL-DML-Tabellen sind einige Besonderheiten zu beachten:
Für CALL-DML-Tabellen sind nur die Datentypen CHARACTER, NUMERIC, DECIMAL, INTEGER und SMALLINT erlaubt. Für eine Spalte darf mit DEFAULT kein voreingestellter Wert definiert werden.

Als voreingestellter Wert darf nur der nicht-signifikante Wert in der CALL-DML-Klausel angegeben werden. CALL-DML-Tabellen müssen eine Primärschlüsselbedingung (siehe "Integritätsbedingung") für einen einfachen oder zusammengesetzten Primärschlüssel besitzen. Der Name der Primärschlüsselbedingung wird als Name des zusammengesetzten Primärschlüssels verwendet. Außer dieser Primärschlüsselbedingung sind keine Integritätsbedingungen erlaubt.

Speicherstruktur von Basistabellen

Wenn eine Tabelle mit CREATE TABLE angelegt wird, dann wird Speicherplatz, der sogenannte zusammenhängende Bereich der Tabelle, reserviert. Die einzufügenden Sätze werden in diesem Bereich gespeichert. Wenn ein Satz eingefügt oder erweitert werden soll und der Platz in diesem Bereich nicht mehr ausreicht, dann wird eine sogenannte Auslagerung, ein freier Block, angelegt. Dieser Block gehört logisch zur Tabelle, liegt aber physikalisch nicht mehr im zusammenhängenden Bereich der Tabelle.
Bei der nächsten Reorganisation des Anwender-Space mit der Anweisung REORG SPACE werden alle existierenden Tabellen und Indizes auf dem Anwender-Space neu aufgebaut. Damit verschwinden auch die Auslagerungen.

Basistabelle in eine partitionierte Tabelle umwandeln

Eine nicht-partitionierte Basistabelle mit Primärschlüssel kann mit der Utility-Anweisung ALTER PARTITIONING FOR TABLE in eine partitionierte Tabelle umgewandelt werden, siehe Abschnitt „Partitionierung einer Basistabelle ändern“ und das Handbuch „ SQL-Sprachbeschreibung Teil 2: Utilities“.