stringtranslate.com

Base de datos integrada

Un sistema de base de datos integrado es un sistema de gestión de bases de datos (DBMS) que está estrechamente integrado con un software de aplicación ; está integrado en la aplicación (en lugar de presentarse como una aplicación independiente). Es una categoría tecnológica amplia que incluye: [1]

Nota: El término “integrado” a veces se puede utilizar para referirse al uso en dispositivos integrados (en contraposición a la definición dada anteriormente). Sin embargo, solo un pequeño subconjunto de productos de bases de datos integradas se utilizan en sistemas integrados en tiempo real , como conmutadores de telecomunicaciones y productos electrónicos de consumo . [2] (Consulte la base de datos móvil para conocer las bases de datos de tamaño reducido que podrían utilizarse en dispositivos integrados).

Implementaciones

Los principales productos de bases de datos integradas incluyen, en orden alfabético:

Comparación de motores de almacenamiento

Servidor de base de datos Advantage

Advantage Database Server (ADS) de Sybase es un sistema de gestión de bases de datos integrado. Proporciona acceso a datos relacionales y al método de acceso secuencial indexado (ISAM) y es compatible con múltiples plataformas, incluidas Windows, Linux y Netware. Está disponible como una base de datos de servidor de archivos local libre de regalías o como una versión completa de cliente-servidor. ADS es altamente escalable, no requiere administración y es compatible con una variedad de IDE, incluidos .NET Framework (.NET), Object Pascal ( Delphi ), Visual FoxPro (FoxPro), PHP , Visual Basic (VB), Visual Objects (VO), Vulcan , Clipper , Perl , Java , xHarbour , etc.

Derby apache

Derby es un motor SQL integrable escrito íntegramente en Java. Derby es un motor maduro, totalmente transaccional y multiusuario, que está disponible de forma gratuita bajo la licencia Apache y recibe un mantenimiento activo. Página del proyecto Derby. También se distribuye como parte del kit de desarrollo Java SE (JDK) de Oracle con el nombre de Java DB.

Base de datos integrada de Empress

Empress Software, Inc., desarrollador de Empress Embedded Database, es una empresa privada fundada en 1979. Empress Embedded Database es una base de datos relacional de funciones completas que ha sido incorporada en aplicaciones de organizaciones pequeñas y grandes, con entornos de implementación que incluyen sistemas médicos, enrutadores de red, monitores de plantas de energía nuclear, sistemas de gestión de satélites y otras aplicaciones de sistemas integrados que requieren confiabilidad y potencia. [3] Empress es un motor de base de datos SQL compatible con ACID con C, C++ , Java, JDBC , ODBC, SQL , ADO.NET y API de nivel de kernel . Las aplicaciones desarrolladas utilizando estas API se pueden ejecutar en modos independientes y/o de servidor. Empress Embedded Database se ejecuta en Linux, Unix , Microsoft Windows y sistemas operativos en tiempo real .

Motor de almacenamiento extensible

ESE es una tecnología de almacenamiento de datos ISAM de Microsoft, un componente básico de Microsoft Exchange Server y Active Directory. Su finalidad es permitir que las aplicaciones almacenen y recuperen datos mediante acceso indexado y secuencial. Windows Mail y Desktop Search en el sistema operativo Windows Vista también utilizan ESE para almacenar índices e información de propiedades respectivamente.

eXtremeDB

McObject LLC lanzó eXtremeDB como la primera base de datos integrada en memoria diseñada desde cero para sistemas integrados en tiempo real. Al producto inicial pronto se le unió eXtremeDB High Availability (HA) para aplicaciones tolerantes a fallos . La familia de productos ahora incluye ediciones de 64 bits y de registro de transacciones , y el híbrido eXtremeDB Fusion, que combina almacenamiento de datos en memoria y en disco. En 2008, McObject presentó eXtremeDB Kernel Mode, el primer DBMS integrado diseñado para ejecutarse en un núcleo de sistema operativo . [4] Hoy en día, eXtremeDB se utiliza en millones de sistemas integrados y en tiempo real en todo el mundo. McObject también ofrece Perst , una base de datos integrada orientada a objetos y de código abierto para Java, Java ME , .NET, .NET Compact Framework y Silverlight .

