(c'est "orienté nœud", si cela existe même)
Commencer ici. Lorsque vous traitez avec une application complexe telle qu'une base de données (même une base de données simple est une application complexe), vous devez connaître l'historique du domaine et la terminologie appropriée et avoir au moins une idée très détaillée de l'architecture. Vous pouvez commencer par l'article de Wikipedia sur Database . J'ai passé quelques jours à lire tous les articles sur les concepts associés et les différents types de bases de données.
Et puisque ce que je pense n’est ni relationnel ni orienté document
Ensuite, vous choisissez Relational ou NoSQl. Si vous choisissez NoSQL, vous devez choisir un type de NoSQL. C'est extrêmement important, vous ne trouverez pas de documents architecturaux traitant de toutes les familles de bases de données. Peu importe lequel vous choisissez, choisissez-en un et respectez-le.
La langue n'a pas d'importance.
Oui (malheureusement), car après avoir sélectionné une famille de bases de données, vous devez commencer à explorer le code des bases de données open source de cette famille. Il existe quelques directives génériques sur ce qu'il faut rechercher:
- Relativement petite base de code,
- Documents architecturaux ou au moins un blog de développement,
- La base de données que vous choisissez doit être proche de ce qui est considéré comme générique dans la famille. Il serait plus difficile d’apprendre si elle est hautement spécialisée.
Quelques exemples qui correspondent à:
Obtenez la source, compilez-la et jouez avec elle. Vous n'avez pas besoin de soumettre des correctifs ou quoi que ce soit d'intéressant, mais d'explorer le code et de faire de petites modifications ici et là pour voir ce qui se passe. C'est un processus incrémental, plus vous y jouez, plus il sera facile de comprendre ce que fait le code. Si le premier projet que vous avez choisi semble extrêmement difficile à comprendre, passez au suivant.
Une autre option intéressante serait de vous concentrer sur la construction d’un moteur pour MySQL, comme le suggère @NB dans une réponse précédente .
Si vous atteignez un point où vous êtes capable de faire quelque chose d’utile avec le code, impliquez-vous dans la communauté du projet, c’est le moyen le plus simple de trouver des ressources plus détaillées sur les concepts en question.
Et enfin, commencez à travailler sur votre base de données. Au début, vous pouvez simplement écrire un clone extrêmement réduit du code que vous avez exploré. Cela n'a pas besoin d'être original, bon nombre de projets géniaux ont été lancés sous forme de clones ou de fourchettes.
Quelles ressources / tutoriels / livres puis-je lire pour comprendre?
Il y a pas mal de livres:
Et quelques centaines d’autres, plus une myriade d’articles scientifiques que vous pourriez facilement retrouver via Google. Vous devez d'abord définir ce que vous voulez faire, puis rechercher un livre. S'impliquer dans une communauté d'auteurs de bases de données similaires vous aidera également à réduire la liste des livres et peut-être à obtenir des suggestions bien meilleures que celles mentionnées ci-dessus.
Bonne chance! J'attends un commentaire avec un lien vers votre référentiel lorsque vous avez terminé. Et si vous n’avez jamais terminé, veillez à laisser un commentaire me rappelant que je n’ai toujours pas terminé le compilateur que j’ai commencé à écrire en 2001.