Databases Reference
In-Depth Information
Table 1.1 Types of NoSQL data stores—the four main categories of NoSQL systems, and sample
products for each data store type
Type
Typical usage
Examples
Key-value store
—A simple data stor-
age system that uses a key to access
a value
Image stores
Key-based filesystems
Object cache
Systems designed to scale
Berkeley DB
Memcache
Redis
Riak
DynamoDB
Column family store
—A sparse matrix
system that uses a row and a column
as keys
Web crawler results
Big data problems that can
relax consistency rules
Apache HBase
Apache Cassandra
Hypertable
Apache Accumulo
Graph store
—For relationship-
intensive problems
Social networks
Fraud detection
Relationship-heavy data
Neo4j
AllegroGraph
Bigdata (RDF data store)
InfiniteGraph (Objectivity)
Document store
—Storing hierarchical
data structures directly in the data-
base
High-variability data
Document search
Integration hubs
Web content management
Publishing
MongoDB (10Gen)
CouchDB
Couchbase
MarkLogic
eXist-db
Berkeley DB XML
NoSQL systems have unique characteristics and capabilities that can be used alone or
in conjunction with your existing systems. Many organizations considering NoSQL sys-
tems do so to overcome common issues such as volume, velocity, variability, and agility,
the business drivers behind the NoSQL movement.
1.2
NoSQL business drivers
The scientist-philosopher Thomas Kuhn coined the term
paradigm shift
to identify a
recurring process he observed in science, where innovative ideas came in bursts and
impacted the world in nonlinear ways. We'll use Kuhn's concept of the paradigm shift
as a way to think about and explain the NoSQL movement and the changes in
thought patterns, architectures, and methods emerging today.
Many organizations supporting single-
CPU
relational systems have come to a cross-
roads: the needs of their organizations are changing. Businesses have found value in
rapidly capturing and analyzing large amounts of variable data, and making immedi-
ate changes in their businesses based on the information they receive.
Figure 1.1 shows how the demands of volume, velocity, variability, and agility play a
key role in the emergence of NoSQL solutions. As each of these drivers applies pres-
sure to the single-processor relational model, its foundation becomes less stable and
in time no longer meets the organization's needs.