I was thinking of starting a project that very clearly needs a permanent store. I was about to be reluctant to decide on an RDBMS when I came across an article that briefly mentioned CouchDB. It seems that some improvements in database technology have occurred since the last time I looked, so I thought that I would ask about databases here before I enter it.
Here are my criteria. (I again list the criteria at the end, so if you want to skip the explanation, just scroll down.)
The project is open source, and I will not ask for anything about it, so it is advisable that the database is open source and free. In addition, the software should run on both Linux and Windows.
There are parts of the project that should be in C ++. The project is not large enough to justify the use of a second language. So basically it will all be C ++.
This project will not have anything to do with the network, so preferably the database does not require a web library detritus.
The objects that I want to save fall into one of two categories: the base object and the container object. The difference being objects that are containers will contain even more objects, i.e. The problem of parts. I need a database that can handle such cases cleanly and efficiently.
I also expect that the scheme will develop rapidly, at least initially. I suspect that some of the old data simply does not fit into the new schemes. Therefore, I would like to stick to different versions of the circuit. You can win, I would like to be able to convert the data in one scheme to another scheme.
For an application to work this way, people would need to exchange large pieces of the database with each other. Therefore, I need simple ways to import and export data that I could automate to some extent.
Finally, it would be nice if the database could be modeled in unit tests.
Here are my requirements. I reproduced them below to make it easier for people to answer.
Non-technical requirements 1. An open source is preferably free. 2. Run on Windows and Linux
HDF5 - , . ++ python ( ), , , .
http://www.hdfgroup.org/HDF5/
nosql ( , , , ). , , Redis Kyoto. .
, . , SQLite? , , SQL . SQL .
EDIT: ooops, , ... , , , :)