I have tried to get into the Nosql world for some time, specifically to know where it could be helpful or adequate.
Can someone tell me if you would use a nosql database for something like a financial application, HR, or you would just use it for like, a social network or online gaming back end?
And if you did use it, how simple would it be to program on it?
Additionally, if you wanted to "go down a hierarchy" (for example) would you have to cycle through several key-pairs to find all the information? continuously getting the value of a key, then using that value as a key, and so forth?
I suggest that you read through some of the whitepapers and use cases at http://www.oracle.com/technetwork/products/nosqldb/overview/index.html. Then go through the Getting Started Guide and one or two of the examples to give you an idea of what the API provides, especially in terms of the Major/Minor key facility.
I "cross-read" a document there regarding the major/minor keys, and I think that kind of answers the 2nd part of my question. The application (somehow) would just concatenate several pieces of information to build the appropriate key for the desired value.
But regarding the first part, benefits and why/why nots, I don't see really useful information there. The documentation always speaks about generic cases.
Okay, that's interesting. "not a banking application".
meanwhile I was reading
and I see the major keys and minor key concepts, on users on this case. But to get to them, I would need like a "list of users".
To do this, would I create a major key /Users and then minor keys /-/Smith/Bob , /-/Ellison/Larry,
or would I create a key /Users and then just add a value with the names, like Smith,Bob/Ellison,Larry
and so forth?
I assume you read the previous page in that chapter on Keys? It lays out some possibilities of how to approach the problem. In the case you mention, you might well just use the user name as the major key.
To elaborate on the first part of your question, NoSQL databases are typically used for applications where you need a guaranteed response time (say under 50 milliseconds) no matter how much load is thrown at the cluster. Also, another place we see NoSQL databases being used in when you need to store and retrieve data that is unstructure or sem-structure, and you need to do this very quickly. Also note that NoSQL databases will not give you the richness of a query language for structured data, so you'd be giving alot of functionality on the query side if what you're trying to do is store relational data in a NoSQL store. On the other hand, if what you need is serious low latency responses to requests, the tradeoff may be worth it to you.
Thank you so much for your answer.
this is a great hint.
To elaborate on the first part of your question, NoSQL databases are typically used for applications where you need a guaranteed response time (say under 50 milliseconds) no matter how much load is thrown at the cluster.