Skip to content

What is a noSQL database?

Ricardo Reyes-Jimenez edited this page Mar 7, 2017 · 2 revisions

NoSQL encompasses a wide variety of different database technologies that were developed in response to the demands presented in building modern applications:

  • Developers are working with applications that create massive volumes of new, rapidly changing data types — structured, semi-structured, unstructured and polymorphic data —.

  • Long gone is the twelve-to-eighteen month waterfall development cycle. Now small teams work in agile sprints, iterating quickly and pushing code every week or two, some even multiple times every day.

  • Applications that once served a finite audience are now delivered as services that must be always-on, accessible from many different devices and scaled globally to millions of users. (https://www.mongodb.com/nosql-explained)

BioModelos is a growing database, that need to respond a lot of transactions from different users, and all the users need to see the same information at the same time. That way, we need to have a database that allows to grow with no expensive infrastructure demand (a new datacenter, i. e.) and the transactions need to be displayed for all users in different instances. In other words, we need:

  • Consistency (C) requires that all reads initiated after a successful write return the same and latest value at any given logical time.
  • Partition Tolerance (P) requires that a system be able to re-route a communication when there are temporary breaks or failures in the network. The goal is to maintain synchronization among the involved nodes.

CAP Theorem

In http://blog.flux7.com/blogs/nosql/cap-theorem-why-does-it-matter you will find all about the CAP Theorem.