Relational and Non-Relational Databases Relational and non-relational databases both have their specific uses, advantages, and disadvantages. Selecting the right type of database is essential for the smooth operation of your business. Gyuner Zeki Solutions Architect This blog will explain relational databases and non-relational databases with simple terms and examples. For the sake of simplicity, I will use Google Sheets and Microsoft Excel examples because they are easy to understand, and most people have some experience with them. While technically not a database, the way they are designed is similar to a relational database (at least from a visual perspective). In this post, we will ignore how it works under the hood and focus on explaining the general concepts. Relational Database Wikipedia provides a precise but technical explanation of relational databases: “A relational database is a digital database based on the relational model of data. A software system used to maintain relational databases is a relational database management system (RDBMS).” You can read the full version at https://en.wikipedia.org/wiki/Relational_database. Let’s try to explain that more simply. Imagine you love football and want to keep track of different activities during the game. For that purpose, let’s use Google sheets. The first version of your sheet is very simple, something like this: This is a good starting point, but lacks detail. If there is a corner kick happening, you don’t know from which side and who performed the kick itself. So, let’s extend the sheet by adding two additional columns called “Side” and “Who performs corner.” It now looks like this: Later we decide that we need details about the card as well. Was it “red” or “yellow?” So we add another column for the type of card. Our sheet now looks like this: At this point, you can probably see that something is going wrong here. You’re starting to have a lot of fields with empty values because the newly added columns are relevant only for specific types of events. Resolving this is simple. We split the data out into multiple sheets, like so: That resolved the empty fields, but now we have a different problem. It’s difficult to follow which corner-specific details are linked to which event. So, we add a new column and name it “event id.” By adding this event id, we can now reference the corner-specific sheet for additional data on each row. Here is how it looks: At this point, we can say that if we consider Google Sheets a Database, this example represents a relational database. SQL Before continuing with NoSQL, we must first clarify what SQL is. As we did for relational databases, let’s see what Wikipedia has to say: “SQL is a domain-specific language used in programming and designed for managing data held in a relational database management system (RDBMS).” Again a succinct definition, but a bit too technical. Let’s clarify it with an example. Extending the football scenario from earlier, I now decide that I want to delegate the data entry to another person since I want to focus on watching the game. So, I go and find someone willing to do it, and we agree that they would type in the data. I watch the football match and verbally relay each event to them. So far, the scene looks like this: That’s all well and good, but then I decided to watch two matches at the same time. So I needed to find another person to help me keep track. However, one of the people speaks English, and the other speaks Bulgarian. So now it looks like this: The output of both people is the same, but the way I communicate with them is different. To remedy that, we define a common language — SQL, which both people can understand. Now I have a common way of communicating with our Google Sheets. SQL allows us to connect to different databases, but the way we communicate with them is identical. NoSQL No surprise, we will again start with the Wikipedia definition: “A NoSQL database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases.” Simply put, NoSQL is a database without a relational model and SQL interface (most of the time). So, what exactly is a non-relational database? Non-relational databases To explain non-relational databases, we will return to Google Sheets once more. Instead of creating new columns or new sheets for each field, all of the information for an event is entered into a single column. The details for each event are separated by “|” within that column. When using this structure, relations are no longer needed to add event-specific details. Check out the following example: Both relational and non-relational databases have their specific uses and have their advantages and disadvantages. SQL One of the main advantages of SQL is that it supports atomic transactions – meaning that a certain update of a database does not occur partially but happens all at once and cannot be observed in progress. This type of transaction is great for solutions where the integrity of data is supercritical, like in banking. One of the most significant disadvantages is scalability (rapid changes in the growth of data, either in traffic or volume) — scaling SQL is much more complex than NoSQL. NoSQL The main advantage of NoSQL is scalability — it can scale much faster and easier, and rapid changes in the growth of data, either in traffic or volume, can be more easily monitored and controlled. One disadvantage is atomic transactions; most NoSQL supports eventual consistency, meaning that the database update happens slower than in SQL. If you update information, there may be a fraction of a second delay to get the old data. Selecting the right type of database is essential for the smooth operation of your business. Database experts are invaluable for any data-driven industry, as properly managed data can vastly improve expense and resource optimization. Tags Systems Architecture Share Facebook LinkedIn Twitter Share Facebook LinkedIn Twitter Sign up for our monthly newsletter. Sign up for our monthly newsletter.