Last Updated: July 4th, 2024

Understanding the Database Management System

A database management system (DBMS) is used to manage all kinds of data in a systematic way. A DBMS allows users to create, store, read, and search for required data in a database. They basically manage huge amounts of data and make it readable for different situations.

Key features of DBMS

  • Data modeling
  • Data storage and retrieval
  • Concurrency control
  • Data integrity and security
  • Backup and recovery

Types of Database Management System

  1. Relational databases
  2. Hierarchical DBMS
  3. Object-oriented DBMS.
  4. NoSQL

What is NoSQL?

Among these types mentioned, NoSQL has been gaining traction in usage lately. NoSQL, or “not only SQL” databases usually refer to non-relational databases focusing on storing data more naturally and flexibly. It is more of an approach type than a query language.

There was a time when most developers used Relational DBMS until the Document Oriented Database was released. MySQL, Oracle, SQLite, and 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 application system packages that run on its Oracle database. Oracle’s PeopleSoft Inc. provides CRM, purchasing, financials, human resource, and supply chain management software packages. SQL Server is also used by many large corporations for their enterprise information needs. Document Oriented Database is intended for storing, retrieving, and managing document-oriented information. It is one of the main categories of NoSQL databases.

Types Of NoSQL Database

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 especially prone to performance problems caused by the limitations of SQL and the relational model of databases. Though the NoSQL database is capable of creating 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.

There are four types of NoSQL databases.

1.  Key Values Stores

Data is stored in unstructured records consisting of unique keys and the values associated with that record. The key or value model is the simplest and easiest to implement.

Examples: Redis, Tokyo Cabinet, Voldemort, Oracle BDB, Amazon SimpleDB, Riak.

2.  Document Databases

These are similar to key-value stores and were inspired by Lotus Notes. This model consists of mainly versioned documents that are collections of different key-value collections. The semi-structured documents are kept in formats like JSON. Document databases are like the next level of key or value. It allows nested values related to each key. You can do queries with it more efficiently.

Examples: CouchDB, MongoDB, RavenDB, Couchbase Server.

3.  Wide Column Stores

These are optimized for queries over large datasets, and store data together using tables, rows and columns dynamically. There are still keys that point to multiple columns. The columns are organized flexibly, allowing different rows to have different sets of columns.

Examples: Cassandra, HBase, Hypertable, Accumulo.

4.  Graph Stores

Graph store systems are used to store info about networks like social connections. Here we use a flexible graph model which can scale across multiple machines. Unlike SQL, this is not a very complex process. We avoid using tables of rows and columns or any rigid structure of SQL. Instead, nodes and edges are used to depict the relationships between all the data stored in nodes.

Examples: Neo4J, InfoGrid, Infinite Graph, HyperGraphDB, Trinity.

Here you can see the list of NoSQL databases.

Google trend (see screenshot below) shows that the popularity of using ‘RDBMS’ is decreasing while ‘NoSQL’ is increasing over time.

NoSQL Google trend

The use of NoSQL raised in recent years

Why NoSQL is  becoming so popular?

Relational and NoSQL data technologies are quite different. The 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 gets complicated when searching 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, they must be coordinated and performed on several tables.

NoSQL has come with a simple and flexible technique. For 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 cost-prohibitive any longer, this results in the data model to be flexible, simple with efficient distribution of the resulting document along with read and write performance improvements.This makes 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 other advantages such as auto sharding, agile sprints, quick iteration, frequent code pushes, automatic replication, and integrated caching capability. It follows scale-out architecture instead of expensive, monolithic architecture. Moreover, it is more efficient than relational databases.

Implementation Of NoSQL In Some Major Applications and Companies

We mentioned how most developers are moving towards NoSQL for DBMS. This can also be observed among large, global companies. Here are some examples of major applications using NoSQL. Chances are, you use all three of the upcoming apps regularly yourself!

1. Google uses BigTable, a NoSQL distributed storage system. It is designed to handle large, petabyte-scale data in a fast, low-latency system that can be scaled with growing numbers of users.

2. Both Facebook and Twitter use Cassandra, a NoSQL distributed database. Both these social media giants have stated how the reliability and scalability to address search issues within the sites and applications.

3. YouTube uses MySQL but they are moving to Google’s BigTable. We have already mentioned why Google uses Bigtable, a NoSQL system, and YouTube obviously wants to utilize its benefits for their own site.

To conclude, it is pretty evident that companies are leaning more toward NoSQL databases for their fantastic performance and scalability. Maybe this is the future of choices for most of the applications with very large data sets.

Contributor: Mehreen Chowdhury, Marketing Executive, Nascenia