There is no one correct choice when it comes to selecting a database for a web application. Instead, the data itself and how it is accessed should be the main points to consider (Macedo and Oliveira, 2012). Macedo and Oliveira (2012) state that in general, SQL databases can be used for “stable, predictable and relational data” while NoSQL databases should be considered when handling “temporary, highly dynamic data” (p. 2).
According to Rubino (2019), data can be divided into three different groups: While highly structured data such as numbers, dates and ratings is easy to store and analyze, unstructured data such as videos, pictures and audio are rather complex to handle. Semi-structured data falls between the two with JSON, CSV and RDF as examples. While structured data is perfect for being handled with relational databases, unstructured data might call for a NoSQL approach.
As we have seen from the examples of Redis, which keeps all data in memory, and Cassandra, which is made to spread data over a cluster, the size of the data basis is an important point to consider. Other than this, Rubino (2019) sees the speed and scalability of a database as main points to consider while selecting the right technology. Scalability can be judged by the ability of a database for horizontal scaling, which means adding more servers or vertical scaling which means adding more resources to a server. Structure, size, speed and scalability are referred to as the 4 S’s.