(está "orientado a nodos", si es que existe)
Empieza aqui. 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 el historial del dominio y la terminología adecuada y tener al menos una idea de alto nivel de la arquitectura. Podrías comenzar desde el artículo de Wikipedia sobre 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
Luego, elige Relacional o NoSQl. Si elige NoSQL, debe elegir un tipo de NoSQL. Eso es extremadamente importante, no encontrará ningún documento arquitectónico que discuta todas 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 guste, simplemente explore el código y realice 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á comprender lo que hace el código. Si el primer proyecto que eligió parece extremadamente difícil de entender, simplemente pase al siguiente.
Otra gran opción sería concentrarse en construir un motor para MySQL, como sugiere @NB en una respuesta anterior .
Si llega a un punto en el que puede hacer algo útil con la base de código, participe 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, comience a trabajar en su base de datos. Al principio, podría 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 cientos más, además de una miríada de trabajos académicos que puede rastrear fácilmente a través de Google. Primero debe definir lo que desea hacer y luego buscar un libro. Involucrarse con una comunidad de autores de bases de datos también lo ayudará a reducir la lista de libros y tal vez a obtener sugerencias mucho mejores que las anteriores.
¡Buena suerte! Espero un comentario con un enlace a su repositorio cuando haya terminado. Y si nunca has terminado, asegúrate de dejar un comentario recordándome que todavía no he terminado el compilador que comencé a escribir en 2001.