Introduction

Why do some organizations need to move to NoSQL? Technology is one field that changes every day, and organizations need to meet the new technologies and be up to date. Due to the vast amount of data generated every second, the relational database faces difficulties processing this amount of data. The NoSQL approach appears to solve this issue. To understand NoSQL, we need to cover some points related to this topic. This article will give NoSQL introduction and some suggestions about using NoSQL in organizations.

Nosql Database Overview

NoSQL is a database where it can be used to store and retrieve big data. There are multiple meanings of NoSQL, and one of them is Not only SQL or non-SQL, which also means there is another database type other than a relational database. According to NoSQL’s official website, the NoSQL is a “Next-Generation Database Management System mostly addressing some of the points: being non-relational, distributed, open-source and horizontally scalable.”(NoSQL Databases List by Hosting Data – Updated 2021, 2021).

NoSQL is designed to process many kinds of data, either structured, semi-structured, or non-structured. Also, dealing with these different types of data gives NoSQL the upper hand over relational databases that can handle only structural data. In addition, the schema flexibility, which means you can store data in the database with no predefined structures, makes NoSQL more helpful to work with big data. Also, an article by IBM Cloud Education (2021) shows that NoSQL is used within the distributed database, which means that the data exists in multiple local or remote devices.

Types Of NoSQL Databases

There are four main types of NoSQL databases, Key-Value Stores, Column-Oriented Databases, Document Databases, and Graph Databases.

Figure 1: NoSQL main types – (big data analytics news, 2020)

  • Key-Value Stores: it is the most basic type of NoSQL database and is designed to process a massive amount of data. It stores data as a hash table, and the value could be any kind of data. For instance, string, JSON, BLOB (Binary Large OBject).
  • Column-Oriented database: works on data warehouses and business intelligence. The column-oriented mechanism is to store the data based on columns, and each column contains the same data type and is treated individually.
  • Document Databases: store the data into documents, and the database contains a set of these documents. The document itself is a Key-Value collection.
  • Graph Databases: this type of database contains nodes and edges. Each node contains data, and the edges link these data with each other. Usually, social media platforms use this type of NoSQL database.

NoSQL Database’s Key Characteristics

Fixed Schema

Because NoSQL is different from Relational Database Management (RDBM), it has different characteristics. Some of these characteristics are, Schema flexibility or schema-free; in the book Introduction to NoSQL, Acetozi says that NoSQL has no fixed schema, which allows the NoSQL user to insert data with no predefined schema as the relational database requires (2017). In addition, an example of schema flexibility is that if the developer points to a primary key, we need to change it to another primary key. Changing the schema will be much easier than RDMS.

Free Of Joins

The second characteristic is NoSQL is free of joins. NoSQL is different from relational database management when it comes to joins. RDBM use joins to link the data and present the relationships. However, NoSQL does not use joining in linking data in most cases. In an article in sitepoint.com, Buckler says that NoSQL must not have relationships between the files (2017). Furthermore, no relationships mean if we need to repeat some data in multiple files, that would be acceptable.

Distributed Computing

The third feature is that NoSQL uses Distributed computing which means using many nodes or devices as a cluster to store and process the data. Distributed computing ensures that the system will be available even if some nodes field to work because the distributed system allows the sharing data and resources between each other.

Horizontally Scalability

The fourth benefit is Horizontal scalability. One of the essential NoSQL characteristics is the ability to scale horizontally. Moreover, this will save costs and make resources expand easily. Scale horizontally means if the database needs to scale up, just add nodes or machines to the network to meet the database needs.

Base Approach

Lastly, NoSQL uses the BASE approach, unlike RDBMS, which uses ACID (Atomicity, Consistency, Isolation, and Durability). The BASE stands for three characteristics that can be applied to NoSQL databases. Knight, in 2021 writes in dataversity.net explaining these terms as follows:

  • Basically Available: The database is guaranteed to be available.
  • Soft State: Database state may change even if the system has no interaction because of the consistency
  • Eventual Consistency: After the application input, the database will eventually be consistent. The data will be replicated over multiple nodes until it reaches a consistent state. At the transaction level, however, consistency is not ensured.

