A NoSQL stands for "non SQL", "non-relational" or "not only SQL". This database provides a mechanism for storage and retrieval of data other than tabular format. It was the need of needs of Web 2.0 companies such as Facebook, Google, and Amazon.com which handles large amount of data, we generally called as Big data.
Important points of NoSql
are simplicity of design, Simple horizontal scaling and control on
availability.
The data structures used
by NoSQL databases are key-value, wide column, graph, or document.
These data structures are more flexible than others.
Types and examples of
NoSQL databases:
Data
Structure
|
Examples
|
Column
|
|
Document
|
|
Key-value
|
|
Graph
|
NoSQL Database Types:
- Document databases pair each key with a complex data structure known as a document. Documents can contain many different key-value pairs, or key-array pairs, or even nested documents.
- Graph stores are used to store information about networks of data, such as social connections. Graph stores include Neo4J and Giraph.
- Key-value stores are the simplest NoSQL databases. Every single item in the database is stored as an attribute name (or 'key'), together with its value. Examples of key-value stores are Riak and Berkeley DB. Some key-value stores, such as Redis, allow each value to have a type, such as 'integer', which adds functionality.
- Wide-column stores such as Cassandra and HBase are optimized for queries over large datasets, and store columns of data together, instead of rows.
SQL vs NoSQL:
Sr. No
|
NoSQL
|
SQL
|
1.
|
NoSQL database are primarily called as non-relational or distributed
database.
|
SQL databases are primarily called as Relational Databases (RDBMS)
|
2.
|
NoSQL databases are the collection of key-value pair, documents, graph
databases or wide-column stores
|
SQL databases are table based databases whereas NoSQL databases are
document based, key-value pairs, graph databases or wide-column stores
|
3.
|
NoSQL databases have dynamic schema for unstructured data.
|
SQL databases have predefined schema
|
4.
|
NoSQL databases are horizontally scalable
|
SQL databases are vertically scalable
|
5.
|
NoSQL database, queries are
focused on collection of documents. Sometimes it is also called as UnQL
(Unstructured Query Language)
|
SQL databases uses SQL ( structured query language ) for defining and
manipulating the data, which is very powerful
|
6.
|
NoSQL database examples: MongoDB, BigTable, Redis, RavenDb, Cassandra,
Hbase, Neo4j and CouchDb
|
SQL database examples: MySql, Oracle, Sqlite, Postgres and MS-SQL.
|
7.
|
NoSQL database fits better for the hierarchical data storage as it
follows the key-value pair
|
SQL databases are not best
fit for hierarchical data storage
|
8.
|
it is still not comparable
and sable enough in high load and for complex transactional applications.
|
SQL databases are best fit for heavy duty transactional type
applications
|
9.
|
NoSQL database you still have to rely on community support, and only
limited outside experts are available
|
Excellent support are available for all SQL database from their
vendors.
|
10.
|
NoSQL database follows the Brewers CAP theorem ( Consistency,
Availability and Partition tolerance )
|
SQL databases emphasizes on ACID properties
|
The Benefits of NoSQL
When compared to relational databases, NoSQL databases are more scalable and provide superior performance, and their data model addresses several issues that the relational model is not designed to address:
- Large volumes of rapidly changing structured, semi-structured, and unstructured data
- Agile sprints, quick schema iteration, and frequent code pushes
- Object-oriented programming that is easy to use and flexible
- Geographically distributed scale-out architecture instead of expensive, monolithic architecture.