Zum Inhalt springen

SQLite

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 25. Juli 2019 um 13:41 Uhr durch Uncopy (Diskussion | Beiträge) (Funktionen: Homepage von sqlitebrowser anstelle von GitHub verlinkt, quellen sind von dort aus erreichbar, aber der Download-Bereich ist wesentlich benutzerfreundlicher). Sie kann sich erheblich von der aktuellen Version unterscheiden.
SQLite

Logo
Basisdaten

Entwickler Das SQLite-Team[1]
Erscheinungsjahr August 2000
Aktuelle Version 3.28.0[2]
(Format invalid)
Aktuelle Vorabversion 3.29.0[3]
(Format invalid)
Betriebssystem Windows, macOS, GNU/Linux und andere unixoide Systeme
Programmier­sprache C
Kategorie SQL-Programmbibliothek
Lizenz gemeinfrei
deutschsprachig nein
www.sqlite.org
SQLite Database File Format
Dateiendung: .sqlite3, .sqlite, .db
MIME-Type: application/vnd.sqlite3
(veraltet: application/x-sqlite3)[4]
Magische Zahl: 53514c69746520666f726d6174203300 hex
SQLite format 3\x00
Erstveröffentlichung: 18. Juni 2004
Aktuelle Version 3.49.1[5]
(18. Februar 2025)
sqlite.org/fileformat2.html


SQLite ist eine gemeinfreie Programmbibliothek, die ein relationales Datenbanksystem enthält. Sie unterstützt einen Großteil der im SQL-92-Standard festgelegten SQL-Sprachbefehle. Unter anderem implementiert SQLite Transaktionen, Unterabfragen (Subselects), Sichten (Views), Trigger und benutzerdefinierte Funktionen.

Funktionen

Die SQLite-Bibliothek lässt sich direkt in entsprechende Anwendungen integrieren, sodass keine weitere Server-Software benötigt wird. Dies ist der entscheidende Unterschied zu anderen Datenbanksystemen. Durch das Einbinden der Bibliothek wird die Anwendung um Datenbankfunktionen erweitert, ohne auf externe Softwarepakete angewiesen zu sein.

Das System ist vor allem für den Einsatz in eingebetteten Datenbanksystemen entworfen, daher fehlen Funktionen wie die Möglichkeit, Objektberechtigungen zu verwalten (GRANT, REVOKE). Für viele Programmiersprachen existieren passende Datenbankschnittstellen. Auch ein in der Konsole und in Shell-Skripten verwendbares, einfaches Frontend ist vorhanden. Mit sqlitebrowser steht ein grafisches Frontend für BSD, macOS, Linux und Windows zur Verfügung.[6]

SQLite hat einige Besonderheiten gegenüber anderen Datenbanken: Die Bibliothek ist nur wenige hundert Kilobyte groß. Eine SQLite-Datenbank besteht aus einer einzigen Datei, die alle Tabellen, Indizes, Views, Trigger usw. enthält. Dies vereinfacht den Austausch zwischen verschiedenen Systemen, sogar zwischen Systemen mit unterschiedlichen Byte-Reihenfolgen. Jede Spalte kann Daten beliebiger Typen enthalten, erst zur Laufzeit wird nötigenfalls konvertiert.

Die gesamte Datenbank befindet sich in einer einzigen Datei, kann aber auch nicht-persistent im Hauptspeicher angelegt werden.[7] Eine Client-Server-Architektur ist nicht vorhanden.

Einige in anderen Datenbanksystemen vorhandene Funktionen fehlen: Schreiboperationen unterschiedlicher Prozesse in derselben Datenbankdatei können nur nacheinander ausgeführt werden.[8] Ab Version 3.2 gibt es den Befehl ALTER TABLE, allerdings mit eingeschränktem Funktionsumfang. Es lassen sich derzeit lediglich Tabellen umbenennen und Spalten zu den Tabellen hinzufügen. Es gibt keine Verwaltung von Benutzer- und Zugriffsberechtigungen auf Datenbank-Ebene, stattdessen gelten für die Datenbank-Dateien die Zugriffsberechtigungen des Dateisystems.

SQLite wurde im Jahr 2000 von dem US-Amerikaner Richard Hipp (* 1961) entwickelt und ist in C geschrieben. Außerdem wird eine Bibliothek für die Benutzung unter Tcl angeboten. Für andere Programmiersprachen wie C++ und Java gibt es Wrapper externer Entwickler, Python (ab Version 2.5) enthält SQLite sogar in der Standardausstattung.[9] Ebenso stehen ODBC-, dbExpress und JDBC-Treiber zur Verfügung.[10][11] SQLite erzwingt keine Typsicherheit: Fehlerhafte Eingaben werden in der Regel akzeptiert und in Zeichenketten umgewandelt.

