SQLite: Die bekannte Programmbibliothek im Detail vorgestellt

SQLite ist eine schlanke und unabhängige Programmbibliothek bzw. Datenbank, die bereits in zahlreichen Anwendungen integriert wird. Insbesondere der Verzicht auf eine Client-Server-Struktur macht das Datenbanksystem aus. Erwähnenswerte SQLite-Alternativen sind MySQL, MongoDB und PostgreSQL.

Was ist SQLite?

SQLite ist das am weitesten verbreitete und meistgenutzte Datenbanksystem der Welt. Die Software, die von D. Richard Hipp 2000 ursprünglich für die US Army konzipiert wurde, ist heute gemeinfrei und somit frei von Urheberrechten. Der Name „SQLite“ setzt sich zusammen aus „SQL“ – kurz für „Structured Query Language“ – und „lite“, einem umgangssprachlichen Begriff für eine leichtere und weniger speicherintensive Version.

Dieser Name erklärt sich u. a. dadurch, dass das relationale Datenbanksystem SQLite im Gegensatz zu anderen gängigen Datenbanken keine zusätzliche Server-Software benötigt. Auch die geringe Größe von nur wenigen hundert Kilobyte sowie die Speicherung einer gesamten Datenbank in nur einer Datei trugen zur Namensfindung bei.

SQLite ist in der Internet-Programmiersprache C geschrieben und findet in zahlreichen Betriebssystemen und Programmen Verwendung – darunter Android, iOS und Windows Phone, der Instant-Messenger Skype sowie die Browser Google Chrome, Mozilla Firefox und Safari SQLite. Die jeweiligen Daten werden in der Programmbibliothek in Tabellen abgelegt und können Spalte für Spalte abgerufen werden. Über die C-Schnittstelle oder ein Interface wie etwa in Ruby, PHP oder Python ist eine Integration in andere Programme problemlos möglich.

Mit SQLite3 Python verfügt die Programmiersprache sogar über ein Integrationsmodul für SQLite. Auch eine Installation oder Konfiguration des quelloffenen Datenbanksystems entfällt.

Wie funktioniert SQLite?

SQLite benötigt keine lange Einarbeitungsphase, sondern kann direkt und ohne den Einsatz einer zusätzlichen Server-Software in eine Anwendung integriert werden. Diese erhält dann automatisch und ohne weitere Tools umfassende Datenbankfunktionen. Sämtliche Tabellen, Bezüge, Verknüpfungen und Ähnliches sind in einer einzigen, platzsparenden Datei untergebracht, wobei es auch möglich ist, diese Datei wahlweise im Hauptspeicher abzulegen.

Daraus folgt: Die Verwendung einer Datei in verschiedenen Systemen ist sehr einfach. Auch, weil innerhalb einer Tabelle beliebige Daten abgespeichert werden können. Diese werden dann nur bei Bedarf konvertiert, sodass selbst der Wechsel zwischen Systemen mit unterschiedlicher Byte-Reihenfolge in Frage kommt.

SQLite nutzt als relationales Datenbank-Management-System ein Prinzip mit zwei Schlüsseln, um Einträge in einer Tabelle zu identifizieren und unterschiedliche Tabellen miteinander zu verbinden. Dafür werden ein Primärschlüssel und ein Fremdschlüssel eingesetzt.

  • Primärschlüssel: Es handelt sich hierbei um einen eindeutigen Wert, der einer bestimmten Zeile in der Tabelle zugeordnet werden kann.
  • Fremdschlüssel: Dieser wird verwendet, um mehrere Tabellen miteinander zu verbinden.

Diese Verweise sorgen für eine deutlich schlankere Struktur und erleichtern die Arbeit mit SQLite im Vergleich zu anderen Datenbanken. Auch diese Attribute haben zur weltweiten Verbreitung des Datenbanksystems beigetragen.

Welche Datentypen sind unter SQLite möglich?

Unter SQLite können Daten in verschiedenen Formaten abgelegt werden. Das führt auch dazu, dass für eine systemübergreifende Weiterverarbeitung nicht zwangsläufig eine Konvertierung notwendig ist. Die möglichen Datentypen, die gespeichert und abgelegt werden können, sind die folgenden:

  • INTEGER: Umfasst alle ganzzahligen Werte.
  • REAL: Umfasst angenäherte Darstellungen einer reellen Zahl als Gleitkommazahl oder auch Fließkommazahl.
  • TEXT: Enthält alle klartextlichen Inhalte.
  • BLOB: Steht für Binary Large Object und beinhaltet Binärwerte wie zum Beispiel Vorschaubilder oder Konfigurationsdateien im XML-Format.
  • NULL: Auch Nullwerte können in SQLite abgebildet werden.

Das bedeutet, dass in SQLite alle gängigen Datentypen gespeichert werden können.

Wie werden Daten unter SQLite gesichert?

