Gostaria de aprender a fazer um DBMS (relacional), baseado especificamente no PostgreSQL. Não para fins de produção para fazer um produto comercial, mas para aprender.
Eu planejo usar C++, mas não é exatamente fácil encontrar informações sobre como construir o seu próprio (ou pelo menos por onde começar).
Eu sei que existem pessoas nesta comunidade que são até mesmo contribuidoras do código fonte do PostgreSQL (como Laurenz Albe), então fez sentido fazer essa pergunta aqui.
Tenho acompanhado este curso https://www.youtube.com/playlist?list=PLSE8ODhjZXjbohkNBWQs_otTrBTrjyohi para entender os meandros de um SGBD. Mas como a maioria simplesmente explica o teórico, não tenho a chance de ver o prático ou como realmente fazê-lo.
Meu conselho é se envolver com um projeto de banco de dados de código aberto. Eu iria com o PostgreSQL, mas é claro que existem alternativas.
Se você for com o PostgreSQL:
Use o software. É impossível aprender sobre bancos de dados sem realmente usá-los.
Compile o PostgreSQL a partir do código-fonte.
Assine as listas de discussão e leia-as. Lá você pode ler o que as pessoas experientes têm a dizer, e pode-se aprender muito com isso.
Sempre que você se deparar com um problema ou não entender o funcionamento de algo, procure na fonte. Se você ficar preso, peça ajuda.
Leia este artigo .
Sintonize na lista de discussão pgsql-hackers.
Comece a revisar patches e contribuir.
Mantenha os olhos abertos para as diferentes maneiras que outros bancos de dados fazem isso. Depois de alguns anos, você terá adquirido algum entendimento. Então você pode estar em condições de apresentar suas próprias ideias sobre arquitetura.