(es "orientado a nodos", si es que existe)
Comience aquí. Cuando se trata de una aplicación compleja como una base de datos (incluso una base de datos simple es una aplicación compleja), debe estar familiarizado con la historia del dominio y la terminología adecuada y tener al menos una idea de la arquitectura de muy alto nivel. Puedes comenzar desde el artículo de Wikipedia en la Base de datos . Pasé unos días leyendo todos los artículos sobre los conceptos relacionados y los diferentes tipos de bases de datos.
Y dado que lo que tengo en mente no es ni relacional ni orientado a documentos
A continuación, selecciona Relacional o NoSQl. Si elige NoSQL, debe elegir un tipo de NoSQL. Eso es extremadamente importante, no encontrará ningún documento de arquitectura que discuta las diferentes familias de bases de datos. Realmente no importa cuál elijas, solo elige uno y quédate con él.
El idioma no importa en lo más mínimo.
Sí, lo hace (desafortunadamente), porque después de elegir una familia de bases de datos, debe comenzar a explorar el código de las bases de datos de código abierto de esa familia. Hay algunas pautas genéricas sobre qué buscar:
- Base de código relativamente pequeña,
- Documentos arquitectónicos o al menos un blog de desarrollo,
- La base de datos que elija debe estar cerca de lo que se considera genérico en la familia, sería más difícil aprender si es altamente especializado.
Algunos ejemplos que encajan:
Obtenga la fuente, compílela y juegue con ella. No tiene que enviar parches ni nada que le interese, solo explore el código y haga pequeñas modificaciones aquí y allá para ver qué sucede. Es un proceso incremental, cuanto más juegues con él, más fácil será entender lo que hace el código. Si el primer proyecto que eligió parece extremadamente difícil de entender, simplemente continúe con el siguiente.
Otra gran opción sería concentrarse en la construcción de un motor para MySQL, como @NB. sugiere en una respuesta anterior .
Si llega a un punto en el que puede hacer algo útil con el código base, involucrarse en la comunidad del proyecto, esa es la forma más fácil de encontrar recursos más detallados sobre los conceptos involucrados.
Y luego, finalmente, comienza a trabajar en tu base de datos. Al principio, simplemente puede escribir un clon extremadamente reducido del código que ha estado explorando. No tiene que ser original, bastantes grandes proyectos comenzaron como clones o tenedores.
¿Qué recursos / tutoriales / libros puedo leer para entender?
Hay bastantes libros:
Y algunos otros cientos, además de una gran cantidad de documentos académicos que puedes rastrear fácilmente a través de Google. Primero debe definir qué desea hacer y luego buscar un libro. Involucrarse con una comunidad de colegas autores de bases de datos también lo ayudará a reducir la lista de libros y quizás obtener mejores sugerencias que las anteriores.
¡Buena suerte! Estoy esperando un comentario con un enlace a su repositorio cuando haya terminado. Y si nunca has terminado, asegúrate de dejar un comentario que me recuerde que todavía no he terminado el compilador que comencé a escribir en 2001.