NoSQL
Objectives :
Understand what does NoSQL mean
Understand the different kind of databases hidden behind this word
Connection - 10'
In pair list every Pros and Cons you have encountered with relational database
List every relational database you have already used
Group the answers
Concepts - 20'
Relational databases
Persist data
Concurrency control
Manage transactions in an ACID way
ACID
Atomicity
"all or nothing"
One part fails => the entire transaction fails
Consistency
Bring the database from one valid state to another
All defined rules, including constraints, cascades, triggers, and any combination are respected
Isolation
Concurrent execution
Would be obtained if transactions were executed sequentially
Durability
Transaction committed : it will remain
Cons of relational databases
Impedance mismatch
Relational data structures vs In-memory data structures
Performance
Distribution
Cost
NoSQL
Different kind of NoSQL Databases
Why use NoSQL ?
To improve programmer productivity : better matches an application needs
To improve data access performance
Through some combination of handling larger data volumes, reducing latency
Large volumes of rapidly changing structured, semi-structured, and unstructured data
Geographically distributed scale-out architecture
Instead of expensive, monolithic architecture
Concrete Practice - 20'
Let's play with a GraphDB call Neo4j for the next minutes :
Connect to the platform
Play with the Cypher queries
Play with the Graph Visualization
Conclusion - 10'
NoSQL does not mean “Death of SQL”
We can now create polyglot persistence :
Uses different data storage technologies to handle varying data storage needs
Can be applied : Anywhere in an organization/in a single application
Use the tool that fits the best your needs.
Remember the past
Think about the past few years, in which development you have made this kind of database would have been useful ?
Why ?
Resources
Key Value Stores
Aerospike
Apache Cassandra
Berkeley DB
Couchbase Server
Redis
Riak
Document DB
CouchDB
Elasticsearch
MongoDB
Graph DB
Neo4j
OrientDB
FlockDB
Wide Columns Family Stores
Cassandra
HBase
Last updated