Databases Reference
In-Depth Information
Types of NoSQL Data Stores
The following section describes the different types of NoSQL datastores.
Key-Value stores
Examples: Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB
Typical applications: Content caching
Strengths: Fast lookups
Weaknesses: Stored data has no schema
Example application: The web application is an internal crowd-sourcing portal of
a company, where people share innovative ideas, and there are messages posted about
these ideas. In order to promote innovative thinking it is important to capture how
many ideas are getting posted, how many people are commenting to those ideas, etc.
The web page reads from a key that is based on the user's ID and retrieves a string of
JSON that represents all the relevant information. A background process recalculates the
information every 15 minutes and writes to the store, independently awarding points
against the maximum polled idea.
Document databases
Examples: CouchDB, MongoDB
Typical applications: Web applications
Strengths: Tolerant of incomplete data
Weaknesses: Query performance, no standard query syntax
Example application: A collaboration interface that takes into account several people
providing inputs across various phases of a design document. The details you need to
capture for each activity vary tremendously with design considerations and when new
requirements are shared by clients. The entire document is built up piecemeal, with each
and every input needing to be captured. Multiple people are collaborating who may or
may not have the big picture in front of them, so the completeness and accuracy of the
design can only be ascertained when all the sections of the document are complete. But
until then you have to treat the individual contributions skeptically.
Graph databases
Examples: Neo4J, InfoGrid, Infinite Graph
Typical applications: Social networking, recommendations
Strengths: Graph algorithms (e.g., shortest path, connectedness, n degree
relationships, etc.)
Weaknesses: Has to traverse the entire graph to achieve a definitive answer. Not easy
to cluster.
Example application: Any application that requires linkage analysis and relationship
analysis across a large cluster of people is best suited to a graph database.
 
Search WWH ::




Custom Search