I'm currently facing a project that I could solve with a relational database in a relatively painful way. Having heard so much about NOSQL, I'm wondering if there is not a more appropriate way of tackling it:
Suppose we are tracking a group of animals in a forest (n ~ 500) and would like to keep a record of a set of observations (this is a fictional scenario).
We would like to store the following information in a database:
- a unique identifier for each animal
- a description of the animal with structured fields: Species, Genus, Family, ...
- a free text field with additional information
- each time-point at which it was detected close to a reference point
- a picture of the animal
- an indication whether two given animals are siblings
- there might be additional features appearing later as more data comes in
We would like to be able to execute the following types of queries:
- return all the animals spotted between in a given time interval
- return all the animals of a given Species or Family
- perform a text search on the free text field
Which particular database system would you recommend ? Is there any tutorial / examples that I could use as a starting point ?