Was ist eine eingebettet ?

Was ist eine eingebettet von Actian Corp?

Eine eingebettet ist ein Datenbankmanagementsystem (DBMS), das nicht als separater, eigenständiger Serverprozess, sondern als integraler Bestandteil einer Anwendung läuft. Anstatt über eine Netzwerkverbindung mit einem externen Datenbankserver zu kommunizieren, greift die Anwendung direkt über eine Bibliothek oder API auf die Datenbank-Engine zu, die in die Anwendung selbst kompiliert oder mit dieser gebündelt ist.

eingebettet werden manchmal auch als „In-Process-Datenbanken“ bezeichnet, da die Datenbank-Engine im selben Prozess wie die Anwendung läuft und somit kein Overhead durch die Kommunikation zwischen Prozessen entsteht.


Wesentliche Merkmale einer eingebettet

  • Kein separater Serverprozess. Die Datenbank-Engine ist Teil der Anwendungsdatei oder wird zur Laufzeit als gemeinsam genutzte Bibliothek geladen. Es gibt keinen Daemon und keinen Dienst, der verwalten installiert, konfiguriert oder verwalten werden muss.
  • Lokale Speicherung. Die Daten werden auf dem lokalen Dateisystem des Host-Geräts gespeichert, nicht auf einem Remote-Server.
  • Anwendungsgesteuerter Lebenszyklus. Die Datenbank wird beim Start der Anwendung gestartet und beim Beenden der Anwendung beendet.
  • Minimaler Konfigurationsaufwand. Da es keinen Server gibt, der feinabstimmen muss, erfordern eingebettet in der Regel nur wenig oder gar keinen Eingriff durch einen Datenbankadministrator.
  • Geringer Ressourcenbedarf. Entwickelt für Umgebungen mit begrenzten Ressourcen wie Edge-Geräte, mobile Anwendungen und Desktop-Software.

Wie sich eingebettet von Client-Server-Datenbanken unterscheiden

eingebettet Datenbank Client-Server-Datenbank
Architektur In Bearbeitung, Teil des Antrags Separater Serverprozess
Internetverbindung erforderlich Nein Ja (TCP/IP oder Socket)
Komplexität der Einrichtung Minimal – zusammen mit der App bereitstellen Erfordert die Installation und Konfiguration eines Servers
Gleichzeitige Benutzer In der Regel eine Anwendungsinstanz Viele gleichzeitige Clients
Am besten geeignet für Desktop-Anwendungen,IoT , Mobilgeräte, Kiosksysteme Nutzer in Unternehmen
Verwaltung Selbstverwaltet oder anwendungsverwaltet Erfordert einen DBA oder Systemadministrator

Allgemeine Anwendungsfälle

  • Desktop- und Workstation-Anwendungen. Kassenterminals (POS), Tools zur Bestandsverwaltung und CAD-Software einbetten häufig einbetten integrierte Datenbank, um lokale Arbeitsdaten ohne Netzwerkabhängigkeit zu speichern.
  • Edge- und IoT . Industrielle Steuerungen, medizinische Geräte und intelligente Sensoren nutzen eingebettet , um abfragen am Edge Aufzeichnung abfragen , bevor sie optional mit einem zentralen Speicher synchronisiert werden.
  • Mobile Anwendungen. Smartphone- und Tablet-Apps nutzen eingebettet , um eine Offline-fähige Datenspeicherung auf dem Gerät zu ermöglichen.
  • Kiosk- und Self-Service . Standalone-Kiosksysteme (Geldautomaten, Fahrkartenautomaten, Digital Signage) sind auf eingebettet angewiesen, da sie ohne ständige Serververbindung betrieben werden.
  • Entwicklung und Tests.eingebettet werden häufig als ressourcenschonende Ersatzlösungen während der Entwicklung und in Continuous-Integration-Pipelines eingesetzt, bei denen der Betrieb eines vollständigen Datenbankservers nicht praktikabel ist.
  • Standardsoftware oder OEM . Unabhängige Softwareanbieter (ISVs) einbetten Datenbank in ihre Produkte einbetten , sodass Kunden eine vollständige, in sich geschlossene Lösung erhalten, ohne ein separates DBMS anschaffen und verwalten zu müssen.

Wichtige Begriffe im Zusammenhang mit eingebettet

In-Process-Datenbank
Eine Datenbank, deren Engine innerhalb desselben Betriebssystemprozesses wie die Anwendung läuft und denselben Speicherbereich nutzt. Alle Funktionsaufrufe erfolgen lokal, wodurch Netzwerklatenz vollständig vermieden wird.

Wartungsfreie Datenbank
Eine Datenbank, die so konzipiert ist, dass sie keine manuelle Konfiguration, Optimierung oder Wartung erfordert. Die Anwendung verwaltet alle Aspekte des Datenbanklebenszyklus, wodurch sie sich für Bereitstellungen ohne dedizierte Datenbankadministratoren eignet.