NoSQL Advantages Over Relational Databases

The relational database is the traditional type of database. The technology is moving toward every day, and the generated data type became not suitable for processing in relational databases. So, the NoSQL database comes to solve many issues that relational databases cannot handle. Many advantages make NoSQL a better choice to process and store the organization’s data over RDBMS. The first one is:

Big Data Support:

NoSQL supports different types and a vast volume of data. The amount of data produced makes NoSQL better than RDBMS in dealing with this vast data. NoSQL databases can readily handle large amounts of data (Olivera, 2019).

High Scalability:

As mentioned, NoSQL is characterized by it is the ability to expand as much as the data needed with not much complexity. The type of scalability that NoSQL support is horizontal expansion. The horizontal expand used because NoSQL works on distributed systems which is the next advantage.

Distributed Database System

NoSQL stores data in distributed machines, and it can be in different locations. (Chen & Lee, 2019). In other words, distributed databases are “designed to work as a cluster, that is, a set of nodes (machines) that are connected and that communicate over a network to address a specific problem (in this case, the data persistence problem).”(Buckler, 2017). Distributed databases give NoSQL many advantages, such as the capability to share the resources between the devices that are connected. Besides, it makes the data more consistent if some devices turn off, the other devices can access the data and make them available.

Schema Flexibility

It is one of the NoSQL characteristics which make it very powerful and easy to use. Even if a structure was defined on the data, it would be easy to change the schema when needed and without stopping the database (Team, 2021).

No complicated Relationships: Since NoSQL is flexible about the schema, this makes the relations between data in the database straightforward with not a lot of complicated.

 

What Are The Drawbacks? When Should Nosql Be Used? When Should It Not Be Used?

If the organization has multiple data types that need to be in one database and there are no relations between these data, then the NoSQL database is the best choice to go with. Because NoSQL has different types, and each one of these types can solve specific kinds of issues. However, if the organization has just a structured data type and there is an apparent relationship between these data, then the best choice is the relational database. Furthermore, as NoSQL has many advantages, it also has some disadvantages, making it not the right choice in some organizations. Some of these drawbacks:

  • No Standardization: Although there are many NoSQL databases, there are no standards for these databases (Team, 2021).
  • Limited query capabilities: Although NoSQL databases are newer than RDBMS, it lacks the ability to have queries as much as RDBMS. Also, NoSQL does not support Structural Query Language (SQL), which works perfectly with the relational database. However, some NoSQL databases support some SQL commands (Olivera, 2019).
  • The BASE does not make it easy to program eventual consistency. Developers used to code based on the ACID approach. With NoSQL, they need to code the systems based on a BASE approach, which complicates the systems (Olivera, 2019).

Main Nosql Databases In The Marketplace

Because NoSQL excellently supports Big Data, big companies use this type of database to store and process their data. In addition, some companies created their NoSQL database and made it available in the market. Here there are the most common five types of NoSQL databases. NoSQL databases can be used based on the type of problem that needs to be solved:

  • Cassandra was created by Facebook.
  • Bigtable was created by Google.
  • DynamoDB was created by Amazon.
  • MongoDB
  • HBase

Cassandra was primarily developed by Facebook and is based on Google’s Big Table and Amazon’s DynamoDB (Chen & Lee, 2019). MongoDB can be used using Python. Moreover, Hbase is intended for data mutability and reduced latency (Finley, 2011).

Type Of Modeling Techniques Are Available To NoSQL Databases

Generally speaking, NoSQL modelling techniques are divided into three main techniques. Conceptual techniques, general modeling, and Hierarchy modelling techniques. The conceptual model contains three techniques denormalization, aggregates, and application side joins. General modeling contains eight techniques as follows:

  • Atomic aggregates.
  • Enumerable keys
  • Dimensionality reduction
  • Index table.
  • Composite key index.
  • Aggregation with composite keys.
  • Inverted search.

