
For years, organizations have been using On-premises relational database systems as the heart of mission-critical applications. The classic On-premise relational mode as we know might not likely survive in the world of cloud computing.
The first aspect which I like to discuss is fate of database model in cloud: Relational vs. NoSQL. RDBMS requires that data is normalized so that it can provide quality results and prevent duplicates and orphan records. Normalizing the data requires creation of more tables, which require table joins, and thus requiring more indexes and keys. The problem becomes more apparent with highly diverse datasets with lots of unstable indexes on them probably a hundred or so tables, and each table having varying indexes. I/O becomes chaotic when indexes of different tables are stored on different parts of persistence storage devices like HDD or SSD and you have concurrent reads/writes. In case of Cloud, the storage represented to the user may be different disks or different kinds of store; Cloud storage comes with abstraction; as databases start to grow into the terabytes or even petabytes, performance starts to fall off significantly.
NoSQL uses multi dimensional data structure and groups relevant data closely to reduce the I/O time required to return the query results. NoSQL uses the concept of maps which groups multiple index values allowing for a single map to handle a dynamic set of queries based on many attributes. NoSQL distributes the work across multiple node locations (often deployed on a grid) so that many threads are working simultaneously and independently. For all these reasons NoSQL is clearly the best model for distributed computing environment.
Web giants such as Google, Facebook, and Amazon have long used NoSQL database model in order to manage their own online operations, and their work inspired NoSQL open source projects, including MongoDB and Cassandra. Traditional database players like Oracle and Microsoft are getting into the game. This Oracle is introducing its own version of NoSQL database.
Second aspect which I like to discuss is the fate of database deployment model in the realm of cloud : On-premise vs. Database as a Service (DbaaS). On-premises database systems faces huge number of challenges. They are complicated to configure and maintain compared to the low-touch model of cloud computing.On-premises are not designed to automatically scale elastically in response to varying computing demand.
A cloud based Database as a Service (DBaasS) provides easy access to on-demand, database.
- DbaaS are easy to use as users don’t have to perform any low-level management such as backups, configuration and patching.
- DbaaS can be automatically tuned and improved by the cloud service provider.
- DbaaS are cost-efficient because they don’t require any up-front investments like hardware and software licenses.
- DbaaS are instantly available to whoever needs them with just a few mouse clicks.
Final Thoughts:
It should be pointed out that using NoSQL model requires specialized skills and some companies usually prefer to keep their data on their own servers (On-premise). What’s more, if you ever were to reach a large enough data scale, it may not make monetary sense to keep paying cloud computing providers. In the realm of cloud I personally see a widespread adaptation of NoSQL as a data model and Database as a Service (DbaaS) as a database deployment model.
References:
http://hificoding.com/database/40-database-scaling-with-nosql
http://arifn.web.id/blog/2010/05/05/nosql-the-end-of-rdbms.html
http://devcenter.database.com/page/The_Future_of_Database_Technology_is_in_the_Clouds
http://www.oracle.com/technetwork/database/nosqldb/learnmore/nosql-database-498041.pdf
*If you find something is misleading or not correct then please throw some light on it.