Eingebettetes Datenbanksystem
Ein eingebettetes Datenbanksystem ist ein in einer Anwendungssoftware eingebettetes Datenbanksystem, das nach außen nicht sichtbar in Erscheinung tritt.
Eigenschaften
Einige Datenbanksystem-Hersteller vertreiben ihre Datenbank-Produkte nicht nur als eigenständige Produkte, sondern auch als eingebettete Datenbanksysteme, die in andere Anwendungen integriert sind.
Ein eingebettetes Datenbanksystem ist von außen als solches nicht zu erkennen und kann auch nicht von Fremd-Systemen zur Datenspeicherung genutzt werden. Die Vorteile von eingebetteten Datenbanksystemen ergeben sich daraus, dass der Hersteller eine für die spezielle Anwendung ausgerichtete Anpassung vornehmen kann, die über die Möglichkeiten der normalen Administration und Beschleunigung hinausgeht.
Ein weiterer Vorteil ist eine einfachere Installation und Lizenzierung eines Produktes, das ein eingebettetes Datenbanksystem verwendet. Der Produkt-Hersteller kann sein Produkt als Ganzes an seine Kunden ausliefern. Lizenzen für sein Produkt können ohne Beteiligung des Datenbank-Herstellers zwischen dem Produkt-Hersteller und seinem Kunden verhandelt werden. Der Produkt-Hersteller kann ohne Beteiligung seiner Kunden mit dem Datenbank-Hersteller eine Lizenzvereinbarung erzielen. Ein Nachteil ist zum Beispiel, dass man die so gespeicherten Daten schwieriger auf ein System eines anderen Herstellers übertragen kann.
Das Marktvolumen für eingebettete Datenbanken wurde im Jahr 2005 auf zwei Milliarden USD geschätzt mit einem Anstieg auf 3,2 Milliarden USD für das Jahr 2009.[1]
Der Begriff des eingebetteten Datenbanksystems ist breit aufgestellt und umfasst:
- Datenbanksysteme mit unterschiedlichen Anwendungsprogrammier-Schnittstellen (API)
- Datenbankarchitekturen
- Speichermodi
- Datenbankmodelle
Einsatz in Klein- und Kleinstgeräten
Viele Datenbanksysteme (DBS) unterliegen der Forderung, immer größere Datenmengen verwalten zu können und immer umfangreichere Funktionen bereitzustellen. Es gibt aber auch einen wachsenden Bedarf an kleinen DBS für eingebettete Systeme und für mobile Geräte mit einer schwachen Rechnerleistung.
Designziel solcher DBS ist die Bereitstellung einer bestimmten Leistung in einer ressourcenbeschränkten Umgebung.
Die geforderte Leistung besteht oft nicht in der vollen SQL3-Funktionalität, sondern beinhaltet
- nur die SQL1-Funktionen
- nur den Zugriff auf persistente Tabellen über ein API
- nur den Zugriff auf Indexstrukturen wie z. B. B-Baum oder Hashtabellen.
Wenn ein DBS für den Einsatz in einer ressourcenbeschränkten Umgebung konfiguriert wird, dann kann es sein, dass Komponenten weggelassen werden, die zu den wesentlichen Eigenschaften eines DBS gezählt werden.
Beispiele:
- die Mehrbenutzerfähigkeit ist nicht erforderlich
- das System hat nur die Aufgabe, auf Indexstrukturen zuzugreifen
- Datenspeicherung in einem RFID-Chip (Speichervolumen < 1 MB)
In diesen Fällen handelt es sich nicht mehr um ein „eingebettetes Datenbanksystem“, sondern um ein „eingebettetes Dateisystem“.
Ein Beispiel für ein eingebettetes Dateisystem ist Prevayler.
Liste der eingebetteten Datenbanksysteme
Liste von Client-Server-Datenbanken, die sich für den Einsatz als eingebettetes Datenbanksystem eignen:
Liste von Datenbanken, die direkt in andere Applikationen eingebettet werden können:
- Axion – in Java implementierte Open-Source-DB[3]
- Berkeley DB
- DBM
- db4o – Objektorientierte Datenbank (eingestellt)
- Apache Derby – Java-Datenbank, Teil des JDKs ab Java 6.0
- Firebird
- H2 – Java-Datenbank, neues Projekt vom HSQLDB Initiator
- HSQLDB
- JetstreamDB – Java-Object-Graph-Storage-Engine und In-Memory-Datenbank
- LMDB – in C implementierte Schlüssel-Werte-Datenbank basierend auf B+-Bäumen
- Microsoft SQL Server Compact
- MetaKit mit Schnittstellen zu C++, Python und Tcl
- McKoi
- ObjectBox – in C/C++ implementierte Datenbank, die Objekte verschiedener Programmiersprachen speichert[4]
- One$DB – in Java implementierte Open-Source-Variante der DaffodilDB[5]
- Quadcap Embeddable Database (QED) von der Firma Quadcap Software, in Java implementierte Open-Source-Datenbank[6]
- Raima RDM Embedded – Eingebettetes Datenbanksystem mit Schnittstellen zu C, C++, Java[7]
- SmallSQL – eine 100%-pure-Java-Database[8]
- SQLite – in C implementierte SQL-Datenbank, die sehr weit verbreitet ist
- Transbase – ein relationales SQL-Datenbanksystem[9]
- TurboDB – eine SQL-Implementierung in ausschließlich verwaltetem .NET Code[10]
Siehe auch
Literatur
- Datenhaltung in eingebetteten Systemen. In: Datenbank Spektrum, Heft 20/2007:
Weblinks
- Gunter Saake: Methoden und Werkzeuge zum Bau feingranular konfigurierbarer Datenbankfamilien für Anwendungen im Bereich eingebetteter Systeme.
- Gunter Saake: Projekt FAME-DB cs.uni-magdeburg.de
- Mikro-DBMS (PDF; 230 kB)
- Embedded DBMS University of Waterloo
- Ein merkmalsorientierter Speichermanager für eingebettete Systeme. (PDF; 131 kB) informatik.uni-halle.de
- IDC-Studien zum Thema „Embedded Database“: db4o.com (PDF) und intersystems.com (PDF)
- Craig Mullins: Empress Offers an Effective Embedded Database Solution.
Einzelnachweise
- Oracle® Buys Open Source Software Company Sleepycat. In: oracle.com. 14. Februar 2006, abgerufen am 28. März 2018 (englisch).
- IBM DB2 LUW V9 Administration Guide Implementation Kapitel 1. Hier findet man Hinweise für die Handhabung mehrerer DB2-Installationen mit derselben oder mit unterschiedlicher Version. Es wird erläutert, was zu beachten ist beim Einsatz in eingebetteten Systemen.
- Axion Development Team: Axion: Java Database Engine. Abgerufen am 28. März 2018 (englisch).
- Dev Get Started with ObjectBox. In: ObjectBox. Abgerufen am 3. Februar 2021 (amerikanisches Englisch).
- Daffodil-DB-Open-Source (Memento des Originals vom 10. Oktober 2007 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- quadcap.com (Memento des Originals vom 18. August 2007 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- raima.com
- smallsql.de
- transaction.de
- dataweb TurboDB