Article de reference

Base de données intégrée

Un système de base de données embarquée est un système de gestion de base de données (SGBD) étroitement intégré à un logiciel d'application et faisant partie intégrante de l'app...

Un système de base de données embarquée est un système de gestion de base de données (SGBD) étroitement intégré à un logiciel d'application et faisant partie intégrante de l'application plutôt que d'être fourni comme un système autonome. Il s'agit d'une vaste catégorie technologique qui comprend :

Le terme « embarqué » est parfois employé pour désigner une utilisation sur des dispositifs embarqués (contrairement à la définition donnée ci-dessus). Cependant, seule une petite partie des systèmes de bases de données embarquées est utilisée dans les systèmes embarqués temps réel, tels que les commutateurs de télécommunications et l’électronique grand public . (Voir « bases de données mobiles » pour les bases de données compactes utilisables sur des dispositifs embarqués.)

Mises en œuvre

Les principaux produits de bases de données embarquées comprennent, par ordre alphabétique :

Comparaison des moteurs de stockage

Serveur de base de données Advantage

Advantage Database Server (ADS) est un système de gestion de bases de données embarqué développé par Sybase. Il offre un accès aux données séquentiel indexé (ISAM) et relationnel et est compatible avec de nombreuses plateformes, notamment Windows, Linux et Netware. Il est disponible en tant que base de données locale (serveur de fichiers) sans redevance ou en tant que système client-serveur complet. ADS est hautement évolutif, ne nécessite aucune administration et prend en charge divers environnements de développement intégrés (IDE), tels que .NET Framework (.NET), Object Pascal ( Delphi ) et Visual FoxPro , ainsi que des langages de programmation comme PHP , Visual Basic (VB), Visual Objects (VO), Vulkan , Clipper , Perl , Java et xHarbour.

Apache Derby

Apache Derby est un moteur de base de données SQL embarqué, entièrement écrit en Java. Transactionnel et prenant en charge l'accès multi-utilisateurs, il est distribué sous licence Apache et fait l'objet d'une maintenance active. Il est également inclus dans le kit de développement Java SE (JDK) d'Oracle sous le nom de Java DB.

Base de données embarquée Empress

Empress Embedded Database a été développé par Empress Software, Inc., une société privée fondée en 1979. Ce système de gestion de bases de données relationnelles est intégré à de nombreuses applications, notamment des systèmes médicaux, des routeurs réseau, des systèmes de surveillance de centrales nucléaires et des systèmes de gestion de satellites. Empress est un moteur de base de données SQL conforme aux propriétés ACID , doté d'API pour C, C++ , Java, JDBC , ODBC, SQL , ADO.NET et d'API au niveau du noyau . Les applications développées à l'aide de ces API peuvent être exécutées en mode autonome ou client-serveur. Empress Embedded Database fonctionne sous Linux, Unix , Microsoft Windows et les systèmes d'exploitation temps réel .

Moteur de stockage extensible

Extensible Storage Engine (ESE) est une technologie de stockage de données ISAM développée par Microsoft. Composant essentiel de Microsoft Exchange Server et d'Active Directory, elle permet aux applications de stocker et de récupérer des données grâce à un accès indexé et séquentiel. ESE est également utilisé par Windows Mail et la Recherche du Bureau dans Windows Vista pour stocker respectivement les index et les informations de propriété.

eXtremeDB

eXtremeDB , lancé par McObject LLC en tant que base de données embarquée en mémoire, a été conçu spécifiquement pour les systèmes embarqués temps réel. Le produit initial a ensuite été complété par eXtremeDB High Availability (HA) pour les applications tolérantes aux pannes . La famille eXtremeDB comprend désormais des éditions 64 bits et avec journalisation des transactions , ainsi que l'édition hybride eXtremeDB Fusion, qui combine le stockage de données en mémoire et sur disque. En 2008, McObject a introduit eXtremeDB Kernel Mode, un SGBD embarqué conçu pour s'exécuter au sein du noyau d'un système d'exploitation .

eXtremeDB est utilisé dans les systèmes temps réel et embarqués du monde entier. McObject propose également Perst , une base de données embarquée open source et orientée objet pour Java, Java ME , .NET, .NET Compact Framework et Silverlight .

