Tuesday, October 4, 2011

Yes to noSQL..!!


With Oracle diving in to the noSQL type of Databases, buzz for these kind of databases have increased. Oracle Corporation has announced that it is going to launch its noSQL Database soon. The website of ORACLE says, it would be available by mid-October for downloads as it is going to be open source.

Now let me talk something about noSQL first. noSQL can be abbreviated as "Not Only SQL". The noSQL is a class of database management systems that have come up in recent years that differ from typical class of RDBMSes. “noSQL” databases does not provides joins or schemas as RDBMSes. noSQL expands horizontally whereas RDBMSes expands vertically.

A broad range of services over Internet are using noSQL databases. Netflix, digg, Linkedin,Facebook etc are some of the big examples that have adopted noSQL as their choice of DB. There was buzz that Wikipedia should also use this kind of DB because it has a vast amount of data and this is the best solution for that range of data.

noSQL is a collection of key-value. This can be implemented using any programming language as Key-Value stores allow the application to store its data in schema-less way. The data can be stored in a data-type or object of any programming language. This also does not require any particular data-model.

Now, lets come to big question. Why to use noSQL databases instead of SQL databases?
The reason being the volume of data that they handle. Normal SQL Databases are good up to 10 million records and then they start become annoying. But if you have some Billion+ key-values to be stored then these kinds of databases are used. so these are best suited for Forums, blogs, social networking website, where there is huge amount of data and data needs to be fetched fast.
The much bigger question is Can noSQL replace SQL?
I believe this cannot happen at any point of time in near future of 5 to 10 years. SQL databases have their own importance in the IT industry. They are reliable, much more stable and are suitable to needs of the customers (most of them). Although both these target different solutions to different problems.

But the noSQL databases can be in conjunction with RDBMS databases. The data like (username, Order, Money) can be stored in RDBMS where as the application data, social network data, video data can be stored in noSQL databases(as these require performace).
Some of the most popular noSQL DBs are as follows:
  • MangoDB
  • BigTable
  • Apache Cassandra
  • Neo4J
  • MarkLogic
  • Exist
  • Hbase
  • db4o
The list may go on, but these are what most widely used...!!
The Feature set of noSQL as mentioned by Oracle are as follows:
·         Simple Data Model
    • Key-value pair data structure, keys are composed of Major & Minor keys
    • Easy-to-use Java API with simple Put, Delete and Get operations
·         Scalability
    • Automatic, hash-function based data partitioning and distribution
    • Intelligent NoSQL Database driver is topology and latency aware, providing optimal data access
·         Predictable behavior
    • ACID transactions, configurable globally and per operation
    • Bounded latency via B-tree caching and efficient query dispatching
·         High Availability
    • No single point of failure
    • Built-in, configurable replication
    • Resilient to single and multi-storage node failure
    • Disaster recovery via data center replication
·         Easy Administration
    • Web console or command line interface
    • System and node management
    • Shows system topology, status, current load, trailing and average latency, events and alerts.

No comments:

Post a Comment