2012-04-20 19 views
7

Mi piacerebbe imparare l'implementazione dei sistemi di database in profondità. Esiste una semplice implementazione open source del database per scopi didattici che posso passare attraverso il codice? Come se ci fosse un sacco di implementazione del sistema operativo (Minix, Pintos ...). Mi chiedo se ci siano sistemi simili anche per l'educazione ai database.Implementazione semplice del database per scopi didattici

Ho letto alcuni libri di testo e si concentrano principalmente su teoria e concetti.

Grazie mille! Alfred

risposta

3

MySQL, PostgreSQL, SQlite sono tutti opensource. Puoi trovare il loro codice sorgente e la relativa documentazione.
Controllare anche il gruppo di database NoSQL.

+0

Grazie! Sono premiato per questo. Tuttavia, penso che siano troppo complicati da leggere per i principianti ... Ne sto cercando uno con funzionalità molto limitate ma che dimostra il concetto. –

+0

SQLite sembra buono, la struttura è chiara. Ho costruito e guardando il codice. Anche se non è abbastanza piccolo, ma può essere gestito. –

+0

@AlfredZhong, SQLite è un database basato su file. Attualmente è utilizzato con Android e HTML5 come memoria locale. Ha anche un'eccellente estensione spaziale Spatialite – Habib

2

Cosa ti fa pensare che l'implementazione di un database sia semplice?

Quali parti del database ti interessano? Gestione dello storage? Indicizzazione? Lingua di ricerca? Pianificazione delle query? Transazioni?

I sistemi relazionali moderni (anche "giocattolo") hanno tutti questi componenti, il che li rende piuttosto complessi sin dall'inizio. Altri DB, tali database basati su dbm sono molto più semplici. Poi hai cose come Lucene, che è un database per documenti e testo in formato libero - concettualmente semplice ma che richiede molto sforzo per ridimensionare.

È possibile esaminare le implementazioni di SPARQL se si è incuriositi dai linguaggi di query, poiché funzionano contro i tripli negozi RDF (che non sono molto complicati).

Ci sono anche cose come Prevlayer, che è un database in memoria usando un concetto chiamato prevalenza. Probabilmente il più semplice di tutti, davvero quando ci si abbassa.

+0

Grazie! Non penso mai che un sistema di database sia semplice. Sono interessato a tutti ma vorrei impararli uno per uno, non tutti insieme. Se c'è un sistema che mostra uno dei concetti, è quello che sto cercando. Guarderò i sistemi che hai menzionato qui. –

8

Quindi trovare del materiale didattico :) Quando stavo imparando il concetto di DB, il mio professore ci chiede di codificare un semplice dbms. Un importante punto di riferimento è il Redbase:

http://infolab.stanford.edu/~widom/cs346/

Speranza che aiuta.