Eingebettete Datenbank
Ein eingebettete Datenbank System ist a Datenbankverwaltungssystem (DBMS), das eng mit einem integriert ist Anwendungssoftware; Es ist in die Anwendung eingebettet. Es ist eigentlich eine breite Technologiekategorie, die umfasst
- Datenbanksysteme mit unterschiedlich Anwendungsprogrammierschnittstellen (Sql sowie proprietäre, einheimische APIs),
- Datenbankarchitekturen (Kundenserver und In-Prozess),
- Speichermodi (On-Tisk, in Erinnerungund kombiniert),
- Datenbankmodelle (relational, objektorientierter, Einheit -Wert -Wert -Wert -Modell, Netzwerk/Codasyl), und
- Zielmärkte.
Der Begriff eingebettete Datenbank kann verwirrend sein, da nur eine kleine Untergruppe eingebetteter Datenbankprodukte verwendet werden Echtzeit eingebettete Systeme wie zum Beispiel Telekommunikationsschalter und Unterhaltungselektronik Geräte.[1] (Sehen Mobile Datenbank Für Small-Footprint-Datenbanken, die auf eingebetteten Geräten verwendet werden könnten.)
Implementierungen
Zu den wichtigsten eingebetteten Datenbankprodukten gehören in alphabetischer Reihenfolge:
- Advantage Database Server von Sybase Inc.
- Berkeley DB von der Oracle Corporation
- CSQL von csqlcache.com
- Erweiterbarer Speichermotor Von Microsoft
- Extremedb von McObject
- FileMaker von Claris
- Feuervogel Eingebettet
- Hsqldb von hsqldb.org,
- Informix Dynamic Server (IDS) von IBM
- InfinityDB von Boiler Bay Inc.
- InnoDb von der Oracle Corporation
- Interbase (Sowohl Server als auch mobilfreundliche tief eingebettete Version) von Embarcadero -Technologien
- Lightning Memory-Caped-Datenbank (LMDB) von Symas Corp.
- Raima Database Manager aus Raima
- Soliddb
- Sqlite
- SQL Server Compact von der Microsoft Corporation
- Sophia eingebettete Schlüsselwertspeicherung
Vergleiche von Datenbankspeichermotoren
Advantage Database Server
Der Advantage Database Server (ADS) von Sybase ist ein eingebettetes Datenbankverwaltungssystem. Es bietet sowohl ISAM- als auch relationale Datenzugriff und ist mit mehreren Plattformen kompatibel, einschließlich Windows, Linux und Netware. Es ist als Lizenzgebührenfreie lokale Datei-Server-Datenbank oder eine vollständige Client-Server-Version erhältlich. Anzeigen sind sehr skalierbar, ohne Verwaltung, und unterstützt eine Vielzahl von IDES, einschließlich .NET Framework (.NETZ), Objekt Pascal (Delphi), Visual Foxpro (Foxpro), Php, Visual Basic (VB), Visuelle Objekte (Vo), Vulkan, Clipper, Perl, Java, Xharbour, etc.
Apache Derby
Derby ist eine eingebettete SQL -Engine, die vollständig in Java geschrieben wurde. Derby ist ein ausgereiftes Engine und wird unter der Apache-Lizenz frei verfügbar und wird aktiv gewartet. Derby -Projektseite. Es wird auch als Teil des Java SE -Entwicklungskits (JDK) von Oracle unter dem Namen Java DB verteilt.
Empress eingebettete Datenbank
Empress Software, Inc., Entwickler der Empress eingebettete Datenbank, ist eine in Privatbesitz befindliche Firma, die 1979 gegründet wurde. Kaiser-Embedded-Datenbank ist eine voll funktionsfähige relationale Datenbank, die von Organisationen klein bis groß in Anwendungen eingebettet wurde, mit Einsatzumgebungen wie medizinischer Systeme, Netzwerkrouter, Kernkraftwerksmonitoren, Satellitenmanagement Systeme und andere eingebettete Systemanwendungen, die Zuverlässigkeit und Leistung erfordern.[2] Kaiserin ist ein SÄURE konform, Sql Datenbankmotor mit C, C ++, Java, JDBC, ODBC, Sql, Ado.net und Kernelebene Apis. Anwendungen, die mit diesen APIs entwickelt wurden, können in Standalone- und/oder Server -Modi ausgeführt werden. Empress eingebettete Datenbank läuft unter Linux, Unix, Microsoft Windows und Echtzeit-Betriebssysteme.
Erweiterbarer Speichermotor
ESE ist eine ISAM -Datenspeichertechnologie (Indexed Sequential Access Method) von Microsoft. ESE ist insbesondere ein Kern von Microsoft Exchange Server und Active Directory. Sein Zweck ist es, Anwendungen zu ermöglichen, Daten über indizierten und sequentiellen Zugriff zu speichern und abzurufen. Windows Mail- und Desktop -Suche im Windows Vista -Betriebssystem nutzen auch ESE zum Speichern von Indizes bzw. Eigenschaftsinformationen.
Extremedb
McObject LLC wurde gestartet Extremedb als erste in-memory-eingebettete Datenbank, die für in Echtzeit eingebettete Systeme von Grund auf neu entwickelt wurde. Das ursprüngliche Produkt wurde bald durch extremedB hohe Verfügbarkeit (HA) für begleitet Fehlertoleranz Anwendungen. Die Produktfamilie umfasst jetzt 64-Bit und Transaktionsprotokollierung Editionen und die hybride extremedb Fusion, die in Memory- und On-Diisk-Datenspeicher kombiniert. Im Jahr 2008 führte McObject den ExtremedB -Kernel -Modus ein, das erste eingebettete DBMS, das für das Betriebssystem ausgelegt ist, Kernel.[3] Heute wird extremedB in Millionen von Echtzeit- und eingebetteten Systemen weltweit eingesetzt. McObject bietet auch an PRAST, ein Open Source, objektorientierte eingebettete Datenbank für Java, Java mich, .NETZ, .NET Compact Framework und Silberlicht.
Firebird eingebettet
Firebird Embedded ist eine relationale Datenbankmotor. Als Open Source -Gabel von Interbase ist es SÄURE Konform, unterstützt Auslöser und gespeicherte Verfahren und ist unter Linux-, OSX- und Windows -Systemen verfügbar. Es verfügt über die gleichen Funktionen wie die klassische und Superserver -Version von Firebird, zwei oder mehr Threads (und Anwendungen) können gleichzeitig mit Firebird 2.5 auf dieselbe Datenbank zugreifen. So fungiert Firebird Embedded als lokaler Server für einen Thread -Client, der auf seine Datenbanken zugreift (dh er funktioniert ordnungsgemäß für ASP.NET -Webanwendungen, da jeder Benutzer seinen eigenen Thread hat, was bedeutet Zeit, aber sie wären nicht im selben Thread, da ASP.NET für jeden Benutzer einen neuen Thread öffnet). Es exportiert die Standard -API -Einstiegspunkte von Firebird. Der Hauptvorteil von Firebird -eingebetteten Datenbanken besteht darin, dass sie im Gegensatz zu SQLite- oder Zugriffsdatenbanken an einen vollständigen Firebird -Server angeschlossen werden können, ohne dass auch Änderungen multiplattform sind (läuft unter Linux, OS X mit vollem ASP.NET -Mono -Support).
H2
Geschrieben in Java Open Source Sehr schnelle Datenbank -Engine. Eingebetteter und Servermodus, Clustering -Unterstützung, kann in der Ausführung des Ausgangs der Clustering Google App Engine. Unterstützt verschlüsselte Datenbankdateien (AES oder XTEA). Die Entwicklung von H2 wurde im Mai 2004 begonnen, wurde jedoch erstmals am 14. Dezember 2005 veröffentlicht. H2 ist doppelt lizenziert und unter einer modifizierten Version des MPL 1.1 (Mozilla Public Lizenz) oder unter der (unmodifizierten) EPL 1.0 (Eclipse Öffentliche Lizenz).
Wildb, früher eingebettete InnoDb
Haildb ist eine eigenständige, eingebettbare Form der InnoDB -Speichermotor. Angesichts der Tatsache, dass HAINDB auf derselben Codebasis wie der InnoDB Storage Engine basiert, enthält sie viele der gleichen Merkmale: Hochleistungs- und Skalierbarkeit, Multiversionskontrolle (MVCC), Verriegelung auf Reihenebene, Deadlock-Erkennung, Fehlertoleranz, automatische Absturzwiederherstellung usw. Da die eingebettete Engine jedoch völlig unabhängig von MySQL ist, fehlen Serverkomponenten wie Netzwerke, Berechtigungen auf Objektebene usw. Der MySQL-Server-Overhead, Innodb, hat einen kleinen Fußabdruck und ist gut geeignet, um Anwendungen einzubetten, für die Hochleistungs und Parallelität erforderlich ist. Wie bei den meisten eingebetteten Datenbanksystemen ist HAINDB für hauptsächlich mit einer ISAM-ähnlichen C-API anstelle von SQL ausgelegt (obwohl eine extrem rudimentäre SQL-Variante unterstützt wird).[4]
Das Projekt ist nicht mehr aufrechterhalten.[5]
Hsqldb
Hsqldb ist eine OpenSource Relationales Datenbank Management System Mit einer BSD-ähnlichen Lizenz, die in derselben java virtuellen Maschine wie die eingebettete Anwendung ausgeführt wird. HSQLDB unterstützt eine Vielzahl von In-Memory- und Disk-basierten Tabellenmodi Unicode und SQL: 2016.
InfinityDB
InfinityDB Embedded Java DBMS ist ein sortierter hierarchischer Schlüssel-/Wertspeicher. Es hat jetzt eine verschlüsselte Ausgabe und eine Client/Server -Edition. Die Multi-Kern-Geschwindigkeit ist patentiert. InfinityDB ist in einer einzelnen Datei für die Instantinstallation und die Verabreichung von Null sicher, transaktional, komprimiert und robust. APIs umfassen den einfachen schnellen 'itemsPace', eine gleichzeitige Ansicht von Concurrentnavigablemap und JSON. Ein RemoteItemspace kann die eingebetteten APIs transparent auf andere DB -Instanzen umleiten. Client/Server enthält einen leichten Servlet-Server, Web-Administrator und Datenbankbrows und Ruhe für Python.
Informix Dynamic Server
Informix Dynamic Server (IDS) wird als charakterisiert Enterprise Class Einbettbarer DatenbankserverKombinieren Sie eingebettete Funktionen wie niedrige Fußabdruck, programmierbare und autonome Funktionen mit Datenbankfunktionen der Unternehmensklassen wie hohe Verfügbarkeit und flexible Replikationsfunktionen.[6] IDS wird in tief eingebetteten Szenarien wie IP-Telefonie-Anrufverarbeitungssystemen, Point-of-Sale-Anwendungen und Finanztransaktionsverarbeitungssystemen verwendet.
Interbase
Interbase ist eine preisgekrönte IoT-plattformübergreifende, unicode-fähige SQL-Datenbankplattform, die in rechtzeitige Anwendungen eingebettet sein kann. Out of the Box SMP -Unterstützung und auf Festplattenstärke 256 -Bit -Verschlüsselung, SQL 92 & Acid Compliance und Unterstützung für Windows, Macintosh, Linux, Solaris, IOS und Android -Plattformen. Ideal für kleine bis mittlere und große Unternehmen, die Hunderte von Benutzern und mobile Anwendungsentwicklung unterstützen. Interbase Light ist eine kostenlose Version, die auf jedem mobilen Gerät verwendet werden kann und ideal für mobile Anwendungen ist. Unternehmen können zu einer kostenpflichtigen Version als Anforderungen für das Änderungsmanagement und die Sicherheitssteigerung wechseln. Interbase verfügt über eine hohe Einführung in den Bereichen Verteidigung, Luftraum, Öl und Gas und Fertigung.
Leveldb
LevelDB ist ein geordnetes Bestehen Schlüssel-/Wertspeicher erstellt von Google als leichte Implementierung der Großer Tisch Speicherdesign. Als Bibliothek (die die einzige Möglichkeit ist, LevelDB zu verwenden) ist seine native API C ++. Es enthält auch offizielle C -Verpackungen für die meisten Funktionen. API-Wrapper von Drittanbietern existieren für Python, Php, gehen (Pure GO LevelDB -Implementierung existiert, ist aber immer noch im Gange), Node.js und Ziel C. Google verteilt LevelDB unter dem Neue BSD -Lizenz.
Lmdb
Lightning Memory-Caped-Datenbank (LMDB) ist a Speichermaked Schlüsselwertdatenbank für die Openldap Projekt. Es ist in C geschrieben und die API ist nach dem modelliert Berkeley DB API, obwohl viel vereinfacht. Die Bibliothek ist extrem kompakt und kompiliert auf weniger als 40 KB X86 -Objektcode und ist normalerweise schneller als ähnliche Bibliotheken wie Berkeley DB, Leveldbusw. Die Bibliothek implementiert B+Bäume mit Multiversionskontrolle (MVCC), single-level store, Kopieren Sie auf Schreiben und bietet voll SÄURE Transaktionen ohne Deadlocks. Die Bibliothek ist für eine hohe Lesung optimiert. Leser brauchen überhaupt keine Schlösser. Leser blockieren keine Autoren und Autoren, die die Leser nicht blockieren. Lesen Sie daher die Performance -Skalen perfekt über willkürlich viele Threads und CPUs. Wrapper von Drittanbietern existieren für C ++, Erlang und Python. LMDB wird vom OpenLDAP -Projekt unter der OpenLDAP Public Lizenz verteilt. Ab 2013 verwertet das OpenLDAP -Projekt die Verwendung von Berkeley DB zugunsten von LMDB.
Mimer SQL
Eine eingebettete Null -Wartungsversion des proprietären Mimer SQL Relational Database Server ist verfügbar. Es hat einen kleinen Fußabdruck aufgrund seines modularen Designs, der vollständigen Unterstützung für den SQL -Standard und mit Ports zu Fenster, Linux, Linux der Automobilqualität, Android, Qnx, INTEGRITÄT, unter anderen.
Monetdb/e
Monetdb/e ist die eingebettete Version des Open Source Monetdb SQL Column Store Engine. Verfügbar für C, C ++, Java (JDBC) und Python. Monetdb -Lizenz basierend auf Mpl 2.0. Der Vorgänger Monetdblite (für R, Python und Java) ist nicht mehr aufrechterhalten. Es wird durch monetdb/e ersetzt.
MySQL Embedded Server Library
Das Embedded MySQL Server Library bietet die meisten Funktionen von regulärem MySQL als verknüpfbare Bibliothek, die im Kontext eines Kundenprozesses ausgeführt werden kann. Nach der Initialisierung können Clients dieselben C API -Aufrufe verwenden wie beim Gespräch mit einem separaten MySQL -Server jedoch mit weniger Kommunikationsaufwand und ohne separate Datenbankprozess.
Nexusdb
NexusDB ist der kommerzielle Nachfolger der FlashFiler Datenbank, die jetzt Open Source ist. Sie können beide in Delphi-Anwendungen eingebettet werden, um eigenständige ausführbare Funktionen mit vollständiger Datenbankfunktionalität zu erstellen.
Oracle Berkeley DB
Wie der Name schon sagt, ist die eingebettete Datenbank von Oracle tatsächlich tatsächlich Berkeley DB, welches Oracle von Sleepycat -Software erworben hat. Es wurde ursprünglich an der University of California entwickelt.[7] Berkeley DB ist eine schnelle Open-Source-eingebettete Datenbank und wird in mehreren bekannten Open-Source-Produkten verwendet, darunter Linux- und BSD UNIX-Betriebssysteme, Apache Web Server, OpenOffice Productivity Suite. In den letzten Jahren wechselten viele bekannte Projekte jedoch auf die Verwendung Lmdb, weil es Berkeley DB in Schlüsselszenarien vor dem Boden übertreffen "weniger ist mehr"Design, auch aufgrund der Änderung der Lizenz.[8]
Raima Database Manager
Raima Database Manager, produziert von Raima. Nach Raimas Definition ist das Produkt eingebettet In zwei Sinnen: Erstens ist es in eine Anwendung eingebettet und wird zu einer Erweiterung der Anwendung und zweitens ist es möglich, sie in eingebetteten Computer/Betriebssystemen oder in Echtzeitumgebungen aufgrund seines geringen Fußabdrucks und des effizienten Betriebs zu verwenden. Seine APIs (für C/C ++, SQL, JDBC, ODBC, ADO.NET und RESTful) wurden entwickelt, um die begrenzten Ressourcen der eingebetteten Umgebungen zu unterstützen.
Rocksdb
Rocksdb, erstellt bei Facebook, begann als Gabel von Leveldb.[9] Es konzentriert sich auf die Leistung, insbesondere auf SSDs. Es fügt viele Funktionen hinzu, einschließlich Transaktionen,[10] Backups,[11] Schnappschüsse,[12] Blütefilter,[13] Säulenfamilien,[14] Ablauf,[15] benutzerdefinierte Zusammenführungsbetreiber,[16] mehr abstimmbare Verdichtung,[17] Statistiksammlung,[18] und Geospatial Indexierung.[19] Es wird als Speichermotor in mehreren anderen Datenbanken verwendet, einschließlich Arangodb,[20] Ceph,[21] Kakerlachdb,[22] Mongorocks,[23] Myrocks,[24] Rocksandra,[25] Tikv.[26][27] und Yugabytedb.[28]
Soliddb
Solid DB ist eine hybride On-Disk/In-Memory-Datenbank und wird häufig als eingebettete Systemdatenbank in Telekommunikationsgeräten, Netzwerksoftware und ähnlichen Systemen verwendet. Die In-Memory-Datenbanktechnologie wird verwendet, um den Durchsatz von Zehntausenden von Transaktionen pro Sekunde mit den in Mikrosekunden gemessenen Antwortzeiten zu erreichen. Mit hoher Verfügbarkeitsoption werden jederzeit zwei Kopien der Daten synchronisiert. Bei Systemversagen können Anwendungen ohne Datenverlust in weniger als einer Sekunde den Zugriff auf solide DB wiederherstellen.
Sqlite
SQLite ist eine Softwarebibliothek, die eine in sich geschlossene, serverlose, null Konfiguration und transaktionaler SQL-Datenbank-Engine implementiert. SQLite ist die am weitesten verbreitete SQL -Datenbank -Engine der Welt. Der Quellcode, hauptsächlich C, für SQLite ist öffentlich zugänglich. Es enthält sowohl eine native C -Bibliothek als auch einen einfachen Befehlszeilenclient für seine Datenbank. Es ist in mehreren Betriebssystemen enthalten. Unter ihnen sind Android, Freebsd, iOS, Os x und Windows 10.[29]
SQL Server Compact
SQL Server Compact ist eine eingebettete Datenbank von Microsoft mit einer Vielzahl von Funktionen wie Multi-Process-Verbindungen, T-SQL, ADO.NET-Synchronisierungsdiensten, um mit jeder Back-End-Datenbank zu synchronisieren. Linq zu SQL, Linq zu Entitäten, ado.net. Das Produkt läuft sowohl auf Desktop- als auch auf mobilen Windows -Plattformen. Es ist seit langem auf dem Markt und verwendet von vielen Unternehmen in der Produktionssoftware (Fallstudien). Das Produkt hat mehrere Neuverzögerung durchlaufen und war mit mehreren Namen wie: SQL CE, SQL Server CE, SQL Server Mobile, SQL Mobile bekannt.
Siehe auch
- In-Memory-Datenbank, Hauptspeicherdatenbank
- Mobile Datenbank
Verweise
- ^ Gräber, Steve. "COTS -Datenbanken für eingebettete Systeme" Archiviert 2007-11-14 bei der Wayback -Maschine, Embedded Computing Design Magazin, Januar 2007. Abgerufen am 13. August 2008.
- ^ Mullins, Craig. "Empress bietet eine effektive eingebettete Datenbanklösung", 2005. Abgerufen am 2008-12-09 abgerufen
- ^ Gorine, Andrei und Krivolapov, Alexander. "Kernel-Modus-Datenbanken: Eine DBMS-Technologie für Hochleistungsanwendungen", Dr. Dobbs Journal, April 2008. Abgerufen am 13. August 2008.
- ^ Haildb Homepage
- ^ Herstellung von Holildb, Von Stewart Smith am 19. August 2015, Weltb
- ^ "Einbettung von Informix Dynamic Server", Abgerufen am 30. August 2009.
- ^ Sehen Berkeley DB
- ^ Niccolai, James. "Update: Oracle kauft Sleepycat Open-Source-Datenbankanbieter" Archiviert 2008-06-13 bei der Wayback -Maschine, "Infoworld", 2006-02-14. Abgerufen am 12. Juni 2008.
- ^ "Rocksdb -Grundlagen". GitHub. Abgerufen 2018-07-19.
- ^ "RocksDB -Transaktionen". GitHub. Abgerufen 2016-04-04.
- ^ "Wie kann man RocksDB unterstützen?". GitHub. Abgerufen 2017-07-19.
- ^ "Kontrollpunkte". GitHub. Abgerufen 2017-07-19.
- ^ "Rocksdb Bloom Filter". GitHub. Abgerufen 2016-04-04.
- ^ "Säulenfamilien in Rocksdb". GitHub. Abgerufen 2016-04-04.
- ^ "Rocksdb TTL Support". GitHub. Abgerufen 2016-04-04.
- ^ "RocksDB Merge -Operator". GitHub. Abgerufen 2016-04-04.
- ^ "Universelle Verdichtung". GitHub. Abgerufen 2016-04-04.
- ^ "RocksDB -Perf -Kontext und IO -Statistiken Kontext". GitHub. Abgerufen 2016-04-04.
- ^ "Raumindexierung in Rocksdb". Rocksdb.org. Abgerufen 2018-07-19.
- ^ "Vergleich neuer RocksDB- und MMFiles -Speichermotoren". Abgerufen 2018-07-19.
- ^ "Speichergeräte - CEPH -Dokumentation". Abgerufen 2018-07-19.
- ^ "Speicherschicht - Kakerlachdb". Abgerufen 2018-07-19.
- ^ "MongoDB-Partner/Mongo-Rocks: MongoDB-Speicher-Integrationsschicht für die Stors Storage Engine". GitHub. Abgerufen 2018-07-19.
- ^ "Myrocks - eine RocksDB -Speichermotor mit MySQL". Abgerufen 2018-07-19.
- ^ "Open-Sourcing Eine 10-fache Verringerung der Apache Cassandra Tail Latenz". 5. März 2018. Abgerufen 2018-07-19.
- ^ "Rocksdb in Tikv - PingCap". Abgerufen 2018-07-19.
- ^ "Ein Blick in die Welt der eingebetteten Datenbank feat. Rocksdb". 21. November 2019.
- ^ Bautin, Mikhail (2019-02-20). "Wie haben wir einen Hochleistungsdokumentengeschäft auf RocksDB gebaut?". Der verteilte SQL -Blog. Abgerufen 2022-01-09.
- ^ Antwort, Usman (29. Oktober 2015). "Versenden Sie eine neue Denkweise mit SQLite in Windows 10". Microsoft. Archiviert von das Original Am 2016-01-31. Abgerufen 6. März 2016.