Database Reference
In-Depth Information
NoSQL include schema-less modeling in which the semantics of the data are embedded within a
flexible connectivity and storage model; this provides for automatic distribution of data and elas-
ticity with respect to the use of computing, storage, and network bandwidth in ways that don't
force specific binding of data to be persistently stored in particular physical locations. NoSQL
databases also provide for integrated data caching that helps reduce data access latency and speed
performance.
A relatively simple type of NoSQL data store is a key/value store, a schema-less model in which
distinct character strings called keys are associated with values (or sets of values, or even more
complex entity objects)—not unlike hash table data structure. If you want to associate multiple
values with a single key, you need to consider the representations of the objects and how they are
associated with the key. For example, you may want to associate a list of attributes with a single
key, which may suggest that the value stored with the key is yet another key/value store object
itself.
The key/value store does not impose any constraints about data typing or data
structure—the value associated with the key is the value, and it is up to the consuming
business applications to assert expectations about the data values and their semantics
and interpretation. This demonstrates the schema-less property of the model.
Key/value stores are essentially very long and presumably thin tables (in that there are not
many columns associated with each row). The table's rows can be sorted by the key value to sim-
plify finding the key during a query. Alternatively, the keys can be hashed using a hash function
that maps the key to a particular location (sometimes called a bucket ) in the table. The repre-
sentation can grow indefinitely, which makes it good for storing large amounts of data that can
be accessed relatively quickly, as well as allows massive amounts of indexed data values to be
appended to the same key/value table, which can then be shared or distributed across the storage
nodes. Under the right conditions, the table is distributed in a way that is aligned with the way
the keys are organized, so that the hashing function that is used to determine where any specific
key exists in the table can also be used to determine which node holds that key's bucket (i.e., the
portion of the table holding that key).
NoSQL data management environments are engineered for two key criteria:
1. Fast accessibility, whether that means inserting data into the model or pulling it out via
some query or access method
2. Scalability for volume, so as to support the accumulation and management of massive
amounts of data
The different approaches are amenable to extensibility, scalability, and distribution, and these
characteristics blend nicely with programming models (like MapReduce) with straightforward
creation and execution of many parallel processing threads. Distributing a tabular data store or
a key/value store allows many queries/accesses to be performed simultaneously, especially when
the hashing of the keys maps to different data storage nodes. Employing different data allocation
strategies will allow the tables to grow indefinitely without requiring significant rebalancing. In
other words, these data organizations are designed for high-performance computing for reporting
and analysis.
 
Search WWH ::




Custom Search