If you can't read please download the document
Upload
lyubomir-filipov
View
248
Download
0
Embed Size (px)
Citation preview
Resident good: NoSQL
Who am I?
Lyubomir Filipov
PHP Dev
Enthusiast
NoSQL
History
Strozzi NoSQL
Johan Oskarsson
1998
2009
This all happened
Not using relational model
Well-clustered
Open source
Schemaless
Too many relations
Main types
Key-Value databases
Document databases
Graph databases
Column-Family databases
Key-Value databases
Based on key-value
Well-clustered
Speed
Indexes
Examples: Riak, Redis, Berkeley DB, Hamster DB
Key-Value databases
OracleRiak
Database instanceRiak cluster
tablebucket
rowKey-value
rowidkey
Key-Value databases
Key-Value databases
Suitable Use Cases:Sessions
User settings
E-commerce shopping carts
Key-Value databases
When Not to Use:Relations among data
Multioperation Transactions
Query by data
Key-Value databases
Document databases
Document-based
Large amount of data per document
No transactions
Examples: MongoDB, CouchDB, Terrastore, OrientDB, RavenDB
Document databases
OracleMongoDB
Database instanceMongoDB instance
schemadatabase
tablecollection
rowdocument
rowid_id
joinDBRef
Document databases
Document databases
Suitable Use Cases:Logs
Comments, CMS
Data analysis
E-commerce
Document databases
When Not to Use:Operations between aggregates
Queries against Varying Aggregate Structure
Document databases
Column-Family databases
Key and family of values
Indexes
No transactions
Examples: Cassandra, Hbase, Amazon Simple DB
Column-Family databases
RDBMSCassandra
Database instancecluster
databasekeyspace
tableColumn family
rowrow
column(same for all rows)column(can be different per row)
Column-Family databases
Column-Family databases
Suitable Use Cases:Logs
CMS
Counters
Expiring usage
Column-Family databases
When Not to Use:Aggregate functions
Prototypes
Column-Family databases
Graph databases
Complicated relations
Indexes
Transactions
Examples: Neo4j, OrientDB, FlockDB
Graph databases
Suitable Use Cases:Connected Data
Marketing
Location-Based Services
Graph databases
When Not to Use:Update all or a subset of entities
Graph databases
Polyglot Persistance
Polyglot Persistance
Question
Brewer's theorem
Brewer's theorem
DB-Engines Ranking
More..
Thanks for watching
Sources
http://martinfowler.com/books/nosql.html
http://www.dataversity.net/wp-content/uploads/2012/05/no.gif
http://4.bp.blogspot.com/-I0axnU4z8yE/UQ2d43PZm6I/AAAAAAAAAKU/Zrssv8gH0CI/s1600/nosql-bigdata.png
https://upload.wikimedia.org/wikipedia/commons/1/13/Hauptbahnhof_Frankfurt.jpg
http://s.pikabu.ru/post_img/2013/03/16/9/1363444615_317853043.jpg
http://www.rowthree.com/wp-content/uploads/2011/10/MadLove6.jpg
https://grabhouse.s3.amazonaws.com/urbancocktail/wp-content/uploads/2015/07/memepile2.jpg
http://www.portalrodeo.com/_Media/road-runner.gif