Relational databases have been in vogue for more than two decades, however currently, non-relational or “NoSQL” databases are increasingly becoming popular as an alternative system for database management. Here are some of the top advantages as well as challenges in adopting NoSQL databases:
Advantages of NoSQL
For database administrators, it has been the custom to scale up when the load of the database increases by shifting to bigger and faster servers in preference to scaling out by database distribution across multiple hosts. However, with the increase in rates of transaction and requirements of availability, and with the movement of databases to the cloud or to virtual environments, the economic benefits of scaling out become irresistible. The new generation of NoSQL databases is specially designed to transparently expand on commodity hardware, keeping costs down.
Similar to transaction rates, data volumes being stored have increased exponentially. While RDBMS capacity has also grown, it has become practically impossible for a single RDBMS to handle the data volumes required by some enterprises. Certain NoSQL systems like Hadoop can handle data volumes that easily outstrip the capabilities of even the largest RDBMS.
Lesser DBA Costs
High-end RDBMS typically requires to be managed by highly-skilled and thus expensive DBAs; however NoSQL databases are designed specifically to require lesser management due to features like automatic repair, simpler data modeling, and data distribution; all which lead to a lesser requirement of administration and tuning.
Typically, NoSQL databases are capable of operating on commodity servers for handling huge data volumes in stark contrast with RDBMS that usually require a proprietary and thus expensive server and storage systems. Due to this inherent advantage, the cost of operating NoSQL is usually many times less than that of RDBMS when calculated on transaction speed or on per GB basis.
Flexible Data Models
Changes in the data model in large RDBMS can be a really painful affair requiring the process to be carefully managed with a reduction in levels of service or even with downtime. Data model restrictions are far less in NoSQL because they permit the application to store all kinds of data structures, and making changes is generally a no-fuss affair.
Challenges Associated with NoSQL
RDBMS has been around for quite some time, and their stability and rich list of features are extremely attractive to CIOs. In comparison, the pre-production versions that most NoSQL databases offer lack many of the important features.
All enterprises need that assurance of competent and timely support in case of a failure of the system. All well-established RDBMS vendors deliver a very high level of support making the selection of database system almost automatic. As compared to the organized support by RDBMS vendors, NoSQL is generally open source and support is restricted to local vendors, usually startups without resources, reputation or even the reach to match that of the giants in RDBMS.
NoSQL has evolved to meet the demands of scalability required by contemporary Web 2.0 applications and consequently their features are oriented to meeting such demands. However, data required by applications have a worth that extends beyond the typical cycle of a Web application. Business intelligence is a big IT issue for all companies and they require database mining to improve efficiency and market competitiveness.
There are relatively few facilities to generate queries on an ad-hoc basis and their analysis. Even simple queries demand considerable programming expertise, and no connectivity is provided to popular BI tools by NoSQL. However, there are a bunch of applications that provide better access to Hadoop data clusters, and also provide capabilities of querying on an ad-hoc basis to an array of NoSQL databases.
Administration & Expertise
While the ultimate NoSQL design goal may be to provide a solution that requires zero administration, as of today the reality is well short of that. Currently, NoSQL installation requires a fair amount of technical skill and maintenance, a lot of effort. Because it has been around for a relatively short period of time, it can be quite difficult to find resources that are adept in maintaining and operating NoSQL databases, however, this is expected to be conquered with the passage of time.