Firebird intégré

Firebird Embedded est un moteur de base de données relationnelle et une version open source dérivée d'InterBase. Conforme aux propriétés ACID , il prend en charge les déclencheurs et les procédures stockées, et est disponible sous Linux, macOS et Windows. Il offre les mêmes fonctionnalités que les versions Classic et SuperServer de Firebird . À partir de Firebird 2.5, plusieurs applications ou threads peuvent accéder simultanément à la même base de données. Firebird Embedded agit comme un serveur local pour un client mono-thread accédant à ses bases de données. Par exemple, cela permet aux applications web ASP.NET de fonctionner correctement, car chaque utilisateur s'exécute dans un thread distinct ; deux utilisateurs peuvent donc accéder simultanément à la même base de données sans conflit. Firebird Embedded exporte les points d'entrée de l'API Firebird standard. Contrairement aux bases de données SQLite ou Access, les bases de données Firebird Embedded peuvent être migrées vers un serveur Firebird complet sans modification et sont multiplateformes, fonctionnant sous Linux et macOS avec une prise en charge complète d'ASP.NET Mono.

Bien qu'il puisse fonctionner au sein d'un processus d'application, Firebird n'est pas véritablement embarqué car il ne peut pas être lié statiquement.

H2

H2 est un moteur de base de données open source écrit en Java. Il prend en charge les modes embarqué et serveur, ainsi que le clustering, et peut s'exécuter dans l' environnement Google App Engine . Il prend en charge le chiffrement des fichiers de base de données à l'aide d'AES ou de XTEA.

Le développement de H2 a commencé en mai 2004 et sa première publication a eu lieu le 14 décembre 2005. H2 est sous double licence et est disponible sous une version modifiée de la licence publique Mozilla (MPL) ou sous la licence publique Eclipse (EPL) 1.0 non modifiée.

HailDB, anciennement InnoDB intégré

HailDB est une version autonome et intégrable du moteur de stockage InnoDB. Basé sur le même code source qu'InnoDB, il intègre de nombreuses fonctionnalités similaires, telles que des performances et une évolutivité élevées, le contrôle de concurrence multiversion (MVCC), le verrouillage au niveau des lignes, la détection des interblocages, la tolérance aux pannes et la récupération automatique après incident.

HailDB, moteur embarqué indépendant de MySQL, ne nécessite aucun composant serveur tel que la gestion du réseau ou des permissions au niveau des objets. En éliminant la surcharge liée au serveur MySQL, il présente une empreinte mémoire réduite et se prête parfaitement à l'intégration dans des applications exigeant des performances et une concurrence élevées.

Comme de nombreux systèmes de bases de données embarquées, HailDB est conçu pour être accessible principalement via une API C de type ISAM plutôt que via SQL, bien qu'une variante SQL limitée soit prise en charge.

Le projet n'est plus maintenu depuis 2015.

HSQLDB

HSQLDB est un système de gestion de bases de données relationnelles open source, distribué sous une licence de type BSD , qui s'exécute au sein de la même machine virtuelle Java que l'application embarquée. Il prend en charge différents modes de stockage (en mémoire et sur disque), Unicode et SQL Server 2016.

InfinityDB

InfinityDB est un système de stockage clé-valeur hiérarchique et trié. Il est disponible en versions chiffrée et client-serveur. Cette base de données prend en charge les transactions et la compression des données, et fonctionne dans un seul fichier, ce qui simplifie le déploiement et réduit l'administration au minimum.

Les API comprennent l'interface ItemSpace, une vue ConcurrentNavigableMap et la prise en charge de JSON. Le composant RemoteItemSpace peut rediriger les appels d'API intégrés vers d'autres instances de base de données. L'édition client-serveur inclut un serveur de servlets léger, des outils d'administration et de navigation de base de données web, ainsi que la prise en charge de REST pour Python.

Serveur dynamique Informix