ACID-Konformität
Atomizität, Beständigkeit, Isolation und Langlebigkeit die vier Eigenschaften, die eine zuverlässige Transaktionsverarbeitung gewährleisten. Eine eingebettet für den Produktiveinsatz muss ACID-konform sein, um die Datenintegrität auch nach einem Stromausfall oder einem Anwendungsabsturz zu gewährleisten.

SQL-Unterstützung
Viele eingebettet stellen eine Standard-SQL-Schnittstelle bereit, sodass Entwickler abfragen gewohnte abfragen verwenden können und Schema sowie abfragen mit einer zugehörigen serverseitigen Datenbank gemeinsam genutzt werden können.

ISAM (Indexed Sequential Access Method)
Ein Verfahren zur Dateiverwaltung und -speicherung, das von einigen eingebettet (einschließlich Actian PSQL) verwendet wird, um über Indizes einen schnellen, direkten Zugriff auf Datensätze zu ermöglichen. ISAM-Engines eignen sich besonders gut für transaktionsintensive Arbeitslasten auf Hardware mit begrenzten Ressourcen.

Btrieve
Der ursprüngliche Aufzeichnung , der von Novell (später von Pervasive Software, heute Actian) entwickelt wurde und die Grundlage für das heutige Actian PSQL bildete. Btrieve war Vorreiter beim Konzept einer schlanken, einbettbaren transaktionalen Daten-Engine und ist eine der am längsten im produktiven Einsatz befindlichen eingebettet .

OEM
Ein Lizenzmodell, bei dem ein USV eine Datenbank-Engine eines Drittanbieters in sein eigenes Produkt USV und dieses an Endkunden ausliefert. eingebettet werden häufig im Rahmen von OEM vertrieben, da der Nutzer direkt mit der Datenbank interagiert.


Vorteile von eingebettet

  • Vereinfachte Deployment. Durch die Bereitstellung eines einzigen Anwendungsinstallationsprogramms entfällt für Kunden die Notwendigkeit, einen separaten Datenbankserver zu installieren, zu lizenzieren und zu konfigurieren.
  • Geringere Gesamtbetriebskosten. Für lokale Bereitstellungen sind weder Server-Hardware noch ein Remote-DBA noch eine Netzwerkinfrastruktur erforderlich.
  • Hohe Leistung für lokale Workloads. Durch den Wegfall des Netzwerkstacks und der Interprozesskommunikation lässt sich die Latenz bei Workloads mit einer einzigen Anwendung und hochfrequenten Transaktionen drastisch reduzieren.
  • Offline-Betrieb.eingebettet funktionieren ohne Netzwerkverbindung und eignen sich daher ideal für Feldgeräte, isolierte Umgebungen und Standorte mit unzuverlässiger Verbindung.
  • Konsistentes Verhalten. Da die Datenbankversion im Lieferumfang der Anwendung enthalten ist, besteht kein Risiko, dass ein Server-Upgrade das Verhalten der Anwendung unerwartet beeinträchtigt.

Einschränkungen eingebettet

  • Gültigkeitsbereich für eine einzelne Anwendung. Die meisten eingebettet sind für den Zugriff durch jeweils eine Anwendung auf einem Rechner ausgelegt.Zustimmung Nutzer Zustimmung ein Netzwerk wird in der Regel durch eine begleitende Client-Server-Edition gewährleistet.
  • Begrenzte horizontale Scalability. eingebettet lassen sich vertikal mit der Host-Hardware skalieren, nicht jedoch horizontal über verteilte Knoten hinweg.
  • Nicht für die zentralisierte Berichterstellung geeignet. Die Aggregation von Daten aus vielen eingebettet erfordert eine ETL- oder Synchronisationsschicht, um die Daten für ein unternehmensweites Reporting in einen zentralen Speicher zu übertragen.

eingebettet vs. In-Memory

Eine in-memory speichert ihre Arbeitsdaten hauptsächlich im RAM, um eine maximale Lese- und Schreibleistung zu erzielen, und kann Daten auf Festplatte persistieren oder auch nicht. Eine eingebettet definiert sich eher durch ihre Architektur (In-Process, kein separater Server) als durch ihr Speichermedium – eine eingebettet kann Daten auf Festplatte, im Arbeitsspeicher oder beides speichern. Die beiden Konzepte sind orthogonal: Eine Datenbank kann sowohl eingebettet als auch in-memory sein oder eingebettet festplattenbasierter Persistenz.


Häufig gestellte Fragen

Ist SQLite eine eingebettet ?
Ja. SQLite ist eine der weltweit am häufigsten eingesetzten eingebettet und wird in großem Umfang in mobilen Anwendungen, Browsern und Entwicklungstools verwendet. Die gesamte Datenbank wird in einer einzigen plattformübergreifenden Datei gespeichert.

