While the last two years or so have welcomed the advent of NoSQL databases with unbridled enthusiasm, there are still many obstacles which must be overcome before they can become fully accepted among the more established enterprises. Below are a few of these obstacles:
1. Less mature
RDBMSs have been around a lot longer than NoSQL databases. The first RDBMS was released into the market about 25 years ago. While proponents of NoSQL may present this as a disadvantage citing that age is an indicator of obsolescence, with the advancement of years RDBMSs have matured to become richly functional and stable systems.
In contrast, most of the NoSQL database alternatives have just barely made it out of the pre-production stages, and there are many important features that have not yet been implemented. It’s an exciting prospect for a developer to be teetering on the cutting edge of technology, but caution must be exercised to avoid any disastrous consequences.
2. Less support
All enterprises need to have the reassurance that should a key function within their data management system fail, they will have access to competent support in a timely manner. All the RDMBS vendors have made great effort to ensure that such services are available, and enterprises can also enlist 24 hour support from remote database administration services, which have the expertise to handle most of the RDBMSs.
Each NoSQL database in contrast tends to be open-source, with just one or two firms handling the support angle. Many of them have been developed by smaller startups which lack the resources to fund support on a global scale, and also the credibility that the established RDBMS vendors like Oracle, IBM and Microsoft enjoy.
3. Business intelligence and analytics
NoSQL databases were created with the demands of the Web 2.0 modern-day web applications in mind. As such, most features are directed at meeting these demands. Where the demands of a data app extend beyond the characteristic ‘insert-read-update-delete’ cycle of a typical web app, these databases offer few features for analysis and query ad-hoc.
Simple queries require some programming knowledge, and the most common business intelligence tools that many enterprises rely on do not offer connectivity to NoSQL databases. However, this may be solved in time, seeing as some tools like PIG or HIVE have been created to offer ad-hoc query functionality for NoSQL databases.
The end goal for NoSQL database design was to offer a solution that would require no administration, but the reality on the ground is much different. NoSQL databases still demand a lot of technical skill with both installation and maintenance.
5. No advanced expertise
Because NoSQL databases are still new, virtually every NoSQL developer out there is still learning the ropes, unlike RDBMS systems, which have millions of proficient developers throughout the market and in every field of trade. Over time, this situation will resolve itself, but presently, it remains easier to find an RDBMS expert than a NoSQL expert.
Any organization that wants to implement NoSQL solutions needs to proceed with caution, bearing in mind the above limitations in addition to understanding the benefits that NoSQL databases offer their relational counterparts.
Advantages of NoSQL databases
Regardless of these obstacles, NoSQL databases have been widely adopted in many enterprises for the following reasons:
1. Elastic scalability
RDBMSs are not as easy to scale out on commodity clusters, whereas NoSQL databases are made for transparent expansion, taking advantage of new nodes. These databases are designed for use with low-cost commodity hardware. In a world where upward scalability is being replaced by outward scalability, NoSQL databases are a better fit.
2. Big data applications
Given that transaction rates are growing from recognition, there is need to store massive volumes of data. While RDBMSs have grown to match the growing needs, but it’s difficult to realistically use one RDBMS to manage such data volumes. These volumes are however easily handled by NoSQL databases.
3. Database administration
The best RDBMSs require the services of expensive administrators to design, install and maintain the systems. On the other hand, NoSQL databases require much less hands-on management, with data distribution and auto repair capabilities, simplified data models and fewer tuning and administration requirements. However, in practice, someone will always be needed to take care of performance and availability of databases.
RDBMSs require installation of expensive storage systems and proprietary servers, while NoSQL databases can be easily installed in cheap commodity hardware clusters as transaction and data volumes increase. This means that you can process and store more data at much less cost.