# Transbase

Transbase ist ein relationales Datenbankmanagementsystem des Unternehmens Transaction Software GmbH. Seine Entwicklung begann in den 1980er-Jahren am Lehrstuhl des Datenbankpioniers Rudolf Bayer unter dem Namen „Merkur“.
Transbase ist weitgehend konform mit dem SQL-Standard „SQL2 intermediate level“ (SQL-92) und unterstützt diverse Sprachkonstrukte der SQL2-Nachfolger-Versionen (SQL:1999, SQL:2003 etc.).

## Geschichte

In den 1980er-Jahren entwickelte Rudolf Bayer an der TU München gemeinsam mit vielen Doktoranden und Diplomanden das Datenbankmanagementsystem „Merkur“. 1987 gründeten Rudolf Bayer sowie einige Mitarbeiter seines Lehrstuhls die Firma Transaction Software GmbH, die „Merkur“ seitdem weiterentwickelt und kommerziell vertreibt. 1989 wurde „Merkur“ in „Transbase“ umbenannt.
Durch die breite Verwendung von Transbase in der Automobilbranche, speziell für die Erstellung von Ersatzteilverwaltungs und -Dokumentationssystemen, erfolgte sehr früh eine Portierung auf eine größere Zahl von Plattformen (verschiedenste UNIX-Derivate, Linux, Windows, VMS, Mac OS).
Die wesentlichen Entwicklungsschritte von Transbase waren die Integration von Funktionen für verteilte Anfragen auf mehreren Datenbanken, die Erweiterung um ein Volltext-Suchsystem insbesondere auch für Sprachen wie japanisch und chinesisch („Myriad“), die Unterstützung von Data Warehouse Funktionen („Transbase Hypercube“) sowie die dynamische Parallelverarbeitung von Anfragen.
Mit der Version 8 wurde Transbase auf Single-Server-Architektur umgestellt. Als Variante gibt es serverlose „private Datenbanken“, die in die Applikation integriert werden können und insbesondere für den Betrieb auf mobilen Geräten entwickelt wurden.
Mit der Version 8.3 gibt es die Erweiterung Transbase Crowd (s. u.) sowie In-Memory Tabellen, weitere statistische Funktionen, die Konfiguration des Logverhaltens sowie eine Import/Export-Schnittstelle für JSON.

## Eigenschaften
### Standard-SQL-Eigenschaften

Transbase unterstützt alle wesentlichen vom SQL-Standard geforderten Eigenschaften:
* Umfassendes Transaktionskonzept
* Komplexe Abfragen mit geschachtelten Unterabfragen
* Referenzielle Integrität (u. a. Primärschlüssel, Fremdschlüssel, Check-Constraints)
* Mengenoperationen
* Updatable Views
* Trigger
* Schnittstellen zu C, C++, Java/JDBC, PHP sowie zu ODBC
* Export und Import sowohl von Daten als auch von Datenbankstrukturen (Schemata)
* Integrierte Programmiersprache auf Basis von PSM (Persistent Stored Modules) ab Version 8.4

### Erweiterungen
#### ROM-Betrieb

TransbaseCD kann auf Read-Only-Medien wie CD, DVD, Blu-ray direkt oder mit einem so genannten Disk Cache betrieben werden. Der Disk Cache ist persistent und dient sowohl zur Performanzsteigerung (da eine Festplatte schneller als ein Festwertspeicher ist) als auch zur Speicherung von Änderungen. TransbaseCD-Seiten können optional komprimiert werden, wodurch sich in der Regel ein Faktor 2 an Speicherplatz-Ersparnis und meist auch an Verarbeitungsgeschwindigkeit ergibt.

#### Hypercube-Suche

Transbase Hypercube unterstützt die Analysemethode Relational Online Analytical Processing (ROLAP), welche insbesondere bei der Realisierung von Data-Warehouse-Lösungen eingesetzt wird. Die Suche innerhalb der dabei eingesetzten OLAP-Würfel (engl. hypercubes) wird durch Indexierung mittels UB-Bäumen sehr stark beschleunigt (im Vergleich zu Suchanfragen, bei denen nur klassische Sekundärindexe zum Einsatz kommen).

#### Verschlüsselung

Transbase verschlüsselt optional alle Seiten, die auf Festplatte gespeichert werden, gemäß dem Advanced Encryption Standard. Im Hauptspeicher liegen sie aus Performanzgründen unverschlüsselt.

#### Parallelisierung

Transbase bietet parallele Anfrageverarbeitung mittels dynamischer Multithreading-Technologie. Dabei werden entweder einzelne Baumteile des Operatorbaums durch eigene Threads verarbeitet oder Baumpfade mehrfach durch je eigene Threads instantiiert.

#### Replikation

Transbase unterstützt die Replikation einer Master-Datenbank auf mehrere Slave-Datenbanken. Die Replikation kann synchron (z. B. für hot standby) oder asynchron zur breiten Verteilung auf sehr viele Empfänger erfolgen (auch kaskadiert).

#### Transbase Crowd

Transbase Crowd wurde konzipiert, um IoT Daten lokal in den Geräten zu speichern und trotzdem zentral abzufragen. Dabei stehen die Nutzung der lokalen Ressourcen sowie die Minimierung des Datentransfers im Vordergrund.

### Einschränkungen

Die hier beschriebenen Einschränkungen betreffen die Version 6.9:
* Die Datenbankgröße ist auf 2^31 Seiten oder 128 Tbyte beschränkt.
* Die Seitengröße kann zwischen 4 kByte und 64 kByte gewählt werden.
* Die Tabellengröße wird nur durch die maximale Datenbankgröße limitiert.
* Die maximale BLOB/CLOB-Größe beträgt 2 GByte.
* Die Spaltenzahl einer Tabelle ist auf 256 beschränkt. Zusätzlich muss ein Tupel in eine Seite passen.
* Die Anzahl der Zeilen pro Tabelle ist nicht bzw. nur durch die Größe der Datenbank limitiert.