Firebird integrado

Firebird Embedded es un motor de base de datos relacional. Como bifurcación de código abierto de InterBase, es compatible con ACID , admite activadores y procedimientos almacenados, y está disponible en sistemas Linux, OSX y Windows. Tiene las mismas características que la versión clásica y superservidor de Firebird; dos o más subprocesos (y aplicaciones) pueden acceder a la misma base de datos al mismo tiempo a partir de Firebird 2.5. Por lo tanto, Firebird Embedded actúa como un servidor local para un cliente con subprocesos que accede a sus bases de datos (eso significa que funciona correctamente para aplicaciones web ASP.NET, porque allí, cada usuario tiene su propio subproceso, lo que significa que dos usuarios podrían acceder a la misma base de datos al mismo tiempo, pero no estarían en el mismo subproceso, porque ASP.NET abre un nuevo subproceso para cada usuario). Exporta los puntos de entrada estándar de la API de Firebird. La principal ventaja de las bases de datos Firebird Embedded es que, a diferencia de las bases de datos SQLite o Access, se pueden conectar a un servidor Firebird completo sin ninguna modificación y también son multiplataforma (se ejecutan en Linux, OS X con soporte completo de ASP.NET Mono).
Firebird no está realmente integrado ya que no se puede vincular estáticamente.

H2

Motor de base de datos de código abierto escrito en Java. Modo integrado y de servidor, compatibilidad con clústeres, puede ejecutarse dentro de Google App Engine . Admite archivos de base de datos cifrados (AES o XTEA). El desarrollo de H2 comenzó en mayo de 2004, pero se publicó por primera vez el 14 de diciembre de 2005. H2 tiene licencia dual y está disponible bajo una versión modificada de la MPL 1.1 (licencia pública de Mozilla) o bajo la EPL 1.0 (sin modificar) (licencia pública de Eclipse).

HailDB, anteriormente Embedded InnoDB

HailDB es una versión independiente e integrable del motor de almacenamiento InnoDB. Dado que HailDB se basa en la misma base de código que el motor de almacenamiento InnoDB, contiene muchas de las mismas características, incluidas alto rendimiento y escalabilidad, control de concurrencia multiversión (MVCC), bloqueo a nivel de fila, detección de interbloqueo, tolerancia a fallas y recuperación automática de fallas. Debido a que el motor integrado es completamente independiente de MySQL, carece de componentes de servidor como redes, permisos a nivel de objeto, etc. Al eliminar la sobrecarga del servidor MySQL, InnoDB ocupa poco espacio y es ideal para integrarse en aplicaciones que requieren alto rendimiento y concurrencia. Al igual que con la mayoría de los sistemas de bases de datos integrados, HailDB está diseñado para acceder principalmente con una API C similar a ISAM en lugar de SQL (aunque se admite una variante SQL extremadamente rudimentaria). [5]

El proyecto ya no se mantiene desde 2015. [6]

Base de datos HSQL

HSQLDB es un sistema de gestión de bases de datos relacionales de código abierto con una licencia similar a BSD que se ejecuta en la misma máquina virtual Java que la aplicación integrada. HSQLDB admite una variedad de modos de tabla en memoria y basados ​​en disco, Unicode y SQL:2016.

Base de datos infinita

InfinityDB Embedded Java DBMS es un almacén de claves y valores ordenado y jerárquico. Ahora tiene una edición cifrada y una edición cliente/servidor. La velocidad de múltiples núcleos está patentada. InfinityDB es seguro, transaccional, comprimible y robusto, en un solo archivo para una instalación instantánea y una administración cero. Las API incluyen el simple y rápido 'ItemSpace', una vista ConcurrentNavigableMap y JSON. Un RemoteItemSpace puede redirigir de forma transparente las API integradas a otras instancias de base de datos. Cliente/Servidor incluye un servidor Servlet liviano, administración web y exploración de bases de datos, y REST para Python.

Servidor dinámico Informix

