The NoSql Moviment Matteo Baglini Software Developer, Freelance [email protected] http://it.linkedin.com/in/ matteobaglini http://github.cpom/bmatte www.dotnettoscana.org
May 10, 2015
The NoSql Moviment
Matteo Baglini Software Developer, [email protected]://it.linkedin.com/in/matteobaglinihttp://github.cpom/bmatte
www.dotnettoscana.org
2
NoSql
No more SQL, awesome!!!
3
NoSql
Yes but, why?
4
Modern Web Application
Requirements
5
Content
High number of heterogeneous content
6
Social
Many connected users
7
Real-time
Immediately push info to the users
8
BigData
Collection of large data sets
9
Cloud
Scalable and on-demand architecture
10
Metodologies
Dynamic requirements
11
RDBMS
12
RDBMS
Tables and relations Schema-full Pre-defined structure Transaction (even
Distributed) Consistency Declarative query
language (SQL)
13
Developers
Is it the right tool?
14
Alternative Database(NoSql)
15
NoSql
Alternative structures Schema-free Non transactional Eventual consistency Programmatically query
routine Easy to scale-out Use case oriented
16
NoSql Categories
17
Key-Value Store Data (Value) was identified
by a unique Key The Value can be anything Primarly queriable by Key Examples: Amazon
SimpleDB, Azure Table Storage, Riak, Redis, Voldemort, MemcacheDB.
18
Data contained into Documents that was identified by a unique Key
Document was stored as JSON object (properties and values)
Values can be scalars, arrays or complex types
Queriable by Key or MapReduce
Examples: MongoDB, CouchDB, RavenDB
Document Store
19
Columns Store Data contained into Tables
and Column Families Each Column Families was a
set of key-value pairs Partial schema Queriable by Key, MapReduce
or custom langs Examples: Google BigTable,
Hbase, Cassandra
20
Graph Store Data contained into Nodes
and Edges Each Node was a set of key-
value pairs Each Edge represent a
relationship Queriable by custom langs Examples: Neo4j, OrientDB,
Titan, Sones
21
NoSql or
RDBMS ?
22
Polyglot Persistence
That’s all!