FEATURES:
• Schema agnostic(Scalability): A database schema is the description of all possible data
and data structures in a relational database. With a NoSQL database, a schema isn’t
required, giving you the freedom to store information without doing up‐front schema
design.
• Nonrelational: Relations in a database establish connections between tables of data. For
example, a list of transaction details can be connected to a separate list of delivery details.
With a NoSQL database, this information is stored as an aggregate — a single record
with everything about the transaction, including the delivery address.
• Commodity hardware: Some databases are designed to operate best (or only) with
specialized storage and processing hardware. With a NoSQL database, cheap off‐the‐
shelf servers can be used. Adding more of these cheap servers allows NoSQL databases
to scale to handle more data.
• Highly distributable: Distributed databases can store and process a set of information on
more than one device. With a NoSQL database, a cluster of servers can be used to hold a
single large database.
Applications: There is a large number of companies using NoSQL.
• Google
Google’s Bigtable was created to provide wide-column storage for a range of Google’s
applications, including Orkut, Google Earth, web indexing, Google Maps, Google Books,
YouTube, blogger.com, Google Code and Google Mail.
• Facebook
Apache Cassandra was created by Facebook to power their Inbox.
Cassandra worked by doing the following:
• Cassandra indexed users’ messages and the terms (words, and so on) in the messages
and drove a search over all the content in those messages. The user ID was the
primary key. Each term became a super column, and the message IDs were the
column names.