Informix Dynamic Server (IDS) se caracteriza por ser un servidor de base de datos integrable de clase empresarial , que combina características integrables como poco espacio, capacidades programables y autónomas con características de base de datos de clase empresarial como alta disponibilidad y características de replicación flexible. [7] IDS se utiliza en escenarios profundamente integrados como sistemas de procesamiento de llamadas de telefonía IP, aplicaciones de puntos de venta y sistemas de procesamiento de transacciones financieras.

Interbase

InterBase es una plataforma de base de datos SQL multiplataforma, habilitada para Unicode y ganadora de premios IoT, que puede integrarse en aplicaciones listas para usar. Compatibilidad con SMP y cifrado de 256 bits con solidez AES en disco, compatibilidad con SQL 92 y ACID y compatibilidad con plataformas Windows, Macintosh, Linux, Solaris, iOS y Android. Ideal tanto para pequeñas y medianas empresas como para grandes empresas que admiten cientos de usuarios y desarrollo de aplicaciones móviles. InterBase Light es una versión gratuita que se puede utilizar en cualquier dispositivo móvil y es ideal para aplicaciones móviles. Las empresas pueden cambiar a una versión paga a medida que aumentan los requisitos de gestión de cambios y seguridad. InterBase tiene una alta adopción en las industrias de defensa, espacio aéreo, petróleo y gas y fabricación.

Nivel DB

LevelDB es un almacén de claves y valores ordenado creado por Google como una implementación liviana del diseño de almacenamiento de Bigtable . Como biblioteca (que es la única forma de usar LevelDB), su API nativa es C++. También incluye contenedores C oficiales para la mayoría de las funciones. Existen contenedores API de terceros para Python, PHP, Go (existe una implementación de LevelDB pura para Go, pero aún está en progreso), Node.js y Objective C. Google distribuye LevelDB bajo la licencia New BSD .

Base de datos LM

Lightning Memory-Mapped Database (LMDB) es una base de datos de clave-valor mapeada en memoria para el Proyecto OpenLDAP . Está escrita en C y la API está modelada a partir de la API de Berkeley DB , aunque mucho más simplificada. La biblioteca es extremadamente compacta, compilando hasta menos de 40 KB de código objeto x86, siendo generalmente más rápida que bibliotecas similares como Berkeley DB , LevelDB , etc. La biblioteca implementa árboles B+ con control de concurrencia multiversión (MVCC), almacenamiento de un solo nivel , copia en escritura y proporciona transacciones ACID completas sin bloqueos. La biblioteca está optimizada para alta concurrencia de lectura; los lectores no necesitan bloqueos en absoluto. Los lectores no bloquean a los escritores y los escritores no bloquean a los lectores, por lo que el rendimiento de lectura escala perfectamente de manera lineal a través de arbitrariamente muchos subprocesos y CPU. Existen envoltorios de terceros para C++, Erlang y Python. LMDB es distribuida por el Proyecto OpenLDAP bajo la Licencia Pública OpenLDAP. A partir de 2013, el Proyecto OpenLDAP dejó de utilizar Berkeley DB y adoptó LMDB.

SQL Mimer

Está disponible una versión integrada de mantenimiento cero del servidor de base de datos relacional propietario Mimer SQL. Ocupa poco espacio debido a su diseño modular, es totalmente compatible con el estándar SQL y tiene puertos para Windows , Linux , Automotive Grade Linux , Android , QNX , INTEGRITY , entre otros.

MonetDB/e

MonetDB/e es la versión integrada del motor de almacenamiento de columnas SQL MonetDB de código abierto. Disponible para C, C++, Java (JDBC) y Python. Licencia MonetDB, basada en MPL 2.0. El predecesor MonetDBLite (para R, Python y Java) ya no recibe mantenimiento. Se ha reemplazado por MonetDB/e.

Biblioteca de servidor integrado MySQL

La biblioteca de servidor MySQL integrado proporciona la mayoría de las funciones de MySQL normal como una biblioteca enlazable que se puede ejecutar en el contexto de un proceso cliente. Después de la inicialización, los clientes pueden usar las mismas llamadas de API de C que cuando se comunican con un servidor MySQL independiente, pero con menos sobrecarga de comunicación y sin necesidad de un proceso de base de datos independiente.