Informix Dynamic Server (IDS) est un serveur de base de données embarqué de classe entreprise qui combine des caractéristiques telles qu'une faible empreinte, la programmabilité et des capacités autonomes avec des fonctionnalités de base de données d'entreprise, notamment la haute disponibilité et la réplication flexible. IDS est utilisé dans des scénarios embarqués tels que les systèmes de traitement des appels de téléphonie IP, les applications de point de vente et les systèmes de traitement des transactions financières.

InterBase

InterBase est une base de données SQL multiplateforme compatible Unicode, intégrable dans des applications clés en main. Elle prend en charge le multiprocesseur symétrique (SMP), le chiffrement AES-256 sur disque, la conformité SQL-92 et les propriétés ACID, et est disponible sur les plateformes Windows, macOS, Linux, Solaris, iOS et Android.

InterBase est utilisé aussi bien dans les PME que dans les grandes entreprises, et prend en charge le développement d'applications mobiles et multi-utilisateurs. InterBase Light est une version gratuite conçue pour les appareils mobiles et adaptée aux applications mobiles. Les entreprises peuvent passer à une version payante lorsque leurs besoins en fonctionnalités, telles que la gestion des changements et la sécurité, augmentent. InterBase est utilisé dans des secteurs comme la défense, l'aéronautique, le pétrole et le gaz, et l'industrie manufacturière.

Kùzu

Kùzu est un système de gestion de bases de données graphiques intégrable qui prend en charge le langage de requête Cypher . Il met en œuvre un ensemble de techniques de stockage, d'indexation et de traitement des requêtes de pointe, existantes et nouvelles pour prendre en charge la gestion et l'interrogation de grands graphes.

Kùzu atteint ses performances grâce à une combinaison d'algorithmes de jointure, notamment les jointures binaires et optimales dans le pire des cas , ainsi que la factorisation et l'exécution vectorisée des requêtes sur une couche de stockage en colonnes , sans oublier les techniques de compression et de parallélisation courantes dans les systèmes de bases de données modernes. Kùzu est développé et maintenu par Kùzu Inc., une jeune entreprise basée à Waterloo, en Ontario, au Canada, et est disponible en tant que logiciel libre sous licence MIT .

LevelDB

LevelDB est un système de stockage clé-valeur ordonné créé par Google, offrant une implémentation compacte du modèle de stockage Bigtable . Il est fourni sous forme de bibliothèque, avec une API native en C++. Il inclut également des wrappers C officiels pour la plupart des fonctionnalités, et des wrappers tiers sont disponibles pour des langages tels que Python , PHP , Go , Node.js et Objective-C.

Google distribue LevelDB sous la nouvelle licence BSD .

LMDB

Lightning Memory-Mapped Database (LMDB) est une base de données clé-valeur mappée en mémoire, développée pour le projet OpenLDAP . Écrite en C, son API s'inspire de celle de Berkeley DB , tout en étant simplifiée. La bibliothèque est compacte et se compile généralement en moins de 40 Ko de code objet x86.

LMDB implémente les arbres B+ avec contrôle de concurrence multiversion (MVCC), un stockage à un seul niveau , la copie sur écriture et offre des transactions ACID complètes sans interblocage. Il est optimisé pour une concurrence de lecture élevée : les lecteurs ne nécessitent aucun verrou, ne bloquent pas les écrivains et inversement, ce qui permet une mise à l’échelle linéaire des performances de lecture sur plusieurs threads et cœurs de processeur. Des wrappers tiers sont disponibles pour C++ , Erlang et Python . LMDB est distribué sous la licence publique OpenLDAP. Depuis 2013, le projet OpenLDAP a déprécié l’utilisation de Berkeley DB au profit de LMDB.

Mimer SQL

Mimer SQL est un serveur de base de données relationnelle propriétaire. Une version embarquée, sans maintenance, est disponible. Grâce à sa conception modulaire, elle offre une empreinte mémoire réduite, une prise en charge complète de la norme SQL et des ports pour Windows , Linux , Automotive Grade Linux , Android , QNX , INTEGRITY et d'autres plateformes.

MonetDB/e