Verwendung und Verbreitung

Eingesetzt wird SQLite unter anderem in Betriebssystemen für Mobiltelefone, wie Symbian OS oder Android.[12] Außerdem nutzt der Browser Mozilla Firefox ab Version 3 SQLite – beispielsweise für Lesezeichen und Cookies – nachdem man schon in Version 2 SQLite für programminterne Datenbanken benutzt hatte. Für diesen Browser gibt es zudem die Firefox-Erweiterung SQLite Manager, mit dem man die SQLite-Datenbanken der Anwendung, aber auch jede beliebige andere SQLite-Datenbank betrachten, bearbeiten und abfragen kann.[13]

Auch Apples Browser Apple Safari verwendet intern SQLite, sowohl die Desktop- als auch die iPhone-Variante wie auch das E-Mail-Programm Apple Mail. Videos und Musikstücke des iPhones sind in einer SQLite-Datenbank gespeichert. Innerhalb von macOS wird SQLite auch zur Verwaltung von Cache-Daten, wie z. B. die der Software-Aktualisierung, eingesetzt. SQLite kommt auch in Adobe AIR und Lightroom als Datenbankanwendung zum Einsatz[14]. Ab Version 1.5 von Adobe AIR können SQLite-Daten mittels der EncryptedLocalStore-Klasse auch verschlüsselt abgespeichert und gelesen werden[15]. Die VoIP/Messenger-Software Skype ab Version 4 speichert Kontakte und alle anfallenden Nutzerdaten (Chatprotokolle usw.) in einer SQLite-Datenbank ab. Auch Google nutzt für seinen Browser Chrome SQLite, um unter anderem Benutzerdaten lokal zu sichern. Durch die Integration in Mozilla Firefox, in den verbreiteten Mobiltelefonen (Android, iOS, Symbian OS, Windows Phone) sowie mit jeder PHP-Installation[16][17] (die für sich schon hohe Nutzerzahlen haben) ist SQLite das verbreitetste und meistverwendete Datenbanksystem der Welt.

Rechtliches

Während die Software gemeinfrei ist, wurde am 12. Februar 2007 die Registrierung der Marke SQLite beim United States Patent and Trademark Office beantragt. Diesem Antrag wurde am 24. Juni 2008 stattgegeben.[18]

Einzelnachweise

  1. The SQLite Development Team. In: sqlite.org. Abgerufen am 17. Februar 2016 (englisch).
  2. SQLite Release 3.28.0 On 2019-04-16. In: sqlite.org. Abgerufen am 23. April 2019 (englisch).
  3. SQLite Release 3.29.0 On 2019-06-17. In: sqlite.org. Abgerufen am 23. Juni 2019 (englisch).
  4. SQLite database file format media type at IANA. Abgerufen am 8. März 2019 (englisch).
  5. SQLite Release 3.49.1 On 2025-02-18. 18. Februar 2025 (abgerufen am 19. Februar 2025).
  6. DB Browser for SQLite. Abgerufen am 25. Juli 2019.
  7. In-Memory Databases, sqlite.org, abgerufen am 21. Oktober 2016
  8. Frequently Asked Questions. Hipp, Wyrick & Company, abgerufen am 22. August 2009.
  9. 11.13. sqlite3 — DB-API 2.0 interface for SQLite databases — Python v2.7.3 documentation
  10. SQLite ODBC Driver von Christian Werner
  11. SQLite Java Wrapper/JDBC Driver von Christian Werner
  12. Data Storage – Android Developers. Google, abgerufen am 28. April 2009 (englisch).
  13. SQLite Manager – Firefox Add-ons. Mozilla, abgerufen am 20. November 2008.
  14. Working with local SQL databases. Adobe, archiviert vom Original (nicht mehr online verfügbar) am 19. März 2009; abgerufen am 6. August 2009 (englisch).  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/livedocs.adobe.com
  15. Storing encrypted data. Adobe, archiviert vom Original (nicht mehr online verfügbar) am 20. August 2010; abgerufen am 6. August 2009 (englisch).  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/livedocs.adobe.com
  16. Abschnitt SQLite des PHP-Handbuchs
  17. Abschnitt SQLite3 des PHP-Handbuchs
  18. United States Patent and Trademark Office: Registerauszug zur Marke SQLite. In: Trademark Applications and Registrations Retrieval (tarr.uspto.gov). Abgerufen am 22. Januar 2010 (englisch).