Non-Relational Databases-NoSQL
Ramkumar.R
1st-MCA
Department of Computer Science
Pope John Paul II College of Education
Pondicherry
Content
Introduction
History
Characteristics
NoSQL Database Classification
Categories of NoSQL Database
Major NoSQL Databases
Limitation of SQL
Benefits of NoSQL
Concerns and challenges
Production Deployment
References
Introduction
Many organizations collect vast amounts of
customer, scientific, sales, and other data for future analysis.
Traditionally, most of these organizations have stored structured data
in relational databases for subsequent access and analysis.
However, a growing number of developers and users have begun
turning to various types of non-relational, now frequently called
NoSQL-databases.
In computing, NoSQL (commonly interpreted as "not only
SQL") is a broad class of database management systems identified
by non-adherence to the widely used relational database
management system model. NoSQL databases are not built primarily
on tables, and generally do not use SQL for data manipulation.
NoSQL database systems are often highly optimized for retrieval
and appending operations and often offer little functionality beyond
record storage (e.g. key–value stores).
NoSQL database management systems are useful when working
with a huge quantity of data when the data's nature does not
require a relational model.
The data can be structured, but NoSQL is used when what really
matters is the ability to store and retrieve great quantities of
data, not the relationships between the elements.
History
The term NoSQL was coined by Carlo Strozzi in the year 1998.
In the early 2009, Eric Evans, a Rackspace employee, reused the
term to refer databases which are non-relational, distributed, and
does not conform to atomicity, consistency, isolation, and
durability.
In the same year, the NoSQL conference held in
Atlanta, USA, and NoSQL saw an unprecedented growth.
Characteristics
No schema required, Data can be inserted in a NoSQL database
without first defining a rigid database schema.
Auto-sharding(sometimes called “elasticity”). A NoSQL
database automatically spreads data across servers, without
requiring applications to participate.
Distributed query support, NoSQL database systems retain
their full query expressive power even when distributed across
hundreds or thousands of servers.
Integrated caching. To reduce latency and increase sustained
data throughput, advanced NoSQL database technologies
transparently cache data in system memory.
NoSQL Database Classification
Key-value stores: Data is saved with a unique key and a value.
This is incredibly fast and this can scale to large size.
Column stores: They store all of the values for a column together
in a stream instead of storing records.
Document stores: They save data without it being structured in a
schema, with buckets of key-value pairs inside a self-contained
object.
Graph databases: They store data in a flexible graph model that
contains a node for each object.
Categories of NoSQL Database
Category Description Name of the database
Document Oriented Data is stored as documents. An example CouchDB, Jackrabbit,
format may be like - FirstName="Arun", MongoDB, OrientDB,
Address="St. Xavier's Road", SimpleDB,Terrastore
Spouse=[{Name:"Kiran"}],
Children=[{Name:"Rihit", Age:8}]
XML database Data is stored in XML format BaseX, eXist, MarkLogic
Server etc.
Graph databases Data is stored as a collection of nodes, where AllegroGraph, DEX, Neo4j,
nodes are analogous to objects in a FlockDB, Sones GraphDB
programming language. Nodes are connected
using edges.
Key-value store In Key-value-store category of NoSQL Cassandra, Riak, Redis,
database, a user can store data in schema-less memcached, BigTable
way. A key may be strings, hashes, lists, sets,
sorted sets and values are stored against these
keys.
Major NoSQL Databases
Dynamo: Dynamo was created by Amazon.com and is the most
prominent Key-Value NoSQL database.
Cassandra: Cassandra was open sourced by Facebook and is a
column oriented NoSQL database.
BigTable: BigTable is Google's proprietary column oriented
database.
SimpleDB: SimpleDB is another Amazon database. Used for
Amazon EC2 and S3, it is part of Amazon Web Services.
CouchDB: CouchDB along with MongoDB are open source
document oriented NoSQL databases.
Neo4J: Neo4j is an open source graph database.
Limitation of SQL Database
Scaling, Relational databases don’t work easily in a distributed
manner because joining their tables across a distributed system is
difficult.
Complexity, with relational databases, users must convert all data
into tables. When the data doesn’t fit easily into a table, the
database’s structure can be complex, difficult, and slow to work
with.
Data, Using SQL is convenient with structured data.
However, using the language with other types of information is
difficult.
Large feature set, Relational databases offer a big feature set and
data integrity.
Benefits of NoSQL
Big data, just as transaction rates have grown out of recognition
over the last decade, the volumes of data that are being stored
also have increased massively.
Goodbye DBAs, NoSQL databases are generally designed from
the ground up to require less management, automatic repair, data
distribution, and simpler data models.
Flexible data models, NoSQL Key Value stores and document
databases allow the application to store virtually any structure it
wants in a data element.
Elastic scaling, NoSQL databases are designed to expand
transparently to take advantage of new nodes, and they’re usually
designed with low-cost commodity hardware in mind.
Economics, NoSQL databases typically use clusters of cheap
commodity servers
Concerns and Challenges
Overhead and complexity, Because NoSQL databases don’t
work with SQL, they require manual query programming.
Reliability, Relational databases natively support ACID, while
NoSQL databases don’t.
Consistency, Because NoSQL databases don’t natively support
ACID transactions, they also could compromise
consistency, unless manual support is provided.
Unfamiliarity with the technology, Most organizations are
unfamiliar with NoSQL databases.
Limited Eco structure, unlike commercial relational
databases, many open source NoSQL application don’t yet come
with customer support or management tools.
Production Deployment
There is a large number of companies using NoSQL. To name a
few:
Google
Facebook
Mozilla
Adobe
Foursquare
LinkedIn
McGraw-Hill Education
Reference
1. Neal Leavitt, “Will NoSQL live up to their promise”, IEEE
Computer Society volume: 43 issue: 2, February, 2010, pp.12-14.
2. Carlos Coronel, Steven Morris, Peter Rob,” Database Systems:
Design, Implementation, and Management”, Tenth
Edition, 2013, pp.47-49.
3. Pethuru Raj,” Cloud Enterprise Architecture”, CRC
press, 2013, pp.190-195.
4. Tim Juravich,” Couch DB and PHP Web Development Beginner's
Guide”, PACKT Publishing, June 2012, Chapter 1.
5. Jing Han, “Survey on NoSQL database”, IEEE Pervasive Computing
and Applications (ICPCA), 2011 6th International Conference”, 26-28
Oct. 2011, pp.363-366.
6. Wyile.b, “Using NoSQL Database for Streaming Network Analysis”,
IEEE Large Data Analysis and Visualization (LDAV), 2012, 14-15 Oct.
2012, pp.121-124