Base de datos Nexus

NexusDB es el sucesor comercial de la base de datos FlashFiler, que ahora es de código abierto. Ambos pueden integrarse en aplicaciones Delphi para crear ejecutables independientes con funcionalidad completa de base de datos.

Base de datos Oracle Berkeley

Como su nombre lo indica, la base de datos integrada de Oracle es en realidad Berkeley DB , que Oracle adquirió de Sleepycat Software. Originalmente se desarrolló en la Universidad de California. [8] Berkeley DB es una base de datos integrada rápida y de código abierto que se utiliza en varios productos de código abierto conocidos, incluidos los sistemas operativos Linux y BSD Unix, el servidor web Apache y la suite de productividad OpenOffice. No obstante, en los últimos años muchos proyectos conocidos cambiaron a utilizar LMDB , porque supera a Berkeley DB en escenarios clave sobre la base del diseño de " menos es más ", así como también debido al cambio de licencia. [9]

RocasDB

RocksDB, creado en Facebook , comenzó como una bifurcación de LevelDB . [10] Se centra en el rendimiento, especialmente en los SSD . Añade muchas características, incluidas transacciones , [11] copias de seguridad , [12] instantáneas , [13] filtros Bloom , [14] familias de columnas , [15] caducidad, [16] operadores de fusión personalizados, [17] compactación más ajustable, [18] recopilación de estadísticas, [19] e indexación geoespacial. [20] Se utiliza como motor de almacenamiento dentro de varias otras bases de datos, incluidas ArangoDB , [21] Ceph , [22] CockroachDB , [23] MongoRocks, [24] MyRocks , [25] Rocksandra, [26] TiKV. [27] [28] y YugabyteDB . [29]

base de datos solida

solid DB es una base de datos relacional híbrida en disco/en memoria que se utiliza a menudo como base de datos de sistema integrada en equipos de telecomunicaciones, software de red y sistemas similares. La tecnología de base de datos en memoria se utiliza para lograr un rendimiento de decenas de miles de transacciones por segundo con tiempos de respuesta medidos en microsegundos. La opción de alta disponibilidad mantiene dos copias de los datos sincronizados en todo momento. En caso de fallo del sistema, las aplicaciones pueden recuperar el acceso a solid DB en menos de un segundo sin pérdida de datos.

SQLite

SQLite es una biblioteca de software que implementa un motor de base de datos SQL transaccional autónomo, sin servidor y sin configuración. SQLite es el motor de base de datos SQL más implementado en el mundo. El código fuente, principalmente C, de SQLite es de dominio público. Incluye una biblioteca C nativa y un cliente de línea de comandos simple para su base de datos. Está incluido en varios sistemas operativos; entre ellos se encuentran Android , FreeBSD , iOS , OS X y Windows 10. [ 30] También lo utiliza el navegador web Chromium y sus derivados. [31]

Servidor SQL Compacto

SQL Server Compact es una base de datos integrada de Microsoft con una amplia variedad de funciones, como conexiones multiproceso, T-SQL, servicios de sincronización ADO.NET para sincronizar con cualquier base de datos back-end, replicación de combinación con SQL Server, API de programación: LINQ to SQL , LINQ to Entities, ADO.NET. El producto se ejecuta en plataformas Windows de escritorio y móviles. Ha estado en el mercado durante mucho tiempo y muchas empresas lo utilizan en software de producción (estudios de caso). El producto pasó por múltiples cambios de marca y se lo conoció con varios nombres como: SQL CE, SQL Server CE, SQL Server Mobile, SQL Mobile.

Véase también

