Passei pela definição em http://en.wikipedia.org/wiki/Database_engine várias vezes:
Um mecanismo de banco de dados (ou "mecanismo de armazenamento") é o componente de software subjacente que um sistema de gerenciamento de banco de dados (DBMS) usa para criar, ler, atualizar e excluir dados (CRUD) de um banco de dados.
O que eu não entendo é o que resta fazer, não é CRUD tudo o que os bancos de dados fazem?
Se o mecanismo do banco de dados executa essas funções, o que o restante do banco de dados faz?
Respostas:
O CRUD visa definir as características necessárias para um banco de dados no que se refere ao armazenamento persistente. Não se destina a descrever tudo o que poderia ser feito por um mecanismo de banco de dados.
Para fazer uma comparação, fundamentalmente um veículo é um dispositivo usado para o transporte. Embora verdadeira, essa definição certamente não inclui todos os detalhes de um automóvel moderno.
Um mecanismo de banco de dados pode lidar com vários usuários, transações , MVCC (Multiversion Concurrency Control) , buffers e caches, ACID (atomicidade, consistência, isolamento, durabilidade) , além de diferentes níveis de isolamento . Uma leitura pode extrair dados da memória, bancos de dados remotos e várias tabelas no disco, processando-os usando SQL através de vários caminhos de código explícitos e / ou implícitos, a fim de apresentá-los ao aplicativo solicitante. Uma criação pode alocar armazenamento, provisionar estruturas, atribuir valores e fazer seu próprio processamento antes de armazenar dados. Etc.
fonte
Alguns bancos de dados podem executar muitos mecanismos, dependendo da melhor opção para o trabalho. Por exemplo, muitos dos meus aplicativos usam o InnoDB para a maioria dos dados (restrições de chave e bloqueio no nível de linha), o MyISAM para dados da sessão (rápido, com menos processamento) e o ArchiveDB para trilha de auditoria (compactado e somente inserir / selecionar, sem atualização / exclusão).
O "restante" do software de banco de dados fornece uma interface comum para uso através de APIs ou terminais, permite ações complexas (como junções, subconsultas etc.) e gerencia a integridade / status e a configuração dos mecanismos incluídos. Há muito para alimentar e cuidar de um mecanismo, e o software de banco de dados oculta toda essa complexidade.
fonte