I am developing a database I call “CSDB” - the CSV Database for a Fez Domino (now using a Panda).
The “database” is CSV files on an SD card. The rule with the file is that the first column must contain the primary key, and the records must be sorted on this key (by an external program). I then use a binary search to find records by key and return the row as an object graph using JSON de-serialisation. I can only find records based on key - not contents because of speed.
I designed it for fast lookups. It can look up a record with a 12 character key in 250,000 rows in about 50ms direct from the SD card. Not bad for something that uses less than 2k of working memory in the process. I’m very proud
Anyway, CSDB currently handles updates - with fixed size fields, and inserts - but in a special way. It is too expensive to insert the record into the main file, so I insert new records in a secondary file and then merge them later with a PC program. It can be done directly on the Fez, but I don’t need that at the moment.
I was going to implement a more complete C-ISAM database, with an external index file (real old school stuff), but I just don’t need it for my application at the moment. Maybe with proper community motivation we could build on this.
What is your application?