Come iniziare a scrivere un database SQL relazionale [chiuso]

2

Mi stavo chiedendo su come database come MySQL e SQLite sono stati sviluppati per essere eseguiti tanto velocemente quanto bene.

Sto cercando risposte alle domande come :

  • Come viene tokenizzato SQL? Costruisci un AST e compili / interpreti come qualsiasi altra lingua?
  • Come si dovrebbero gestire le connessioni al database? TCP? IPC? Come fanno i database di grandi nomi?
  • Come vengono archiviati questi database relazionali veloci? So che SQLite usa un file flat - sembra un incubo di sincronizzazione.

Ovviamente, non mi aspetto che qualcuno mi spieghi semplicemente tutta la teoria del database relazionale - ma mi sono guardato intorno e sono davvero in perdita per i riferimenti per iniziare a imparare su questa roba.

Per rispondere all'inevitabile "perché non usi semplicemente MySQL?": (a) perché sono curioso e (b) forse un giorno vorrò progettare il mio database con un uso specifico in mente.

EDIT: Credo che avrei dovuto renderlo più chiaro. Mi rendo conto che questo è un argomento ampio. Non cerco qualcuno che dica "oh, progetti un database con ..." Se questo è un argomento trattato in un gran numero di libri, quali sono quei libri? Se questo è coperto bene in un P.H.D. tesi di cui sei a conoscenza, cos'è questa tesi? Sono molto consapevole del fatto che questo è un argomento di ampio respiro: non sto chiedendo una risposta specifica per un'ampia domanda, sto chiedendo risorse specifiche per una vasta domanda. Come sempre, grazie per tutto l'aiuto!

    
posta Ryan Marcus 11.08.2011 - 06:46
fonte

1 risposta

12

Scarica una copia di SQLite e inizia a leggere il codice. Questo dovrebbe darti una base molto decente nei concetti fondamentali del design del DBMS.

L'autore di SQLite ha ampie note sul suo sito web su come è stato progettato SQLite, e il motore di database è abbastanza piccolo da essere in grado di avvolgere la tua mente attorno ad esso.

link

SQLite è scritto in C. Se preferisci un linguaggio più "moderno" per leggere il codice, prova la versione C # del motore SQLite qui: link

    
risposta data 11.08.2011 - 08:24
fonte

Leggi altre domande sui tag