Professional Documents
Culture Documents
Overview
What is NoSQL
History of NoSQL
Differences from SQL
Handling the Lack of Joins
ACID
CAP Theorem/Brewers Theorem
Types of NoSQL
Benchmarks
Why NoSQL
Sharding
When to Use
Application Uses
Amazon Company Example
What is noSQL
not
only SQL
not using formal structure
Is joinless
Database without the limitation of SQL rules
Uses CAP Theorem/Brewers Theorem to improve
consistency
History of NoSql
Started with rational databases
Growing need to handle larger amounts of data with
realtime performance
First termed as NoRel, No Relational, by Carlo Strozzi in
1998
Reintroduced in 2009 as NoSql, Not Only SQL, by Eric
Evans to discuss open-source non-rational database
systems
Cisco
Dell
Best Buy
Call of Duty
Fed Ex
NASA
Netflix
Apache Cassandra
Project
Scalability and high availability without compromising
performance
Uses column indexes
Denormalization
Materialized Views
Built-in caching
Benefits
ACID
Challenges of NoSQL
Maturity - In comparison RDBMS systems have been
around for a long time. Most NoSQL alternatives are in
pre-production versions with many key features yet to be
implemented.
Support - Most NoSQL systems are Open Source projects,
and the companies that offer support are small start-ups
without global reach, support services, or the credibility of
Oracle, Microsoft, or IBM.
Challenges of NoSQL
Analytics and Business Intelligence - NoSQL databases
have evolved to meet the scaling demands of Web 2.0
applications.
Administration - The design goals for NoSQL is to provide
a zero-admin solution, but as of today it requires a lot of
skill to install and a lot of to effort to maintain.
Expertise - Almost all NoSQL developers is learning how to
use and develop for NoSQL
Types of NoSQL
Document DataBase
Graph Stores
Key-value stores
Wide-column stores
Document DataBase
MongoDB
CouchDB
RethinkDB
SequoiaDB
RavenDB
NeDB
AmisaDB
JasDB
RaptorDB
djonDB
Graph Stores
Neo4j
Infinite Graph
Sparksee
TITAN
InfoGrid
HyperGraphDB
GraphBase
Trinity
AllegroGraph
Key-value stores
DynamoDB
Azure Table Storage
Riak
Redis
Aerospike
LevelDB
BerkeleyDB
Oracle NoSQL Database
GenieDB
Wide-column stores
Hbase
MapR/Hortonworks/Cloudera
Cassandra
Hypertable
Accumulo
Amazon SimpleDB
Cloudata
MonetDB
HPCC
Apache Flink
Why noSQL
Performance
Scalability
high availability
auto-scaled
Benchmark Table
Data Model
Performance
Scalability
Flexibility
Complexity
Functionality
KeyValue
Store
high
high
high
none
variable
(none)
ColumnOriented
Store
high
high
moderate
low
minimal
DocumentOriented
Store
high
variable
(high)
high
low
variable (low)
Graph
Database
variable
variable
high
high
graph theory
Relational
Database
variable
variable
low
moderate
relational
algebra
Application Uses
Session Store
User Profile Store
Content and Metadata Store
Mobile Applications
Third-Party Data Aggregation
High Availability Cache
Globally Distributed Data Repository
E-Commerce
Social Gaming
Ad Targeting
Sample Language of
NoSql(MongoDB)
Amazon DynamoDB
Cloud based NoSQL service
Supports Document based and Key Value data models
Stores 3 geographically distributed replicas of each table to
enable high availability and data durability
May not be fully real time, supports Eventually Consistent
Reads by default, but can also support Strongly Consistent
Reads
Summary
Due to the growing need of large amounts of data and realtime performance, we see the increasing need for NoSQL.
With many variances, we find the costs and benefits from
each of the different styles of NoSQL
We see the compliment NoSQL gives when complimented
with cloud computing.
Questions
?
Tough!