Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 


I was going through few articles in recent past where I came across with some very good information. We have seen so many RDBMS to name a few is Oracle, MySQL, HANA etc. however there is a buzz on NoSQL DB. Have you heard about NoSQL DB ? Do you know why it is used and where actually it can be used ?

Let's take a look on NoSQL.

What is NoSQL?

NoSQL is a whole new way of thinking about a database. NoSQL is not a relational database. The reality is that a relational database model may not be the best solution for all situations. The easiest way to think of NoSQL, is that of a database which does not adhering to the traditional relational database management system (RDMS) structure. Sometimes you will also see it revered to as 'not only SQL'.


"It is not built on tables and does not employ SQL to manipulate data."


Then how you can retreive data from NoSQL DB?


You can store the data by exposing it using REST based service but Not necessarily all services are REST based.But, all NOSqls provide some API for all major languages like java, .net etc.


You can download them from the their site and add them to your application and start calling their API just like Oracle / DB2 etc.

These DBs are cloud friendly, they can be easily deployed in a cloud environment.

Basically there are 4 type of NoSQL

  • Key / Value Based : Key/Value Data stores are highly performant, easy to work with and they usually scale well.

  • Column Based NoSQL : Column based data stores are extremely powerful and they can be reliably used to keep important data of very large sizes.

  • Document Based NoSQL : Document based data stores are excellent for keeping a lot of unrelated complex information that is highly variable in terms of structure from one another

  • Graph Based— : Used to store information about netwroks, such as social connections.


Some Examples

  • Key/Value Based : Redis , MemcacheDB

  • Column : Cassandra , HBase

  • Document : MongoDB, Couchbase

  • Graph : Orient DB, Neo4J


























Key/Value   – Redis Column – Cassandra Document-MongoDB Graph –   Ne04J
Best   used : Quickly storing data for –   sometimes frequent – future use. Redis supports lists, sets,queues and more. When you need to store data so huge that it doesn't   fit on server, but still want a friendly familiar interface to it. If you need dynamic queries. If you   prefer to define indexes, not map/reduce functions. If you need good   performance on a big DB. If you wanted CouchDB, but your data changes too   much, filling up disks. Very good for storing information   about the relationships between things.
For   Example : To store unstructured data. Web analytics, to count hits by   hour, by browser, by IP, etc. Transaction logging. Data collection from huge   sensor arrays. For most things that you would do   with MySQL or PostgreSQL, but having predefined columns really holds you   back. Mostly used by social networking   sites like Linked in, Facebook to navigate user and suggest mutual friends.