Referencias

  1. ^ "¿Qué es un modelo de base de datos?". Lucidchart . Consultado el 6 de noviembre de 2022 .
  2. ^ Graves, Steve. "Bases de datos COTS para sistemas integrados" Archivado el 14 de noviembre de 2007 en Wayback Machine , revista Embedded Computing Design , enero de 2007. Recuperado el 13 de agosto de 2008.
  3. ^ Mullins, Craig. "Empress ofrece una solución eficaz de base de datos integrada", 2005. Recuperado el 9 de diciembre de 2008.
  4. ^ Gorine, Andrei y Krivolapov, Alexander. "Bases de datos en modo kernel: una tecnología DBMS para aplicaciones de alto rendimiento", Dr. Dobb's Journal , abril de 2008. Recuperado el 13 de agosto de 2008.
  5. ^ Página de inicio de HailDB
  6. ^ Cierre de HailDB, por Stewart Smith el 19 de agosto de 2015, HailDB
  7. ^ "Incorporación de Informix Dynamic Server", consultado el 30 de agosto de 2009.
  8. ^ Véase la base de datos Berkeley
  9. ^ Niccolai, James. "Actualización: Oracle compra Sleepycat, el proveedor de bases de datos de código abierto" Archivado el 13 de junio de 2008 en Wayback Machine , "InfoWorld", 14 de febrero de 2006. Recuperado el 12 de junio de 2008.
  10. ^ "Conceptos básicos de RocksDB". GitHub . Consultado el 19 de julio de 2018 .
  11. ^ "Transacciones de RocksDB". GitHub . Consultado el 4 de abril de 2016 .
  12. ^ "¿Cómo hacer una copia de seguridad de RocksDB?". GitHub . Consultado el 19 de julio de 2017 .
  13. ^ "Puntos de control". GitHub . Consultado el 19 de julio de 2017 .
  14. ^ "Filtros Bloom de RocksDB". GitHub . Consultado el 4 de abril de 2016 .
  15. ^ "Familias de columnas en RocksDB". GitHub . Consultado el 4 de abril de 2016 .
  16. ^ "Compatibilidad con TTL de RocksDB". GitHub . Consultado el 4 de abril de 2016 .
  17. ^ "Operador de fusión RocksDB". GitHub . Consultado el 4 de abril de 2016 .
  18. ^ "Compactación universal". GitHub . Consultado el 4 de abril de 2016 .
  19. ^ "Contexto de rendimiento de RocksDB y contexto de estadísticas de E/S". GitHub . Consultado el 4 de abril de 2016 .
  20. ^ "Indexación espacial en RocksDB". rocksdb.org . Consultado el 19 de julio de 2018 .
  21. ^ "Comparación de los nuevos motores de almacenamiento RocksDB y MMFiles" . Consultado el 19 de julio de 2018 .
  22. ^ "Dispositivos de almacenamiento: documentación de Ceph" . Consultado el 19 de julio de 2018 .
  23. ^ "Capa de almacenamiento - CockroachDB" . Consultado el 19 de julio de 2018 .
  24. ^ "mongodb-partners/mongo-rocks: capa de integración de almacenamiento de MongoDB para el motor de almacenamiento Rocks". GitHub . Consultado el 19 de julio de 2018 .
  25. ^ "MyRocks - Un motor de almacenamiento RocksDB con MySQL" . Consultado el 19 de julio de 2018 .
  26. ^ "Publicar código abierto para reducir 10 veces la latencia de cola de Apache Cassandra". 5 de marzo de 2018. Consultado el 19 de julio de 2018 .
  27. ^ "RocksDB en TiKV - PingCAP". 15 de septiembre de 2017. Consultado el 19 de julio de 2018 .
  28. ^ "Una mirada al mundo de las bases de datos integradas con RocksDB". 21 de noviembre de 2019.
  29. ^ Bautin, Mikhail (20 de febrero de 2019). "¿Cómo creamos un almacén de documentos de alto rendimiento en RocksDB?". The Distributed SQL Blog . Consultado el 9 de enero de 2022 .
  30. ^ Respuesta, Usman (29 de octubre de 2015). "La introducción de una nueva mentalidad con SQLite en Windows 10". Microsoft. Archivado desde el original el 31 de enero de 2016. Consultado el 6 de marzo de 2016 .
  31. ^ "Capa de abstracción de SQLite". chromium.googlesource.com . Consultado el 27 de septiembre de 2023 .