sachaa
sachaa

Reputation: 1987

NoSQL databases alternatives/patterns/equivalences to Relational DB

From what I saw in this video...

http://www.youtube.com/watch?v=LhnGarRsKnA

pretty much all the traditional RDBM operations (JOINS, GROUP BY, HAVING, etc) can be done in NoSQL databases through a combination of MapReduce/denormalization techniques.

Is there any article/document that has all these equivalences clearly described. Something like... the equivalence of a JOIN in a NoSQL database would be... bla bla

I just can't find this kind of documentation anywhere :(

Upvotes: 0

Views: 2911

Answers (4)

Dean Hiller
Dean Hiller

Reputation: 20210

Here is a list of patterns to help you gain ground in the noSql world....(it's a work in progress).

https://github.com/deanhiller/playorm/wiki/Patterns-Page

Upvotes: 0

Dean Hiller
Dean Hiller

Reputation: 20210

Be very careful... you probably don't want to join a 1 trillion row table with something. Think about patterns of partitioning your data. For example with playOrm you can partition your data and do S-SQL(Scalable SQL) so you can do all the joins you want to within a partition which in many OLTP apps is exactly what you need as if your customers are businesses, each business is in it's own partition and you can join all you want all the tables related to that one business.

Upvotes: 0

DotNetWala
DotNetWala

Reputation: 6610

This article has a some good info on NoSQL vs using SQL http://www.develop.com/mongoDB

Upvotes: 1

Tom Clarkson
Tom Clarkson

Reputation: 16174

There's a reason you can't find that type of documentation. For a start, unlike SQL, there is no such thing as a standard NoSQL database. Have you tried searching for specific NoSQL data stores?

Also, trying to convert relational operations to non relational systems will just get you into trouble. Instead you need to look at what you are trying to do with those relational operations. For example is group by for sorting a list with categories or for handling heirarchical objects when you don't have multiple value fields? Is join assembling a single object stored in multiple tables or calculating a set intersection?

One of the biggest strengths of SQL is that any data can be represented in a standard way and any query can be run on that data. It won't necessarily be the best fit for that data, but it is standard and there is a single correct answer for almost any question. NoSQL is mostly about being able to optimize your data store for what you actually need by sacrificing the generality of SQL. That may be performance, handling a large dataset, handling inconsistent data, or just simpler code. In short you need to understand your requirements and the tradeoffs involved in optimizing for them rather than just choosing SQL by default.

Your best option is to pick a datastore that fits what you need (a good comparison of high level features is at http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis ) and look for some examples of how systems are designed using that data store. With luck you will find something close to what you are working on.

Upvotes: 2

Related Questions