In addition, the hierarchy model contains seven techniques, tree aggregation, adjacency list, materialized paths, nested sets, nested documents flattening, nested documents flattening: proximity queries, and batch graph processing.

What Might You Suggest?

Each one of these techniques is used to solve different kinds of issues. Nevertheless, these techniques are not suitable for all of the NoSQL database types. For example, denormalization makes data retrieval fast, making it suitable if the organization wants to store the data and apply queries. However, application-side joins are good database techniques if the organization has data that need to be linked. Also, if the organization needs a database to process transaction applications, the best technique will be atomic aggregates. So, to find the best technique, we need to understand the organization’s needs to find the proper technique to use.

Examples Of How NoSQL Databases And Modeling Techniques Are Used In The Real World

NoSQL databases are used by big companies around the world. For example, Apple used the Cassandra database with 75,000 nodes to store more than 10PB (petabytes), and Netflix used the same database with 2500 nodes to store 420TB (Chen & Lee, 2019). In addition, Twitter generates around four PB per year, and they use multiple types of NoSQL databases; Hbase is one of the NoSQL used by Twitter for the power search feature. (Finley, 2011)

Will NoSQL Databases Be Around For The Next 3-5 Years? If So, How Might They Change?

In my opinion, NoSQL databases are the future of databases, but this does not mean the relational database will be useless. Each type of database has it is own functions and ability to solve issues. I believe NoSQL will be around for more than 3-5 years. The thing that might change that we might see is creating more models and techniques. In addition, most of the disadvantages will be solved.

  1. Acetozi, J. (2017). Pro Java Clustering and Scalability: Building Real-Time Apps with Spring, Cassandra, Redis, WebSocket and RabbitMQ (1st ed.). Berkeley, CA: Apress. https://doi.org/10.1007/978-1-4842-2985-9_7
  2. big data analytics news. (2020, December 31). Types and Examples of NoSQL Databases. https://bigdataanalyticsnews.com/types-examples-nosql-databases/
  3. Buckler, C. (2017, October 4). Using JOINs in MongoDB NoSQL Databases – SitePoint. Sitepoint. https://www.sitepoint.com/using-joins-in-mongodb-nosql-databases/
  4. Chen, J. K., & Lee, W. Z. (2019). An Introduction of NoSQL Databases Based on Their Categories and Application Industries. Algorithms12(5), 106. https://doi.org/10.3390/a12050106
  5. Finley, K. (2011, January 2). How Twitter Uses NoSQL. ReadWrite. https://readwrite.com/2011/01/02/how-twitter-uses-nosql/
  6. IBM Cloud Education. (2021, August 18). NoSQL Databases. IBM. https://www.ibm.com/cloud/learn/nosql-databases
  7. Knight, M. (2021, March 15). What Is BASE? DATAVERSITY. https://www.dataversity.net/what-is-base/
  8. NoSQL Databases List by Hosting Data – Updated 2021. (2021, September 18). Hosting Data. https://hostingdata.co.uk/nosql-database/
  9. Olivera, L. (2019, June 5). Everything you need to know about NoSQL databases. DEV Community. https://dev.to/lmolivera/everything-you-need-to-know-about-nosql-databases-3o3h#advAndDis
  10. Team, P. F. (2021, August 27). NOSQL vs SQL. Key differences and when to choose each. Pandora FMS – The Monitoring Blog. https://pandorafms.com/blog/nosql-vs-sql-key-differences/
  11.  

 

اخر المقالات 

apps productivity Technology

Obsidian ABC

Graphic Design Uncategorized

أنواع الهويات البصرية

Graphic Design

قصة العلامة التجارية

Technology

الذكاء الاصطناعي إلى أين؟

Technology

الذكاء الاصطناعي

Graphic Design

اسس تصميم الشعارات

اترك رد