What, Why and Features of NoSQL Databases

What is NoSQL?

The NoSQL Database is a non-relational data management system that does not need a schema. NoSQL database stands for “Not Only SQL” or “Not SQL”. I prefer Not SQL.

SQL syntax is used by traditional RDBMS to store and retrieve data for further analysis. A NoSQL database system, on the other hand, refers to a set of database technologies that can store structured, semi-structured, unstructured, and polymorphic data.

Why NoSQL?

When you use RDBMS for large amounts of data, the system response time slows down. We could “scale up” our systems by upgrading our current hardware to solve this issue. This procedure is costly.

When the load on the database grows, the alternative is to spread it across several hosts. “Scaling out” is the term for this approach. NoSQL databases have high scalability so they can be used to solve the problems with SQL databases

There are many features in NoSQL. Some of them are,

  • Distributed computing system.
  • Higher Scalability.
  • Reduced Costs.
  • Flexible schema design.
  • Process unstructured and semi-structured data.
  • No complex relationship.
  • Open-sourced.

NoSQL Databases are mainly categorized into four types. Each category has its own set of characteristics and limitations. None of the databases mentioned is better for resolving all of the issues. Users should choose a database that meets their product requirements.

· Key-value Pair

· Column-oriented

· Graphs

· Document-oriented

Key-value Pair

Key-value pair databases are the simplest NoSQL databases. Key/value pairs are used to store data. It is designed to accommodate large amounts of data and heavy loads. Data is stored in key-value pair storage databases as a hash table, with each key being unique and the value being a JSON, BLOB(Binary Large Objects), string, or other formats.
Eg:-Redis

Graph

Graph Stores are an expressive framework that consists of a set of Nodes and the relationships that binds them and are used to store data about data networks such as social connections. Graphs are based on mathematical theory and are represented in a graph.
Eg: Neo4J

Column-oriented

They are designed to handle massive datasets and stores data in column families as rows that have many columns associated with it. A keyspace is a term used in column-store databases. In the relational model, a keyspace is similar to a schema. All of the column families, which contain rows, which contain columns, are included in the keyspace. This type of NoSQL databases is similar to SQL databases.
Eg: Casandra

Document-oriented

Document Stores associate each key with a complex data structure called a document, which may contain a variety of key-value pairs, key-array pairs, and even nested documents. Splitting a document into its constituent name/value pairs is avoided because documents are considered as a whole.
Eg: MongoDB

· Can be used as Primary or Analytic Data Source

· Big Data Capability

· No Single Point of Failure

· Easy Replication

· No Need for Separate Caching Layer

· It provides fast performance and horizontal scalability.

· Can handle structured, semi-structured, and unstructured data with equal effect

· Object-oriented programming which is easy to use and flexible

· NoSQL databases don’t need a dedicated high-performance server

· Support Key Developer Languages and Platforms

· Simple to implement than using RDBMS

· It can serve as the primary data source for online applications.

· Handles big data which manages data velocity, variety, volume, and complexity

· Excels at distributed database and multi-data center operations

· Eliminates the need for a specific caching layer to store data

· Offers a flexible schema design which can easily be altered without downtime or service disruption

· Databases and tools for Relational Database Management Systems (RDBMS) are relatively mature.

· No standardization rules

· Limited query capabilities

· When the amount of data grows, it becomes more difficult to preserve unique values as keys become more difficult to find.

· Doesn’t work as well with relational data

· Session Store

· User Profile Store

· Content and Metadata Store

· Mobile Application

· Third-Party Data Application

· Internet of things

· E-commerce

· Social Gaming

· Ad Targeting

  1. MongoDB
  2. Cassandra
  3. ElastiSearch
  4. Amazon Dynamo DB
  5. Redis

3rd Year Software Engineering Undergraduate at SLIIT