(è "orientato al nodo", se esiste)
Comincia qui. Quando si ha a che fare con un'applicazione complessa come un database (anche un semplice database è un'applicazione complessa), è necessario conoscere la storia del dominio e la terminologia corretta e avere almeno un'idea di livello molto alto dell'architettura. Potresti iniziare dall'articolo di Wikipedia sul database . Ho trascorso alcuni giorni a leggere tutti gli articoli sui concetti correlati e sui diversi tipi di database.
E poiché ciò che ho in mente non è né relazionale né orientato ai documenti
Quindi, scegli Relazionale o NoSQl. Se scegli NoSQL, dovresti scegliere un tipo di NoSQL. Questo è estremamente importante, non troverai alcun documento architettonico che discute tutte le diverse famiglie di database. Non importa quale scegli, basta sceglierne uno e attenersi ad esso.
La lingua non ha alcuna importanza.
Sì, purtroppo, perché dopo aver scelto una famiglia di database dovresti iniziare a esplorare il codice dai database open source di quella famiglia. Ci sono alcune linee guida generiche su cosa cercare:
- Base di codice relativamente piccola,
- Documenti di architettura o almeno un blog di sviluppo,
- Il database che scegli dovrebbe essere vicino a ciò che è considerato generico nella famiglia, sarebbe più difficile imparare se è altamente specializzato.
Alcuni esempi adatti:
Ottieni la fonte, compila e gioca con esso. Non è necessario inviare patch o nulla di speciale, basta esplorare il codice e apportare piccole modifiche qua e là per vedere cosa succede. È un processo incrementale, più ci giochi, più sarà facile capire cosa fa il codice. Se il primo progetto che hai scelto sembra estremamente difficile da capire, passa al successivo.
Un'altra grande opzione sarebbe quella di concentrarsi sulla costruzione di un motore per MySQL, come suggerisce @NB in una risposta precedente .
Se raggiungi un punto in cui sei in grado di fare qualcosa di utile con la base di codice, essere coinvolto nella comunità del progetto, questo è il modo più semplice per trovare risorse più dettagliate sui concetti coinvolti.
E poi, finalmente, inizia a lavorare sul tuo database. All'inizio potevi semplicemente scrivere un clone estremamente ridotto del codice che stavi esplorando. Non deve essere originale, alcuni grandi progetti sono iniziati come cloni o forchette.
Quali risorse / tutorial / libri posso leggere per capire?
Ci sono alcuni libri:
E poche centinaia di altri, oltre a una miriade di documenti accademici che puoi facilmente rintracciare tramite Google. Devi prima definire cosa vuoi fare, quindi cercare un libro. Essere coinvolti con una comunità di colleghi autori di database ti aiuterà anche a restringere l'elenco dei libri e forse ottenere suggerimenti molto migliori di quanto sopra.
In bocca al lupo! Mi aspetto un commento con un link al tuo repository quando hai finito. E se non hai mai finito, assicurati di lasciare un commento che mi ricorda che non ho ancora finito quel compilatore che ho iniziato a scrivere nel 2001.