Why Nosql?: Your Database Options in The New Non - Relational World
Why Nosql?: Your Database Options in The New Non - Relational World
Why Nosql?: Your Database Options in The New Non - Relational World
NoSQL?
Your
database
options
in
the
new
non-relational
world
Table
of
Contents
New
types
of
apps
are
generating
new
types
of
data
..............................................................
3
A
brief
history
on
NoSQL
.........................................................................................................
3
NoSQLs
roots
in
open
source
...........................................................................................................
3
Types
of
NoSQL
databases
......................................................................................................
4
Key-value
stores
...............................................................................................................................
4
Graph
stores
.....................................................................................................................................
4
Column
stores
..................................................................................................................................
4
Document
stores
..............................................................................................................................
4
Why
Consider
NoSQL?
............................................................................................................
5
Flexibility
..........................................................................................................................................
5
Scalability
.........................................................................................................................................
5
Availability
.......................................................................................................................................
5
Lower
operational
cost
.....................................................................................................................
5
Specialized
capabilities
.....................................................................................................................
5
Summary
................................................................................................................................
6
Getting
started
with
IBM
Cloudant
.........................................................................................
6
For
more
information
.............................................................................................................
6
New
types
of
apps
are
generating
new
types
of
data
The
continual
increase
in
Web,
mobile,
and
IoT
applications,
alongside
emerging
trends
shifting
online
consumer
behavior
and
new
classes
of
data
are
causing
developers
to
reevaluate
how
their
data
is
stored
and
managed.
Todays
needs
require
a
database
that
is
capable
of
providing
a
scalable,
flexible
solution
to
efficiently
and
safely
manage
the
massive
flow
of
data
to
and
from
a
global
user
base.
Developers
and
IT
alike
are
finding
it
difficult,
and
sometimes
even
impossible,
to
quickly
incorporate
all
of
this
data
into
the
relational
model
while
dynamically
scaling
to
maintain
the
performance
levels
users
demand.
This
is
causing
many
to
look
at
NoSQL
databases
for
the
flexibility
they
offer,
and
is
a
big
reason
why
the
global
NoSQL
1
market
is
forecast
to
nearly
double
and
reach
$3.4
Billion
in
2020 .
http://www.marketresearchmedia.com/?p=568
Types
of
NoSQL
databases
NoSQL
is
simply
the
term
used
to
describe
a
family
of
databases
that
are
all
non-relational.
While
the
technologies,
data
types,
and
use
cases
vary
wildly
among
them,
it
is
generally
agreed
that
there
are
four
types
of
NoSQL
databases:
Key-value
stores
These
databases
pair
keys
to
values,
like
a
hash
table
in
computer
programming.
A
good
analogy
for
a
key-value
store
is
a
file
system.
The
path
acts
as
the
key
and
the
contents
act
as
the
file.
There
are
often
no
"fields"
to
update;
rather,
the
entire
value
other
than
the
key
must
be
updated
if
changes
are
to
be
made.
This
simplicity
scales
well;
however,
it
can
limit
the
complexity
of
queries
and
other
advanced
features
available
in
key-value
stores.
Examples
of
pure
key-value
stores
include:
MemcacheD,
REDIS,
and
Riak
Graph
stores
Graph
data
stores
excel
at
dealing
with
interconnected
data.
Graph
databases
consist
of
connections
(called
edges
in
graph
DB
terms)
between
nodes.
Both
nodes
and
their
edges
can
store
additional
properties,
such
as
key-value
pairs.
The
strength
of
a
graph
database
is
in
traversing
the
connections
between
nodes.
Graph
databases,
however,
generally
require
all
data
to
fit
on
one
machine,
limiting
their
scalability.
Examples
of
graph
stores
include:
Neo4j
and
Sesame
Column
stores
Relational
databases
store
all
of
the
data
in
particular
tables
row
together
on-disk,
which
makes
retrieval
of
a
particular
row
fast.
Column-family
databases
generally
serialize
all
the
values
of
a
particular
column
together
on-
disk,
which
makes
retrieval
of
a
large
amount
of
a
specific
attribute
fast.
This
approach
lends
itself
well
to
aggregate
queries
and
analytics
scenarios
where
you
might
run
range
queries
over
a
specific
field.
Examples
of
column
stores
include:
Hbase,
Cassandra
Document
stores
Document
databases
store
records
as
documents,
where
a
document
can
generally
be
thought
of
as
a
grouping
of
key-value
pairs.
Keys
are
always
strings
and
values
can
be
stored
as
strings,
numerics,
booleans,
arrays,
and
other
nested,
key-value
pairs.
Values
can
be
nested
to
arbitrary
depths.
Popular
syntax
for
document
DBs
include
XML
and
JavaScript
Object
Notation
(JSON).
Examples
of
document
stores
include:
MongoDB,
CouchDB,
Cloudant,
and
MarkLogic
Flexibility
Schema
flexibility
and
intuitive
data
structures
are
key
features
that
attract
developers
working
in
agile
development
cycles,
and
most
NoSQL
databases
accommodate
these
qualities.
Schema
updates
and
their
associated
downtime
are
generally
not
required,
as
in
a
relational
database.
NoSQLs
flexibility
is
popular
for
supporting
agile
development
practices
by
eliminating
the
complexity
of
database
schema
changes
to
support
changing
codebases.
Scalability
Scale
refers
to
both
the
size
of
the
data
as
well
as
the
concurrent
users
acting
on
that
data.
NoSQL
databases
are
typically
more
specialized
to
various
use
cases
involving
scale
and
can
be
much
simpler
to
develop
related
application
functions
than
relational
databases.
Many
NoSQL
databases
are
built
to
scale
horizontally
and
spread
their
data
across
(shard)
a
cluster
of
servers
more
easily
than
their
relational
counterparts.
Relational
database
performance
suffers
when
queries
execute
JOINs
across
shards,
whereas
a
NoSQL
database
can
avoid
JOINs
altogether
and
remain
highly
performant.
Availability
Downtime
results
in
lost
revenue,
lost
customers,
and
frustrated
users.
Thankfully,
some
NoSQL
databases
offer
new
or
different
replication
architectures
that
can
make
different
types
of
NoSQL
databases
more
highly
available
for
writes
in
addition
to
reads.
This
means
that
if
one
or
more
database
servers,
or
"nodes
goes
down,
the
other
nodes
in
the
system
are
able
to
continue
operations
without
data
loss.
Lower
operational
cost
The
open
source
roots
of
NoSQL
make
its
entry
point
an
obvious
incentive,
and
it
is
common
to
hear
of
NoSQL
adopters
cutting
significant
costs
versus
their
existing
databases
while
still
receiving
the
same
or
better
performance
and
functionality.
Historically,
large
relational
databases
have
run
on
expensive
machines
and
mainframes.
The
distributed
nature
of
NoSQL
databases
means
that
they
can
be
deployed
and
operated
on
clusters
of
servers
in
cloud
architectures.
Specialized
capabilities
Not
all
NoSQL
databases
are
created
equal.
To
offer
incentives
and
added
integration
to
their
users,
many
NoSQL
providers
include
various
specialized
capabilities.
Examples
include
specific
indexing
and
querying
capabilities
for
geospatial
data
or
integrated
full-text
indexing
for
search,
automatic
data
replication
and
synchronization
features,
and
application-friendly
RESTful
web
APIs.
Summary
The
database
you
pick
for
your
next
application
matters
now
more
than
ever.
Thankfully,
you
dont
have
to
pick
just
one.
Todays
applications
are
expected
to
run
non-stop
and
must
efficiently
manage
the
continuously
growing
amounts
of
multi-structured
data
in
order
to
do
so.
This
has
caused
NoSQL
to
grow
from
a
buzzword
to
a
serious
consideration
for
every
database,
from
small
shops
to
the
enterprise.
While
NoSQL
databases
share
some
common
qualities,
such
as
being
non-relational
and
generally
easy
to
scale,
there
are
many
unique
differentiators
to
consider
when
deciding
upon
the
correct
NoSQL
solution
for
your
unique
data
needs.
The
right
NoSQL
database
can
act
a
viable
alternative
to
relational
databases
or
can
be
utilized
in
a
complementary
fashion
along
with
existing
systems.
The
requirement
for
efficient
data
delivery
is
our
future,
and
you
should
consider
NoSQL
technology
when
planning
any
application
development
project
that
involves
scale,
different
varieties
of
data,
or
large
amounts
of
potential
users.