Instead of storing data in rows and columns in a table, data is locked in documents, and these documents are grouped together in collections.
Each document can have a completely different structure.
Some names: CouchDB, MongoDB.
Data is stored in an associative array of key-value pairs. The key is an attribute name, which is linked to a value.
Some names: Redis, Voldemort (developed by LinkedIn) and Dynamo (developed by Amazon).
Used for data whose relations are represented well in a graph. Data is stored in graph structures with notes (entities), properties (information about the entities) and lines (connections between the entities).
Some names: Neo4j, InfiniteGraph.
Instead of ‘tables’, in columnar databases you have column families, which are containers for rows.
Unlike RDBMS, you don’t need to know all the columns up front, each row doesn’t have to have the same number of columns. Columnar databases are best suited to analysing huge datasets.
Some names: Cassandra and Hbase.
The idea that SQL and NoSQL are in direct opposition and competition with each other is flawed one, because many companies use them concurrently. There is not a one-system-fits-all approach, choosing the righ technology hinges on the use case.
If your data needs are changing rapidly, you need high throughput to handle growth, or your data is growing fast and you need to be able to scale out quickly and efficiently, maybe NoSQL is for you.
But if the data isn’t changing in structure and you’re experiencing moderate, manageable growth, you needs may be best met by SQL technologies.
Leave a Comment