Resident good: NoSQL

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