Resident good: NoSQL
Lyubomir Filipov * TarnovoConf 2015 * @FilipovG
Who am I?
Lyubomir Filipov
PHP Dev
Enthusiast
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032660/pcvt_logo_720x720.png)
NoSQL
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032663/no.gif)
History
1998
2009
Strozzi NoSQL
Johan Oskarsson
NoSQL
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032673/nosql-bigdata.png)
This all happened
- Not using relational model
- Well-clustered
- Open source
- Schemaless
Too many relations
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032688/Hauptbahnhof_Frankfurt.jpg)
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
Oracle | Riak |
---|---|
Database instance | Riak cluster |
table | bucket |
row | Key-value |
rowid | key |
Key-Value databases
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032706/key-value-example_copy.jpg)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032712/road-runner.gif)
Document databases
- Document-based
- Large amount of data per document
- No transactions
- Examples: MongoDB, CouchDB, Terrastore, OrientDB, RavenDB
Document databases
Oracle | MongoDB |
---|---|
Database instance | MongoDB instance |
schema | database |
table | collection |
row | document |
rowid | _id |
join | DBRef |
Document databases
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032721/mongoDB_copy.jpg)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032737/1363444615_317853043.jpg)
Column-Family databases
- Key and family of values
- Indexes
- No transactions
- Examples: Cassandra, Hbase, Amazon Simple DB
Column-Family databases
RDBMS | Cassandra |
---|---|
Database instance | cluster |
database | keyspace |
table | Column family |
row | row |
column(same for all rows) | column(can be different per row) |
Column-Family databases
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032747/column-family_copy.jpg)
Column-Family databases
Suitable Use Cases:
- Logs
- CMS
- Counters
- Expiring usage
Column-Family databases
When Not to Use:
- Aggregate functions
- Prototypes
Column-Family databases
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032750/memepile2.jpg)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032759/Thumbs-up-meme-generator-yay-great-job-c404db.jpg)
Polyglot Persistence
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032761/e-commerce_-_New_Page.png)
Polyglot Persistence
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032766/e-commerce-no-sql_-_New_Page.png)
Question
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032772/worldmap_low_copy.jpg)
Brewer's theorem
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032789/Funny-Celebrity-Pictures-7-526x500.jpg)
Brewer's theorem
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032794/ascii-chars-landscape.jpg)
DB-Engines Ranking
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032804/dbEnginesRank.png)
More..
![](https://s3.amazonaws.com/media-p.slid.es/uploads/419236/images/2032809/NoSQL-Distilled.jpg)
Thanks for watching
Resident good: NoSQL
By Lyubomir Filipov
Resident good: NoSQL
TarnovoConf 2015
- 2,083