When to use NoSQL Databases

When to use NoSQL Databases? – Systems of Experience

By April Reeve

The basic question that arises when first learning about NoSQL databases is: “when would I use these?” and there really is a very simple answer: “probably in developing web applications and internet sites”.

Now, obviously, the full answer is much more complex and is determined by a broad range of factors including what development tools are currently available in your organization, the skills of your support and development resources, and the specific needs and functionality of the applications being developed. Also, the appropriate use of NoSQL databases isn’t limited to web applications.  However, many of these databases were created because of limitations in relational databases in supporting the emerging area (at that time) of web applications development. 

One way of viewing the differentiation between appropriate use of NoSQL versus relational databases, is that relational databases are most appropriate for “systems of record” or applications that store the definitive view of a piece of information for an organization that may be updated by multiple sources, such as a financial balance or the master information about a customer, focused on the accuracy of the information. Relational databases are perfect for transaction processing systems with sophisticated record locking capabilities that ensure the integrity of data that might be updated by multiple users, but include a lot of overhead involved in those features that are not necessary for applications focused on reading data.

NoSQL databases may be better at supporting “systems of experience” or the presentation of information quickly and easily, focused on the best experience for the user. NoSQL databases are better for analyzing large volumes of distributed data and managing very large volumes of on-line users while presenting data extremely quickly.

In addition to web applications, NoSQL databases are frequently used for advanced analytics applications, which are focused on accessing large amounts of potentially physically distributed data.   Most organizations are building modern analytics environments using NoSQL solutions such as Hadoop, key value stores, and document databases. Specialized databases such as graph databases are especially good at analyzing data relationships, such as how close connections are between people, which is a similar problem to logistical analysis of how most efficiently to deliver supplies.

So, in summary, NoSQL databases would probably be a good choice for “systems of experience”: web applications and other systems that read very large volumes of data or manage very large numbers of on-line users.

Return to list