NOSQL: Future of Database?
Contributor: Mehreen Chowdhury, Marketing Executive, Nascenia
Database management system (DBMS) is used to manage your all kinds of data in a systematic way. Basically four types of database management systems are there: Hierarchical DBMS, Network DBMS, Relational DBMS, and Object-oriented DBMS.
MySQL, Oracle, SQLite, SQL Server are some popular RDBMS. MySQL is widely used for web applications, especially in concert with PHP. Oracle RDBMS is the world’s largest enterprise software company. It sells many applications system packages that run on its Oracle database. Oracle’s PeopleSoft Inc. provides CRM, purchasing, financials, human resource, supply chain management software packages. SQL Server is also used by many large corporations for their enterprise information needs.
So, there was a time when most of the people liked to use Relational DBMS until Document Oriented Database released. Document Oriented Database is intended for storing, retrieving, and managing document-oriented information. It is one of the main categories of NoSQL databases.
NoSQL doesn’t follow all the rules of a relational DBMS and cannot use traditional SQL to query data. People prefer to use NoSQL more now. It is generally used in very large databases, which are specially prone to performance problems caused by the limitations of SQL and the relational model of databases. Though NoSQL database is capable of catering easy applications, in some cases, it can run in parallel with RDBMSs as well. In OpenSky both MySQL and MongoDB are used at the same time.
NoSQL Database Categories
There are four types of NoSQL databases.
Data is stored in unstructured records consisting of a unique key and the values associated with that record. The key or value model is the simplest and easiest to implement.
2. Document Databases
These are similar to key-value stores and were inspired by Lotus Notes. The model is mainly versioned documents that are collections of different key-value collections. The semi-structured documents are keep in formats like JSON. Document databases are basically the next level of key or value. It allows nested values related to each key. You can do query with it more efficiently.
3. Wide Column Stores
These are optimized for queries over large datasets, and store columns of data together, rather than rows. There are still keys however they point to multiple columns. The columns are organized by column family.
4. Graph Stores
Basically it is used to store info about networks like social connections. We use here a flexible graph model which can scale across multiple machines. This is not complex like SQL. Here we don’t use tables of rows and columns and also the rigid structure of SQL.
Here you can see the list of NoSQL databases.
Google trend (see screenshot below) shows that the popularity of using ‘RDBMS’ is decreasing and ‘NoSQL’ is increasing over the time.
Why it is becoming so popular?
Relational and NoSQL data technology are quite different. Relational model separates data into many interrelated tables that contain rows and columns. Foreign keys are used to create the link between the tables which are stored in columns. It is complex when you want to search for any data in RDBMS. The desired information needs to be collected from many tables (often hundreds in today’s enterprise applications) and combined before it can be provided to the application. Similarly, when writing information, the write must be coordinated and performed on several tables.
NoSQL has come with a simple and flexible technique. As an example, a document-oriented NoSQL database takes the data you want to store and aggregates it into documents using the JSON format. Every JSON document can be thought of as an object to be used by your application. A JSON document might take all the data stored in a row that spans 30 tables of a relational database and aggregate it into a single document or object. It may lead to duplication of information, but since storage is not any longer cost prohibitive, the resulting data model flexibility, simple with efficiency distributing the resulting documents and read and write performance improvements make it a simple trade-off for web-based applications.
NoSQL models are schemaless. So it will allow you to freely add fields to JSON documents without having initial define changes. The data’s format can be modified at any time, without application disruption.
NoSQL databases are scalable and it has many more other advantages. Such as auto sharding, agile sprints, quick iteration, frequent code pushes, automatic replication, integrated caching capability. It follows scale-out architecture instead of expensive, monolithic architecture. Moreover, it is very efficient than relational databases.
Implementation of NoSQL in some major companies and products
3. YouTube uses MySQL but they are moving to Google’s BigTable.
To conclude, it is pretty evident that, companies are leaning more towards noSQL databases for it’s fantastic performance and scalability. May be this is the future of choices for most of the applications with very large data-set.