Je suis intéressé à apprendre comment fonctionne un moteur de base de données (c'est-à-dire les composants internes de celui-ci). Je connais la plupart des structures de données de base enseignées dans CS (arbres, tables de hachage, listes, etc.) ainsi qu'une assez bonne compréhension de la théorie du compilateur (et j'ai implémenté un interpréteur très simple) mais je ne comprends pas comment y aller sur l'écriture d'un moteur de base de données. J'ai recherché des tutoriels sur le sujet et je n'en ai trouvé aucun, j'espère donc que quelqu'un d'autre pourra me diriger dans la bonne direction. En gros, je voudrais des informations sur les points suivants:
- Comment les données sont stockées en interne (c'est-à-dire comment les tables sont représentées, etc.)
- Comment le moteur trouve les données dont il a besoin (par exemple, exécuter une requête SELECT)
- Comment les données sont insérées de manière rapide et efficace
Et tout autre sujet qui pourrait être pertinent à ce sujet. Il n'est pas nécessaire que ce soit une base de données sur disque - même une base de données en mémoire est très bien (si c'est plus facile) parce que je veux juste apprendre les principes derrière cela.
Merci beaucoup pour votre aide.