Eine Datenbank (synonym: ein Katalog) lässt sich als Menge von zusammengehörigen Datenbeständen auffassen, die mit Hilfe eines Datenbanksystems verwaltet werden.
Bei SESAM/SQL besteht eine Datenbank aus den Metadaten im Catalog-Space und den Anwenderdaten in den zugehörigen Anwender-Spaces. Eine Datenbank wird durch den Datenbanknamen identifiziert.
Anwenderdaten
Eine relationale Datenbank kann aus Benutzersicht als eine Menge von Tabellen aufgefasst werden. Der SQL-Benutzer ist für den Aufbau und den Inhalt der Tabellen verantwortlich, die er mit SQL-Anweisungen definiert. Aus seiner Sicht handelt es sich bei diesen Tabellen um Anwenderdaten.
Metadaten
Neben diesen Anwenderdaten benötigt ein Datenbanksystem interne Daten, die die Struktur der Anwenderdaten beschreiben und die zum Verwalten der Anwenderdaten benötigt werden. Diese internen Daten werden auch als Metadaten bezeichnet. Die Metadaten einer Datenbank sind im Catalog-Space der Datenbank abgelegt. Teile der Metadaten sind dem Anwender über das Schema INFORMATION_SCHEMA zugänglich.
Space
Anwenderdaten und Metadaten befinden sich auf sogenannten Spaces. Spaces sind BS2000-Dateien. Sie spielen eine zentrale Rolle bei der Sicherung und Wiederherstellung von Datenbanken (siehe "Sicherungskonzept").
Man unterscheidet Anwender-Spaces, in denen die Anwenderdaten, nämlich Tabellen und Indizes, gespeichert sind, vom Catalog-Space, der die Metadaten enthält. Aus physikalischer Sicht besteht eine SESAM/SQL-Datenbank aus den Anwenderdaten in den entsprechenden Anwender-Spaces und den zugehörigen Metadaten im Catalog-Space.
Ein Space kann auf Pubsets mit „großen Dateien“ bis zu 4 TByte groß werden.Sonst kann er bis zu 64 GByte groß werden.
Datenbank (Katalog)
Eine Datenbank wird erzeugt, indem mit der Utility-Anweisung CREATE CATALOG (siehe "Catalog-Space der Datenbank anlegen") der Catalog-Space der Datenbank erzeugt wird. Dabei wird der Name der Datenbank festgelegt. Die Namen aller Objekte, die zu der Datenbank mit diesem CatalogSpace gehören, werden mit dem Datenbanknamen qualifiziert.
Um die Portierbarkeit von Anwenderprogrammen zu erhöhen (z.B. Wechsel von Test- und Produktivumgebung), unterscheidet SESAM/SQL den logischen und den physikalischen Datenbanknamen. Der physikalische Datenbankname ist der Name einer existierenden SESAM/SQL-Datenbank.
Der logische Datenbankname ist der Name, mit dem ein Anwenderprogramm eine SESAM/SQL-Datenbank anspricht. Existiert zu dem logischen Datenbanknamen keine SE-SAM/SQL-Datenbank, muss die Zuordnung zu einer existierenden Datenbank über den physikalischen Datenbanknamen im SQL-Datenbankverzeichnis erfolgen. Bei Qualifizierung von SQL-Objekten mit dem Datenbanknamen wird stets der logische Datenbankname verwendet.
Anwenderspace
Ein Anwender-Space wird durch die SQL-Anweisung CREATE SPACE erzeugt, siehe "Anwender-Spaces anlegen, ändern und löschen".
In den Anweisungen CREATE TABLE und CREATE INDEX kann dann der Name des Anwender-Space angegeben werden, um die Tabelle bzw. den Index auf diesem Space anlegen zu lassen. Eine bestimmte Basistabelle oder ein bestimmter Index muss vollständig in einem Space enthalten sein.
Mit ALTER SPACE können Eigenschaften des Catalog-Space oder eines Anwender-Space und der Name der zugehörigen Storage Group verändert werden.
DROP SPACE löscht einen Anwender-Space.