Qualquer DBMS pode ser executado "na memória". Considere o uso de um ramdisk. No entanto, a maioria dos SGBDs (aqueles com SQL) não são projetados para rodar inteiramente na memória e colocar muito de esforço para minimizar a E/S de disco e a paginação:um DBMS trabalha muito para manter os "dados relevantes" quentes (na memória e no cache) -- a E/S é lenta, lenta, lenta.
Isso ocorre porque os dados do banco de dados geralmente são [e historicamente têm sido] significativamente maiores do que a memória principal. Isso e a memória principal são voláteis :-) [DBMSs ACID fazem muitos trabalhos com registro de gravação antecipada - para um armazenamento não volátil - e outras técnicas para garantir que os dados nunca sejam corrompidos, mesmo no caso de um desligamento inesperado. ]
Alguns bancos de dados, como o SQLite, usam o mesmo formato para armazenamento em disco e memória, embora suportem explicitamente um armazenamento na memória. O suporte para outros back-ends [na memória] e o ajuste de uso de memória variam de acordo com o provedor.
Codificação feliz.