You could try using SQLite[1], I wrote an extension to use it from
Scheme and it was a trivial job (the API is very small). I am not sure
about requirements 2 and 3 though.
[1] *http://www.sqlite.org/
-pp
*