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.

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: DB2IBM 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. Informix MySQL

Liste von Datenbanken, die direkt in andere Applikationen eingebettet werden können: Axion – in Java implementierte Open-Source-DB Berkeley DB DBM db4o – Objektorientierte Datenbank (eingestellt) DuckDB – Spaltenorientierte Datenbank 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 One$DB – in Java implementierte Open-Source-Variante der DaffodilDBdaffodilsw.com: (englisch) Quadcap Embeddable Database (QED) von der Firma Quadcap Software, in Java implementierte Open-Source-Datenbankquadcap.com: (englisch) Raima RDM Embedded – Eingebettetes Datenbanksystem mit Schnittstellen zu C, C++, Javaraima.com SmallSQL – eine 100-%-pure-Java-Databasesmallsql.de SQLite – in C implementierte SQL-Datenbank, die sehr weit verbreitet ist Transbase – ein relationales SQL-Datenbanksystemtransaction.de TurboDB – eine SQL-Implementierung in ausschließlich verwaltetem .NET Codedataweb TurboDB

Siehe auch Eingebettetes System Firmware

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: intersystems.com (PDF) Craig Mullins: Empress Offers an Effective Embedded Database Solution.

Anmerkungen und Einzelnachweise

Kategorie:Datenbanken