Kann eine eingebettet mehrere Benutzer unterstützen?eingebettet sind in der Regel für eine einzelne Anwendungsinstanz auf einem einzelnen Rechner ausgelegt. Viele Anbieter – darunter auch Actian – bieten eine Client-Server-Edition derselben Kern-Engine an, die Fähigkeiten eingebettet Fähigkeiten Nutzer und Netzwerkumgebungen ausweitet, ohne dass Entwickler ihren Anwendungscode ändern müssen.

Wie geht eine eingebettet bei der Wiederherstellung nach einem Absturz vor? Eine produktionsreife eingebettet nutzt Write-Ahead-Logging (WAL) oder einen vergleichbaren Journaling-Mechanismus, um sicherzustellen, dass vor einem Absturz festgeschriebene Transaktionen wiederherstellbar sind und unvollständige Transaktionen beim Neustart zurückgesetzt werden.

Was ist der Unterschied zwischen einer eingebettet und einer dateibasierten Datenbank? Alle eingebettet speichern Daten in Dateien, aber nicht jeder dateibasierte Speicher gilt als Datenbank. Eine Datenbank bietet zusätzlich zum DateispeicherFähigkeiten strukturierte abfragen , Indizierung, Transaktionsmanagement und Zustimmung . Eine einfache Flatfile oder CSV-Datei verfügt darüber nicht.


Informationen zu Actian PSQL, der speziell entwickelten eingebettet Client-Server-Transaktionsdatenbank von Actian, finden Sie unter actian.com.

FAQ

Eine eingebettet ist ein Datenbankmanagementsystem (DBMS), das nicht als separater, eigenständiger Serverprozess, sondern als integraler Bestandteil einer Anwendung ausgeführt wird. Der Zugriff auf die Datenbank-Engine erfolgt direkt über eine Bibliothek oder API, die in die Anwendung selbst kompiliert oder mit dieser gebündelt ist.

Eine eingebettet läuft als Teil des Anwendungsprozesses, benötigt keine Netzwerkverbindung und verwaltet sich selbst, während eine Client-Server-Datenbank als separater Serverprozess läuft, mit dem sich mehrere Clients über ein Netzwerk verbinden. eingebettet eignen sich am besten für Desktop-Anwendungen, Edge-Geräte und mobile Anwendungen, während Client-Server-Datenbanken fürNutzer in Unternehmen konzipiert sind.

eingebettet vereinfachen Deployment keine separate Installation eines Datenbankservers erforderlich ist, senken die Gesamtbetriebskosten, da keine Serverhardware und kein Datenbankadministrator benötigt werden, und bieten hohe Leistung für lokale Workloads, da der Overhead durch Netzwerk- und Interprozesskommunikation entfällt.

Ja. eingebettet speichern Daten lokal im Dateisystem des Host-Geräts und funktionieren auch ohne Netzwerkverbindung, wodurch sie sich gut für Feldgeräte, Air-Gap-Umgebungen und Standorte mit unzuverlässiger Netzwerkverbindung eignen.

Zu den gängigen Anwendungsfällen zählen Kassenterminals, Edge- und IoT , mobile Anwendungen, Self-Service , Entwicklungs- und Testpipelines sowie Softwarepakete, bei denen unabhängige Softwareanbieter eine vollständige, in sich geschlossene Lösung ausliefern müssen.

Nein. Eine eingebettet definiert sich eher durch ihre Architektur (In-Process, kein separater Server) als durch ihr Speichermedium und kann Daten auf Festplatte, im Arbeitsspeicher oder auf beiden speichern. Eine in-memory speichert Arbeitsdaten hauptsächlich im RAM, wobei diese beiden Konzepte voneinander unabhängig sind.

 

eingebettet sind in der Regel für eine einzelne Anwendungsinstanz auf einem einzelnen Rechner ausgelegt. Viele Anbieter, darunter auch Actian, bieten eine Client-Server-Edition derselben Kern-Engine an, die Fähigkeiten eingebettet Fähigkeiten Nutzer und vernetzte Bereitstellungen ausweitet, ohne dass Entwickler ihren Anwendungscode ändern müssen.

Eine eingebettet für den Produktiveinsatz nutzt Write-Ahead-Logging (WAL) oder einen vergleichbaren Journaling-Mechanismus, um sicherzustellen, dass vor einem Systemabsturz festgeschriebene Transaktionen wiederherstellbar sind und dass unvollständige Transaktionen beim Neustart zurückgesetzt werden.

eingebettet sind auf eine einzelne Anwendung auf einem einzelnen Rechner beschränkt, lassen sich eher vertikal als horizontal skalieren und eignen sich ohne eine zusätzliche ETL- oder Synchronisationsschicht nicht gut für ein zentralisiertes Reporting über viele Bereitstellungen hinweg.

OEM handelt es sich um ein Modell, bei dem ein unabhängiger Software-Vertriebspartner eine Datenbank-Engine eines Drittanbieters in sein eigenes Produkt unabhängiger Software-Vertriebspartner und dieses an Endkunden ausliefert, die niemals direkt mit der Datenbank interagieren. eingebettet werden häufig auf diese Weise vertrieben, da sie als transparente Komponente der Anwendung fungieren.