Today, data management solutions are organized into a spectrum of solutions that propose data models, storage and querying strategies that can be adapted to target application requirements like dealing with critical workloads in distributed settings respecting different non-functional properties.
NoSQL databases (“not only SQL”) are non-tabular and store data differently than relational tables. NoSQL databases come in a variety of types based on their data model. The main types are document, key-value, wide-column, and graph. NoSQL databases break the traditional mindset of storing data at a single location. Instead, NoSQL distributes and stores data over a set of multiple servers. This distribution of data helps the NoSQL database server to distribute the load on the database tier.
Many NoSQL stores compromise consistency (in the sense of the CAP theorem) in favour of availability, partition tolerance, and speed. Most NoSQL stores lack actual ACID transactions, although a few databases have made them central to their designs.
NewSQL is a class of relational database management systems that seek to provide the scalability of NoSQL systems for online transaction processing (OLTP) workloads while maintaining the ACID guarantees of traditional database systems.
The challenge today is being acquainted with the right metrics and properties of data management solutions to choose and combine them strategically to address problems. This course aims at discussing these aspects.