MonetDB/e est la version embarquée du moteur de stockage de données colonnes SQL open source MonetDB. Elle est disponible pour C, C++, Java (JDBC) et Python, et distribuée sous la licence MonetDB, basée sur MPL 2.0. Son prédécesseur, MonetDBLite (pour R, Python et Java), n'est plus maintenu et a été remplacé par MonetDB/e.

Bibliothèque serveur embarquée MySQL

La bibliothèque serveur MySQL embarquée offre la plupart des fonctionnalités du serveur MySQL standard sous forme de bibliothèque exécutable dans le contexte d'un processus client. Après initialisation, les clients peuvent utiliser les mêmes appels d'API C que lors de la communication avec un serveur MySQL distinct, mais avec une surcharge de communication réduite et sans nécessiter de processus de base de données séparé.

NexusDB

NexusDB est la version commerciale de la base de données FlashFiler, désormais libre de droits. Ces deux bases de données peuvent être intégrées aux applications Delphi pour créer des exécutables autonomes offrant toutes les fonctionnalités d'une base de données.

ObjectDB

ObjectDB est une base de données objet pour Java qui peut être utilisée en mode client-serveur ou en mode embarqué (dans le processus).

Base de données Oracle Berkeley

La base de données embarquée d'Oracle est Berkeley DB , acquise auprès de Sleepycat Software. Développée initialement à l'Université de Californie, Berkeley DB est une base de données embarquée rapide et open source, utilisée dans plusieurs produits open source de renom, tels que les systèmes d'exploitation Linux et BSD Unix, le serveur web Apache et la suite bureautique OpenOffice. Ces dernières années, certains projets ont opté pour Lightning Memory-Mapped Database (LMDB) , vantant ses meilleures performances dans des cas d'utilisation clés, sa conception plus simple (principe du « moins, c'est plus ») et les modifications apportées à la licence de Berkeley DB.

RocksDB

RocksDB a été créé par Facebook comme une version dérivée de LevelDB . Axé sur la performance, notamment sur les disques SSD , il intègre de nombreuses fonctionnalités, telles que les transactions , les sauvegardes , les instantanés , les filtres de Bloom , les familles de colonnes , l'expiration, des opérateurs de fusion personnalisés, une compaction plus paramétrable, la collecte de statistiques et l'indexation géospatiale. Il est utilisé comme moteur de stockage dans plusieurs autres bases de données, notamment ArangoDB , Ceph , CockroachDB , MyRocks , Rocksandra, TiKV et YugabyteDB .

solidDB

SolidDB est une base de données relationnelle hybride (disque/mémoire) souvent utilisée comme base de données embarquée dans les équipements de télécommunications, les logiciels réseau et autres applications similaires. Sa technologie en mémoire permet un débit de plusieurs dizaines de milliers de transactions par seconde, avec des temps de réponse de l'ordre de la microseconde. Une option de haute disponibilité maintient deux copies synchronisées des données. En cas de panne système, les applications peuvent rétablir l'accès à SolidDB en moins d'une seconde, sans perte de données.

SQLite

SQLite est une bibliothèque logicielle qui fournit un moteur de base de données SQL transactionnel, autonome, sans serveur et ne nécessitant aucune configuration. C'est le moteur de base de données SQL le plus répandu au monde. Son code source, écrit principalement en C, est dans le domaine public. SQLite inclut une bibliothèque C native et un client en ligne de commande simple pour la gestion de sa base de données. Il est intégré à plusieurs systèmes d'exploitation, notamment Android , FreeBSD , iOS , macOS et Windows 10 , et est également utilisé par le navigateur web Chromium et ses dérivés.

SQL Server Compact

SQL Server Compact est une base de données embarquée de Microsoft offrant des fonctionnalités telles que les connexions multiprocessus, T-SQL, ADO.NET Sync Services pour la synchronisation avec les bases de données back-end, la réplication de fusion avec SQL Server et des API de programmation comme LINQ to SQL , LINQ to Entities et ADO.NET. Ce produit fonctionne sur les plateformes Windows de bureau et mobiles. Il est utilisé en production depuis longtemps. SQL Server Compact a connu plusieurs changements de nom et a été commercialisé sous différentes appellations, notamment SQL CE, SQL Server CE, SQL Server Mobile et SQL Mobile.