Fritz-Eldridge-Cold (author-author-mascot) DBMS written in Python 2.7. While we do not ignore performance, we are more focused on learning HOW a DBMS works by building our own.
We should at least have unit tests, for sanity checks. We could use unittest if we wanted to keep it simple. It is built in to 2.7.
If we wanted to go with more Behavior Driven Development, there is Behave. It is entirely in Python (so they say, never checked every line), and it has Gherkin style syntax.
A flat file with index's at the top? An index file and another file that does other things? A serialized binary tree of some sort? Decisions decisions.
We probably need to come up with a BNF to describe the query language that we'll be translating into function calls and whatnot. Should we start simple and just do the core functions like select, insert, update, delete ? We can abstract things to just a row object and not worry about types yet.