Es gibt zwei Möglichkeiten, um in SQLite zu gewährleisten, dass die Konsistenz einer Datenbank beibehalten wird. Diese funktionieren folgendermaßen:

  • Rollback Journal: Bei dieser Methode wird automatisch ein temporäres Journal aller durchgeführten Änderungen angelegt, welches den Namen der jeweiligen Datenbank und die Endung „-journal“ enthält. Sollte es zu Problemen mit der Datenbank oder einzelnen Dateien kommen, kann dadurch ein Rollback durchgeführt werden, bei dem ein früherer Stand wiederhergestellt wird.
  • Write Ahead Log (WAL): Bei einem Write Ahead Log werden alle Änderungen in einer Log-Datei gespeichert. Wenn die Datenbank dann planmäßig geschlossen wird, werden die Daten final in die Datenbank eingefügt. Alternativ können Sie sie mit einem Commit-Befehl manuell speichern. Gleichzeitig wird ein Index in der Shared Memory Datei (SHM) erstellt.

Welche Vorteile bietet SQLite?

SQLite bietet zahlreiche Vorteile und hat sich einen guten Ruf sowohl bei den Entwicklerinnen und Entwicklern kommerzieller Anwendungen als auch bei privaten Userinnen und Usern erarbeitet. Für das relationale System sprechen u. a. die folgenden Aspekte:

Umfang

Der geringe Speicherbedarf ist ein großer Vorteil des Datenbanksystems. Mit nur wenigen hundert Kilobyte nimmt eine Bibliothek nur sehr wenig Platz ein, was sich natürlich wiederum positiv auf die Geschwindigkeit auswirkt. An dieser Stelle wird SQLite seinem Namen vollkommen gerecht und zeigt sich als starke Lösung für große und kleine Anwendungen gleichermaßen.

Verzicht auf zusätzliche Software

SQLite funktioniert ohne weitere Server-Software und lässt sich stattdessen einfach und problemlos einbinden. Weitere Programme oder externe Pakete sind nicht nötig. Die Serverleistung, die dadurch bereitgestellt werden muss, ist dementsprechend ebenfalls sehr übersichtlich.

Vielseitigkeit

Nicht nur unterstützt SQLite die meisten SQL-Sprachbefehle, auch die Kompatibilität mit einem Großteil der gängigen Datenspeicher ist ein großer Vorteil. Nicht umsonst findet die Bibliothek in zahlreichen Apps wie Facebook oder WhatsApp ebenso Verwendung wie in allen gängigen Betriebssystemen für Desktop und Mobiltelefone, Browsern und vielen kommerziellen Programmen. Da auch der Austausch zwischen zwei unterschiedlichen Systemen ohne große Probleme möglich ist, setzen zahlreiche Entwicklerinnen und Entwickler auf die schlanke Lösung als Unterbau für ihre Software.

Portabilität

Die oben genannten Aspekte führen auch dazu, dass SQLite-Dateien sehr einfach zu sichern und transportieren sind. Da es keine Notwendigkeit gibt, SQLite ausgiebig zu konfigurieren, und da die jeweiligen Dateien unabhängig von Server-Programmen sind, ist eine Verwendung auf unterschiedlichen Systemen problemlos möglich.

Ausfallsicherheit

Der vereinheitlichte Datenzugriff, der geringe Ressourcenverbrauch und die Unabhängigkeit von einer Server-Client-Struktur machen SQLite zu einer sehr sicheren Option. Auch Speicherfehler oder Probleme durch fehlenden Arbeitsspeicher fallen hier deutlich weniger ins Gewicht.

Gemeinfreiheit

SQLite ist lizenzfrei erhältlich. Lediglich einige Add-ons und der Support sind kostenpflichtig.

Welche Nachteile hat SQLite?

Neben seinen Vorteilen hat SQLite auch ein paar Nachteile, die Sie beachten und berücksichtigen sollten, falls Sie darüber nachdenken, das Datenbanksystem zu verwenden. Dazu gehören vor allem folgende:

Nutzerbeschränkung

SQLite hat keine Option für mehrere Benutzerkonten. Das unterscheidet die Lösung von anderen Anbietern. Eine Verbindung mehrerer Clients ist so nicht möglich.

Steigender Platzbedarf

Auch wenn SQLite eigentlich eine sehr schlanke Lösung ist, steigt der Bedarf, je größer die Datenbank wird. Dies kann auch die Leistung negativ beeinflussen.

Flexibilität

Zwar ist SQLite eine insgesamt flexible Lösung, was vor allem an der Unabhängigkeit von externen Serverstrukturen liegt. Das bedingt allerdings auch, dass keine Datenabfrage vom Client aus getätigt werden kann. Darüber hinaus können nicht mehrere Verbindungen gleichzeitig verarbeitet werden, sodass es zu Zeitverzögerungen kommen kann.

Welche Alternativen gibt es zu der Programmbibliothek?

Es gibt zahlreiche Alternativen zu SQLite. Neben der dokumentorientieren NoSQL-Lösung MongoDB und dem relationalen PostgreSQL stellt insbesondere MySQL eine sehr weit verbreitete Alternative dar, die teilweise proprietär und teilweise Open Source ist. Auch diese Option fällt sehr benutzerfreundlich aus. Wie Sie dieses Datenbanksystem verwenden, erfahren Sie im umfangreichen MySQL-Tutorial des Digital Guides.

Tipp

Maximale Flexibilität zum kleinen Preis: Mit Managed MongoDB von IONOS profitieren Sie von horizontaler Skalierung, voller Kompatibilität und einer sachkundigen Unterstützung durch unsere Expertinnen und Experten. Wählen Sie aus den unterschiedlichen Tarifen das Modell, das am besten zu Ihren Bedürfnissen passt.