Nonrelational Database Features
With the boom of data-driven applications over the last several years, organizations have had to reconsider how they store data. Large volumes of data coming in all shapes and sizes needing to be captured in near real time make it nearly impossible for organizations to use traditional relational models for all their data storage needs. Additionally, the advent of cloud computing enabled organizations to easily, and cheaply, scale their data storage solutions horizontally across different geographic regions. This allows organizations to store data in its natural format without needing to apply complex data normalization rules first. For these reasons, NoSQL databases have become a popular choice for software developers who require a dynamic data storage solution.
Instead of forcing data to fit a rigid schema, NoSQL databases use a storage model that is optimized for the requirements of the data being stored. Not needing to focus so much on database management empowers software developers to build applications with a more agile approach, allowing them to adapt to changing requirements more quickly.
While there are several categories of NoSQL databases, they share the following characteristics:
- Ambiguous implementation of ACID principles. This is a benefit for transactional workloads where there are high volumes of data being processed at very fast speeds.
- Easily scaled horizontally across multiple partitions and storage devices since there are no relationships between data, allowing data to reside anywhere.
- Schema flexibility that enables faster and more agile software development. This allows new data records to have different fields and data types than previously stored records. The flexible schema design inherent to NoSQL databases makes them ideal for semi-structured and unstructured data.
Generally, NoSQL databases can be categorized as either key-value stores, document databases, columnar databases, or graph databases. These were summarized in Chapter 1 and are detailed in the following sections.