Code360 powered by Coding Ninjas X Naukri.com. Code360 powered by Coding Ninjas X Naukri.com
Table of contents
1.
Introduction
2.
Why is NoSQL required?
3.
The history of NoSQL Databases
4.
Timeline of NoSQL
5.
Advantages of NoSQL
6.
Disadvantages of NoSQL
7.
Types of NoSQL
8.
When should we use NoSQL?
9.
FAQs
10.
Key Takeaways
Last Updated: Mar 27, 2024

Introduction to NoSQL

Author Divyansh Jain
0 upvote

Introduction

A NoSQL database, which stands for "non-SQL" or "nonrelational," is a database that allows for data storage and retrieval. This information is represented in ways other than tabular relationships found in relational databases. Such databases first appeared in the late 1960s, but it wasn't until the early twenty-first century that they were given the name NoSQL. NoSQL databases are increasingly being used in real-time web applications and big data analytics. Not only is SQL a term used to stress the fact that NoSQL systems may support SQL-like query languages.

A NoSQL database offers design simplicity, horizontal scaling to clusters of servers, and greater control over availability. NoSQL databases employ different Data Structure than relational databases by default, allowing NoSQL to execute some tasks quicker.

The applicability of a NoSQL database is determined by the problem it is supposed to answer. NoSQL databases' data structures are sometimes seen to be more flexible than relational database tables.

Jimmy Fallon Celebs GIF

Source: Giphy

Many NoSQL databases make trade-offs between consistency and availability, performance, and partition tolerance. The usage of low-level query languages, a lack of standardized interfaces, and large prior investments in relational databases are all barriers to the wider adoption of NoSQL storage. Although most NoSQL databases lack true ACID transactions (atomicity, consistency, isolation, and durability), a few databases, including MarkLogic, Aerospike, FairCom c-treeACE, Google Spanner (though technically a NewSQL database), Symas LMDB, and OrientDB, have made them a central part of their designs.

Most NoSQL databases have eventual consistency, which implies that changes to the database are propagated to all nodes over time. As a result, data searches may not immediately return updated data or may result in erroneous data being read, a condition known as stale reads. Lost writes and other data loss may occur in several NoSQL systems. Certain NoSQL systems include capabilities like write-ahead logging to prevent data loss. When doing distributed transaction processing across several databases, maintaining data consistency becomes much more complex.

Both NoSQL and relational databases struggle with this. Even today's relational databases don't provide cross-database referential integrity constraints. Few systems support both the X/Open XA standards and ACID transactions for distributed transactions.

You can also read about - Specialization and Generalization in DBMS and  Checkpoint in DBMS.

Why is NoSQL required?

The concept of NoSQL databases gained traction among Internet behemoths such as Google, Facebook, Amazon, and others who deal with massive amounts of data. When you utilize RDBMS for large amounts of data, the system response time slows down.

We could "scale up" our systems by updating our existing hardware to overcome this challenge. This procedure is costly.

When the load on the database grows, the option is to disperse it across numerous hosts. "Scaling out" is the term for this procedure. Because NoSQL databases aren't relational, they scale out better than relational databases because they're built for online applications.

The history of NoSQL Databases

Flat File Systems were popular in the early 1970s. Data was saved in flat files, which have several drawbacks, including the fact that each organization uses its own flat files and there are no standards. Because there is no standard way to store data, it is extremely difficult to put data in files and retrieve data from files.

E.F. Codd devised the relational database, which answered the question of why there was no standard way to store data.

However, relational databases later had the problem of being unable to handle large amounts of data; as a result, a demand for a database that could handle all types of difficulties arose, and the NoSQL database was created.

Also see, Multiple Granularity in DBMS and Recursive Relationship in DBMS

Timeline of NoSQL

  • 1998- Carlo Strozzi used the name "NoSQL" to describe his open-source relational database.
  • 2000- Neo4j, a graph database, is released.
  • 2004- Google BigTable was launched.
  • 2005- CouchDB was launched.
  • 2007- The research paper on Amazon Dynamo was published.
  • 2008- Facebook releases the Cassandra project to the public.
  • 2009- The phrase NoSQL was resurrected.

