Detrás de un software como un DBMS existen un compendio de tecnologías y teoría que requiere una buena base teórico-práctica.
Es decir, pongamos que quieres empezar haciendo un Producto Mínimo Viable donde tengamos:
- El sistema de almacenamiento que sea mínimamente decente (al menos, que las consultas sean rápidas) Es decir, un indexado viable y poco más.
- SQL básico para consultas y updates.
- Conexión TCP/IP de los clientes
Dejémoslo ahí.
Sólo para estas tres cosas mínimamente funcionales, implica tener claro todo esto:
- Saber programar. Recalco SABER, con todo lo que ello implica.
- Al menos tener una buena base teórica del manejo de almacenamiento secundario y todo los problemas que implica.
- Estructuras de datos para manejo de almacenamiento secundario. Esto tiene muchísimo tema. Desde el manejo de estrucuras de datos de indexación como árboles-B (el más usado en los sistemas actuales) pasando por todo el manejo eficiente de ficheros. Puedes utilizar sistemas ya hechos como ISAM (este es un sistema de indexado secuncial), pero ya debes estudiarlo y aprender a utilizarlo para lo tuyo.
- Motor básico interpretación de SQL, con todo el manejo de la teoría de gramáticas formales, intérpretes y demás. Supongo que ya habrá cosas hechas pero, como siempre, debes al menos saber un poco de que va todo eso para poder adaptarlo.
- Gestión de conexiones TCP/IP, es decir, aprender al menos la teoría y funcionamiento básico de hacer programas cliente/servidor
- Estudiar el código de algún DBMS algo reducido y de código abierto. Una candidato podría ser
h2database/h2database Pero para que el estudio de ese código sea productivo y te valga, no sólo debes comprender todo lo que he puntualizado anteriormente,
sino que encima debes al menos tener una base teórica de sistemas de datos relacionales. El libro que te han puesto, el de Navathe, es muy conocido.
Y si lo que quieres es hacer una DB tipo MemDB, de clave/valor, todo lo anteriormente expuesto sigue teniendo que estudiarse, poniendo especial énfasis en arquitecura cliente/servidor y estructuras de datos en memoria y colas. El código fuente de Redis es otra cosa a tener en cuenta.
Yo no suelo opinar ni decir a nadie lo que debe hacer. Pero creo que ponerse con esto lo único que tiene de útil es como un reto intelectual y divertimento. No veo que te sirva para nada más.