¿Qué es exactamente un motor de base de datos?


14

He revisado la definición en http://en.wikipedia.org/wiki/Database_engine varias veces:

Un motor de base de datos (o "motor de almacenamiento") es el componente de software subyacente que utiliza un sistema de gestión de bases de datos (DBMS) para crear, leer, actualizar y eliminar datos (CRUD) de una base de datos.

Lo que no entiendo es lo que queda por hacer, ¿no es CRUD todo lo que hacen las bases de datos?

Si el motor de la base de datos realiza estas funciones, ¿qué hace el resto de la base de datos?


Para obtener una respuesta directa a la pregunta planteada en negrita ( ¿qué hace el resto de la base de datos? ), Vea la respuesta de Bryan. Para obtener más claridad sobre lo que hace un motor de base de datos, además de CRUD, vea la respuesta de Leigh.
nealmcb

Respuestas:


15

CRUD está destinado a definir las características necesarias para una base de datos en relación con el almacenamiento persistente. No pretende describir todo lo que podría hacer un motor de base de datos.

Para hacer una comparación, fundamentalmente un vehículo es un dispositivo utilizado para el transporte. Si bien es cierto, esta definición ciertamente no incluye todos los detalles implicados en un automóvil moderno.

Un motor de base de datos puede manejar múltiples usuarios, transacciones , MVCC (Control de concurrencia multiversional) , buffers y cachés, ACID (atomicidad, consistencia, aislamiento, durabilidad) , así como diferentes niveles de aislamiento . Una lectura puede extraer datos de la memoria, bases de datos remotas y múltiples tablas en el disco procesándolas usando SQL a través de múltiples rutas de código explícitas y / o implícitas para presentarlas a la aplicación solicitante. Una creación puede asignar almacenamiento, aprovisionar estructuras, asignar valores y realizar su propio procesamiento antes de almacenar datos. Etc.


Esta es una respuesta muy compacta, pero completa. +1 !!!
RolandoMySQLDBA

Por cierto, buena analogía sobre el vehículo versus el tipo específico de vehículo.
RolandoMySQLDBA

En mi opinión, las transacciones, la garantía ACID, los niveles de aislamiento, el control de concurrencia, las memorias intermedias y los cachés son manejados por el motor de base de datos. ¿Por qué lo digo yo? ... Mira esto linux.org/threads/an-introduction-to-mysql-storage-engines.4220
Shatu

@Leigh, ¿no es la concurrencia (de falta de) una característica del motor de almacenamiento y no del DBMS? Si es una característica del DBMS, entonces ¿por qué MariaDB / MySQL no puede hacer transacciones para ciertos motores de almacenamiento como MyISAM?
Pacerier

@Pacerier: esto puede ser cierto para los sistemas que hacen una separación entre el DBMS y el motor de almacenamiento, para otros la distinción no tiene sentido.
Leigh Riffel

12

Algunas bases de datos pueden ejecutar muchos motores, dependiendo del mejor ajuste para el trabajo. Por ejemplo, muchas de mis aplicaciones usan InnoDB para la mayoría de los datos (restricciones de clave y bloqueo de nivel de fila), MyISAM para datos de sesión (rápido, menos procesamiento) y ArchiveDB para seguimiento de auditoría (comprimido y solo insertar / seleccionar, sin actualización / eliminación).

El "resto" del software de la base de datos proporciona una interfaz común para su uso a través de API o terminales, permite acciones complejas (como uniones, subconsultas, etc.) y gestiona el estado / configuración de los motores incluidos. La alimentación y el cuidado de un motor tienen mucho que ver, y el software de la base de datos oculta toda esa complejidad.


¡Gracias por responder la pregunta planteada en negrita!
nealmcb 01 de
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.