Advantages of NoSQL

  • High scalability: For horizontal scaling, NoSQL databases use sharding. Sharding is the process of partitioning data and distributing it over numerous machines while maintaining the data's order. Horizontal scaling entails adding new machines to handle the data, and vertical scaling is adding more resources to the present machine. Vertical scaling is difficult to implement, whereas horizontal scaling is straightforward. MongoDB, Cassandra, and other horizontal scaling databases are examples. Because of its scalability, NoSQL can manage large amounts of data. As the data expands, NoSQL scales to accommodate it efficiently.
  • High availability: The auto replication feature in NoSQL databases makes them extremely available since data replicates itself to a previous consistent state in the event of a failure.

Also See, difference between sql and nosql

Disadvantages of NoSQL

  • Backup: Some NoSQL databases, such as MongoDB, have a significant backup flaw. MongoDB does not include a method for backing up data in a consistent manner.
  • Management challenge: Big data technologies are designed to make managing vast amounts of data as simple as possible. But it isn't that simple. Data administration in a NoSQL database is far more complicated than it is in a relational database. NoSQL, in particular, is known for being difficult to set up and even more difficult to administer on a daily basis.
  • Large document size: Data is stored in JSON format in some database systems, such as MongoDB and CouchDB. This means that documents are quite huge (due to BigData, network bandwidth, and speed), and having detailed key names actually harms the document size by increasing it.
  • GUI is not available: In the market, there are no flexible GUI mode tools for accessing the database.
  • Narrow focus: NoSQL databases have a very restricted focus because they are primarily intended for storage and offer extremely little functionality. In the topic of Transaction Management, relational databases outperform NoSQL databases.
  • Open source: The NoSQL database is an open-source database. There is currently no reliable NoSQL standard. In other words, the two database systems have a strong possibility of being unequal.

Types of NoSQL

NoSQL databases are divided into four categories:

  1. Key-value Pair Based
  2. Graphs based
  3. Column-oriented Graph
  4. Document-oriented

 

Source: Dev community

When should we use NoSQL?

  • When you need to store and retrieve a large volume of data.
  • The relationship between the data you keep isn't as significant as you might think.
  • The data is unstructured and constantly changing.
  • At the database level, support for constraints and joins is not necessary.
  • The data is always growing, and you'll need to scale the database on a regular basis to keep up with it.

    You can also read about the Multiple Granularity Locking.

FAQs

  1. Is schema used in NoSQL?
    SQL, on the other hand, almost always employs a schema, whereas NoSQL does not. As a result, when it comes to dealing with databases, NoSQL is considerably more versatile and dynamic. Also, keep in mind that NoSQL is a term that encompasses numerous databases rather than a database in and of itself. While you can construct a "schema" for a NoSQL database, it won't be the same rigid schema you're used to with SQL databases.
     
  2. What exactly is the distinction between NoSQL and SQL?
    While there are a number of distinctions between the two database formats, the most noticeable difference is in the way data is stored. SQL databases rely primarily on a predefined model and a standardized structure. The rigid tables that hold the data provide the structure, while the models define how the data is related and how the tables are connected. NoSQL is distinct in that it does not store data in rigid tables. Information is stored in NoSQL in fluid structures that can be changed as one wants to change them.
    SQL databases, of course, make use of the SQL programming language. This enables developers to retrieve stored data in a uniform and logical manner across all SQL databases.
     
  3. When should I use a NoSQL database?
    In general, NoSQL is a good choice if you expect to need to increase hardware quickly in the future or make changes to the data model as you go. When your use case necessitates it, you should use a NoSQL database; explore several types of databases to find which one best suits your needs.

Key Takeaways

In the above session, we have learned about NoSQL and its uses. We have also learned about its advantages and disadvantages. Hope you learned something. But the knowledge never stops, so to better understand the Database management system, you can go through many articles on our platform. 

Don't stop here; check out the Top 100 SQL Problems to get hands-on experience with frequently asked interview questions and land your dream job.

Happy Learning Ninja :) 

Live masterclass