KelSin Global Consulting
Un motor de base de datos (o motor de almacenamiento) es el componente de software subyacente que un sistema de administración de la base de datos (SGBD) utiliza para crear, leer, actualizar y eliminar (CRUD) datos de una base de datos. La mayoría de los sistemas de administración de la base de datos incluye su interfaz de programación de aplicación propia (API) que permite al usuario interaccionar con su motor subyacente sin pasar por la interfaz de usuario del SGBD.
¿Qué es un motor SQL?
Un motor SQL es un tipo de software que recopila e interpreta comandos SQL para que se puedan realizar las operaciones apropiadas en la base de datos relacional. El objetivo del motor SQL es crear, leer, actualizar y eliminar datos (CRUD) de una base de datos.
SQL significa Structured Query Language (lenguaje de consulta estructurada), el cual puede referirse como lenguaje de programación o lenguaje de consulta. El objetivo principal de SQL es interactuar con la base de datos relacional en la que se almacenan de forma tabular. SQL puede administrar una gran cantidad de datos, especialmente si los datos se escriben simultáneamente y si se tienen muchas transiciones sobre esos datos.
SQL, ¿es un lenguaje de programación o de query?
Con SQL podemos usar indistintamente el lenguaje de consulta y de programación. Muchos desarrolladores se refieren a SQL como un lenguaje de programación peculiar, porque el motor SQL contiene dos componentes compilador y el compilador de máquina vertical. El compilador compila los comandos de consulta en procedimientos y la máquina virtual ejecuta esos procedimientos. El concepto del SQL engine, compilando y ejecutando el SQL query, lo hace un lenguaje de programación.
¿Cómo funciona el motor de base de datos SQL?
En la superficie, todos sabemos que el compilador de SQL compila la consulta y la máquina virtual ejecuta la consulta compilada. Ahora veremos cómo funciona el motor de base de datos.
SQL tiene muchas etapas en las que el proceso de compilación y ejecución de consultas se llevan a cabo. Cada motor de base de datos SQL tiene dos componentes principales: compilador y máquina virtual para ejecutar consultas. Donde el compilador lee la consulta y la convierte en un código de bytes apropiado. Luego ese código de bytes es evaluado por la máquina virtual y luego se le da una respuesta adecuada al cliente.
Etapas principales de la ejecución completa de una consulta:
- Compilación (análisis, controles y semántica)
- Unión
- Optimización
- Ejecución
Compilación – análisis
Es parte del proceso de compilación, y al compilar el análisis, la instrucción de consulta se tokeniza en palabras individuales y cláusulas apropiadas.
Compilar – verificar – semántica
La compilación de semánticas verifica la validación de la declaración y la compara con el catálogo del sistema. Esta etapa de compilación verifica si la consultas es válida o no, también valida la autoridad del usuario para ejecutar la declaración.
Compilación – unión
Crea la representación binaria correspondiente para la instrucción de consulta ingresada. Todos los motores del servidor tienen este estado de compilación donde se genera el código de bytes. En esta etapa de compilación, la declaración se ha compilado y ahora se enviará al servidor de la base de datos para su optimización y ejecución.
Optimización
Optimiza el mejor algoritmo para el código de bytes. Esta característica también se conoce como Query Optimizer o Rational Engine.
Ejecución
La máquina virtual obtiene el código de bytes optimizado y lo ejecuta.
Bases de datos NoSQL
NoSQL puede ser definido como “Not only SQL” y es un sistema de gestión de bases de datos la cual podría ser la siguiente generación de tecnologías que es no relacional, distribuida, escalable horizontalmente, de código abierto y más rápida, puesto que no implementa las propiedades ACID las cuales aseguran la confiabilidad de las transacciones sobre las bases de datos.
NoSQL fue definida inicialmente para actualizar y, de alguna manera, modernizar las bases de datos en la nube, pero su aplicación es de uso general, ya que la cantidad de información que se maneja y almacena en ellas, pueden no responder tan rápidamente como se espera en horas de alto tráfico de datos incumpliendo los ANS7.
Entre las características que posee NoSQL se encuentra que no presentan esquemas, tienen fácil soporte de replicación, API8 simple, eventualmente consistente (conocido como BASE, y contrario al concepto de ACID) y contienen enormes cantidades de datos (información NoSQL).
Cuando el concepto se lo consideraba nuevo, se incursionaba en esta modalidad y se puede ver como Amazon y Oracle han creado bases de datos NoSQL; Twitter, Netflix, Facebook, Cisco, entre otros, utilizan estos tipos de motores; CouchDB y SQLite crearon un lenguaje de consulta llamado UnQL9 (Jackson, 2011) .
En la actualidad la diversidad de motores que existe es amplia por esta razón se debe realizar una revisión de estos y seleccionar aquel con las funciones de mayor utilidad.
Bases de datos en memoria
Una base de datos en memoria también conocida como base de datos en memoria principal, almacena sus datos en memoria para facilitar tiempos más rápidos de respuesta. La base de datos en memoria carga la data en un formato comprimido no relacional. Adicionalmente la base de datos en memoria optimiza el trabajo relacionado con el procesamiento de las consultas.
Este tipo de base de datos además de brindar tiempos extremadamente rápidos de respuesta a consultas, reduce la necesidad de indexar datos en base de datos en memoria.
Adicionalmente la computación de 64 bits, servidores multi-nucleo y los bajos costos de memoria han hecho posible la aplicación de estas técnicas en base de datos en memoria.
Para el uso eficiente de la base de datos en memoria se debe habilitar el modo Quad Channel, que es la configuración más rápida en base de datos en memoria y consiste en llenar el primer banco de memoria (más próximo al procesador) que consta de 4 slot y llenar los 4 slots. Con el ello el uso intensivo de la base de datos en memoria se ve maximizado versus el uso del single channel.
Usos:
Como base de datos OLTP:
La base de datos en memoria OLTP almacena los datos a nivel de filas y se utilizan para almacenar y procesar datos transaccionales.
Como base de datos OLAP:
La base de datos en memoria OLAP es una base de datos analítica, que es a su vez un sistema de sólo lectura con datos históricos para la generación de indicadores en aplicaciones de inteligencia de negocios y el almacenamiento de esta base de datos es típicamente en columna.
Ventajas:
Las ventajas de trabajar con base de datos en memoria son:
- Su principal soporte de almacenamiento es la memoria.
- No consume CPU
- Es más veloz que el almacenamiento en disco.
Velocidad:
La base de datos en memoria al almacenar toda su data en memoria RAM su velocidad de acceso es de 80milisegundo en promedio, mientras que la velocidad de acceso a disco duro es de 5 milisegundos, el cual es utilizado por base de datos tradicionales, es una diferencia de casi 100,000 veces. Y si estos tiempos los comparamos con almacenamiento en base de datos basado en discos de estado sólido o memoria FLASH no-volátil se estima en 1000 veces más lento que usando memoria RAM para esta base de datos.
Persistencia:
La duda en general para base de datos en memoria es que sucede en caso de pérdida de fuente de energía, para ello las bases de datos en memoria permiten que las páginas de memoria RAM se escriban en almacenamiento no-volátil. Además la base de datos en memoria no considera completa la transacción completada hasta que esta no se grabe en el log de transacciones, ello también permite que en caso de falla se pueda recuperar la página más reciente de la base de datos en memoria y vuelva a aplicarse las operaciones desde el log.
Entre los principales motores de bases de datos en memoria tenemos:
Base de datos en memoria | Precio | Plataforma | Licencia | Escrita en | Última actualización |
Redis |
|
|
|
| 09-feb-21 |
Tarantool | Gratis | Linux, FreeBSD, macOS | Simplified BSD | C | 09-jun-21 |
MemSQL |
|
|
|
| 30-jun-21 |
Aerospike |
|
|
|
| 01-dic-19 |
VoltDB |
| Windows, Linux, Mac |
|
| 17-abr-20 |
Hazelcast |
|
|
|
| 24-oct-20 |
Dynomite |
|
|
|
| 23-jun-21 |
SAP HANA Database |
|
|
|
| 26-sep-19 |
Raima Database Manager |
|
|
|
| 21-may-21 |
Oracle Database In-Memory |
|
|
|
| 29-dic-20 |
Comparativo de Motores de Bases de Datos SQL y No SQL
SQL
Costo | Versión (estable) | Sistema operativo | Soporta transacciones | |
Oracle | Sí/No | 18c (18.1) | Multiplataforma | Sí |
SQLServer | Sí/No | 14.0 | Linux / Microsoft Windows Server / Microsoft Windows | Sí |
MySQL | Sí/No | 8.0.12 | Multiplataforma | Sí |
PostgreSQL | No | 10.6 | Linux / Windows | Sí |
Microsoft Access | Sí | 14.0.6123.5001 | Microsoft Windows | Sí |
Teradata | Sí | 16.20 | SUSE Linux Enterprise Server | Sí |
IBM DB2 | Sí | 11.1 | Multiplataforma | Sí |
Informix | Sí | 12.10.xC2 | Multiplataforma | Sí |
SAP ASE | Sí | 16.0 | Unix / Microsoft Windows | Sí |
Amazon's SimpleDB | Sí/No | - | Alojado | No |
Baldassari (2018)
NoSQL
Costo | Versión (estable) | Sistema operativo | Soporta transacciones | |
MongoDB | No | 4.0.2 | Windows / Linux / OS X / Solaris / Free BSD | Sí |
Cassandra | No | 3.11.1 | Multiplataforma | No |
Redis | No | 4.0.11 | Multiplataforma | Sí |
Hbase | No | 1.2.1 | Multiplataforma | Sí |
Neo4j | Sí/No | 3.3.0 | Multiplataforma | Sí |
Oracle NoSQL | Sí/No | 18.1 | Multiplataforma | Sí |
Amazon DynamoDB | Sí/No | - | Multiplataforma | Sí |
CouchBase | No | 5.5.0 | Multiplataforma | Sí |
Memcached | 1.5.11 | Multiplataforma | Sí | |
CouchDB | No | 2.2.0 | Multiplataforma | No |
Baldassari (2018)
Ranking de popularidad de bases de datos
REFERENCIAS
- Motor de base de datos, Wikipedia (2021)
- Cómo funciona el motor de base de datos SQL, Empleos TI
- Base de Datos en Memoria, BSG Institute, NICOLAS NAKASONE
- What are the best scalable In-Memory Databases?, Slant (2021)
- DB-Engines Ranking - Trend Popularity, Solid IT gmbh (2021)
¿Quieres saber más acerca de cómo lograr que tu empresa crezca?
Descarga nuestro Manual para el Crecimiento completamente gratis, donde los expertos de KelSin Global Consulting te comparten recomendaciones para la mejora de tu empresa.
Comparte esta publicación:
Evoluciona tu negocio. Revoluciona tus ingresos
Lee más
Conoce lo que
KelSin Global Consulting te ofrece