Datenbank: Das Leichtgewicht SQLite stemmt größere Datenbankdateien

Neben einer erhöhten Maximalgröße für Datenbankdateien führt die Datenbank-Library in der Schnapszahl-Version 3.33 das UPDATE-FROM-Konzept ein.

In Pocket speichern vorlesen Druckansicht 79 Kommentare lesen
Datenbank: Das Leichtgewicht SQLite stemmt größere Datenbankdateien

(Bild: rawf8/Shutterstock.com)

Lesezeit: 2 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Die als C-Library umgesetzte Datenbank SQLite ist in Version 3.33 erschienen. Das Release ermöglicht ein aus anderen Tabellen der Datenbank durchgeführtes Update und eine auf einzelne Tabellen begrenzte Integritätsprüfung. Außerdem führt es Berechnungen mit beliebig großen Zahlen durch, die als Textfelder vorliegen.

Das Kommandozeilentool der eingebetteten Datenbank kennt zudem vier neue Ausgabemodi. Schließlich kann SQLite neuerdings Datenbankdateien bis zu einer Maximalgröße von 281 TByte verarbeiten.

Das neu eingeführte UPDATE-FROM-Konzept führt einen UPDATE-Befehl unter Berücksichtigung anderer Tabellen in der Datenbank durch. Auch wenn andere Datenbanken ähnliche Konzepte kennen, ist die Kombination der beiden Befehle kein SQL-Standard. Bei der Umsetzung orientiert sich die Library an der Vorgehensweise von PostgreSQL. Die SQLite-Dokumentation führt folgenden Beispielcode auf, der den Inhalt einer inventory-Tabelle über den einer sales-Tabelle aktualisiert:

UPDATE inventory
SET quantity = quantity - daily.amt
FROM (SELECT sum(quantity) AS amt, itemId
FROM sales GROUP BY 2) AS daily
WHERE inventory.itemId = daily.itemId;

Neu sind zudem drei Funktionen für das Rechnen mit Werten, die als Text in der Datenbank liegen. Die decimal.c-Erweiterung addiert, substrahiert beziehungsweise multipliziert beliebig große Dezimalzahlen über die Befehle decimal_add(A,B), decimal_sub(A,B) und decimal_mul(A,B). Die Division ist derzeit noch nicht integriert.

Außerdem haben die Entwickler die IEE754-Extension zum Verarbeiten binärer Gleitkommazahlen um Funktionen zum Verarbeiten von Zahlen mit doppelter Genauigkeit im binary64-Format ergänzt.

Die Command Line Shell für SQLite bekommt die neuen Ausgabeformate box, json, markdown und table. Insgesamt kann das Kommandozeilentool damit Inhalte in vierzehn unterschiedlichen Formaten ausgeben.

Nennenswert ist zudem, dass die Library Integritätsprüfungen nicht nur auf die gesamte Datenbank, sondern durch Angabe eines Tabellennamens in PRAGMA schema.integrity_check(TABLENAME) auch für einzelne Tabellen durchführen kann.

Weitere Neuerungen in SQLite 3.33 lassen sich dem Release-Log entnehmen. SQLite ist eine relationale Datenbank, die als Softwarebibliothek umgesetzt ist. Vor allem durch den Verzicht auf einen eigenen Serverprozess ist sie schlanker als andere Datenbanksysteme. Sie greift direkt lesend und schreibend auf Dateien zu. Auf der Downloadseite stehen neben dem Sourcecode vorkompilierte Binaries unter anderem für Windows, Linux, macOS und Android bereit.

(rme)