NoSQL databases | NoSQL database types

Contents

My father is always hesitant when making expensive transactions online. He is always afraid that the machine will make a mistake. Just imagine that you transfer all your financial assets from one account to another and, due to some data error, is transferred to someone else's account. But nevertheless, no dudo ni un segundo en realizar cualquier tipo de transaction online. What has made such a big difference in our perceptions? Probably the reason is the high precision in such transactions that I have witnessed since my early age. What makes these myriad transactions carried out in banks, with airlines, with e-commerce are as accurate?

To a large degree, this is due to RDBMS, that strictly adheres to ACID principles (atomicidad, consistency, insulation and durability). But over time due to the high pressure of growing data, we have started using NoSQL databases. NoSQL eliminates the need for a schema, Thus, empuja la capacidad de manejo de datos por un gran margin al comprometer el ACID. But nevertheless, with precise support applications implemented, NoSQL provides a good combination of high data handling capabilities with good precision. In this article we will discuss popular NoSQL databases.no-sql-7734706

Image Credit: http://www.tomsitpro.com

NoSQL full form?

NoSQL doesn't actually have a complete form or even a real meaning. The term was accidentally coined at an event by Johan Oskarsson to discuss the open source distributed network.. The "#NoSQL" was just a Twitter hash tag to host this meeting. Later, algunas personas de la database en esta reunión encontraron este hashtag apropiado para nombrar estas bases de datos no relacionales. We don't really have a strict definition for NoSQL. But nevertheless, Here are some common features of NoSQL databases:

1. They are not relational

2. Mainly open source

3. All are suitable for clusters

4. They are less schemes

5. They emerged from the web world of the 21st century.

But nevertheless, we often refer to NoSQL as schemaless, this does not mean that these databases do not adhere to any kind of schema. For instance, consider the following NoSQL expression:

Tab1[“Revenue” ] * Tab1[“Total count”]

NoSQL has an implicit schema, which may not be constant throughout the database. Such a thing is both a blessing and a curse. The basic thing is that every time we want to modify a field we need to understand this implicit scheme. The good thing is that with a changing scheme, much less effort is required to add this database compared to RDBMS. What's more, RDBMS is not great with a distributed network, what is not the case with NoSQL.

NoSQL database types

But nevertheless, in the literature NoSQL has been divided into 4 main types, I found a very interesting way suggested by Martin Fowler to categorize NoSQL. Based on the way NoSQL stores data, It is mainly of two types:

1. Added database

2. Graph-based database

The main difference between the two is that in the aggregate type, the database tries to store all the information for a particular id (it can be a person, a transaction or a product, etc.) as a single object. While the chart type follows the exact opposite philosophy. The graphical database tries to cut the data into very granular information and stores it with all shared relationships or edges. We will discuss the added databases, that are more common today, in this article.

Aggregate databases

Let's take an example to understand this aggregate database concept. Here's what an article on analyticsvidhya looks like:

article-7605086If we were using RDBMS to store our data for DataPeaker, we would have created relational tables. One can be for information related to the author, another may be about the information related to the article and yet another may correspond to each category. But when we open an article, we need all this information together. Therefore, we are more interested in aggregate information than in such granular information. But nevertheless, granular information could have given me a better scope of analysis, so you might be more interested in minimizing the loading time of the web page. Therefore, we need a database in which all this information is stored in one place. This can be called aggregate-oriented databases.

Key value databases / Document databases :

Key value databases and document databases are very similar. You can think of document databases as a nested form of key value databases. Then, a simple key-value database is displayed:

keyvalue-7131426

Image Credit: http://nosql.rishabhagrawal.com

Now, if I want to get information on an Ipod from 16 GB, I just need to provide the KET “13a2” to the database. Here's what a document database will look like:

document-2985559

Keep in mind that in each document we have aggregated information about that identification. Link this with our analyticsvidhya example. In our case, we will have all the author's name, title name, etc. as key-value pairs in each document. Now I can extract the whole document at once, since it is stored in the same object.

Column-oriented databases :

Suppose you have an RDBMS order table with 1 million rows and 100 columns. Now you want to extract all the names of customers with orders of more than $ 500. Basically, need a command in only two columns, but to make this query, you will essentially have to navigate the 100 columns. Column-oriented databases provide a solution to this problem. A detailed discussion of this type of database is beyond the scope of this article., but what you need to understand is just the underlying concept. Here is a simple example of a row and column oriented database:

column-oriented-database-4565628

Image Credit: www.timestored.com

Column-oriented database stores each column in a separate location, which allows us to reach only those columns that are necessary for us. This makes queries much faster in search and filtering operations.

Final notes

NoSQL databases are pushing our limits for storing and analyzing data. With such structures without schema, they also allow us to change variables / attributes at any time. They are exceptionally fast to run queries on these aggregate entities. But nevertheless, this statement comes with a title that in case the operation should not be done at the aggregate level of the table, becomes more complicated compared to RDBMS. For instance, if we have data stored for each order in aggregate NoSQL database. Any inquiries regarding these Order IDs will be exceptionally quick. But in case you need information at the customer or product level, these tables may not be very efficient. For such processes, necesitará escribir consultas de MapReduce. Therefore, it all depends on the type of use as to which database suits you best.

Was the article helpful to you? Share with us your experiences with different types of NoSQL databases. Let us know your thoughts on this item in the box below..

Subscribe to our Newsletter

We will not send you SPAM mail. We hate it as much as you.

Datapeaker