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?
Respuestas:
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.
fuente
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.
fuente