Sono interessato a sapere come funziona un motore di database (cioè i suoi interni). Conosco la maggior parte delle strutture di dati di base insegnate in CS (alberi, tabelle hash, elenchi, ecc.) Nonché una buona conoscenza della teoria dei compilatori (e ho implementato un interprete molto semplice) ma non capisco come procedere sulla scrittura di un motore di database. Ho cercato tutorial sull'argomento e non sono riuscito a trovarne nessuno, quindi spero che qualcun altro possa indicarmi la giusta direzione. Fondamentalmente, vorrei informazioni su quanto segue:
- Come i dati vengono archiviati internamente (ovvero come sono rappresentate le tabelle, ecc.)
- In che modo il motore trova i dati di cui ha bisogno (ad es. Eseguire una query SELECT)
- Come vengono inseriti i dati in modo rapido ed efficiente
E qualsiasi altro argomento che possa essere rilevante per questo. Non deve essere un database su disco - anche un database in memoria va bene (se è più facile) perché voglio solo imparare i principi dietro di esso.
Molte grazie per il vostro aiuto.