database management systems - cse.wustl.edudshook/cse530/lectures/morenosql.pdf · “redis in...

30
Database Management Systems Key-Value Stores Graph Databases

Upload: others

Post on 23-Oct-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Database Management Systems

◼ Key-Value Stores◼ Graph Databases

Page 2: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Redis◼ Key-Value pairs–Limited data types

◼ In-memory database–What about persistence?

Page 3: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Data Types

◼ String

◼ List

◼ Set

◼ Hash

◼ Zset

Page 4: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Strings

set hello worldget hellodel helloget hello

Page 5: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Listsrpush list-key itemrpush list-key item2rpush list-key item

lrange list-key 0 -1

lindex list-key 1

lpop list-key

lrange list-key 0 -1

Page 6: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Setssadd set-key item sadd set-key item2sadd set-key item3sadd set-key item

smembers set-key

sismember set-key item4sismember set-key item

srem set-key item2srem set-key item2

smembers set-key

Page 7: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Hashes

hset hash-key sub-key1 value1hset hash-key sub-key2 value2hset hash-key sub-key1 value1

hgetall hash-key1

hdel hash-key sub-key2hdel hash-key sub-key2hget hash-key sub-key1

hgetall hash-key

Page 8: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Zsets

zadd zset-key 728 member1zadd zset-key 982 member0zadd zset-key 982 member0

zrange zset-key 0 -1 withscores

zrangebyscore zset-key 0 800 withscores

zrem zset-key member1zrem zset-key member1

zrange zset-key 0 -1 withscores

Page 9: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Persistence

◼ Snapshots

◼ Append only-log files

Page 10: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Suitable Use Cases

◼ Storing Session Information

◼ User Profiles

◼ Shopping Cart Data

Page 11: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Example Use Case

Page 12: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Example Use Case

Page 13: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Example Use Case

Page 14: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Example Use Case

Page 15: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Example Use Case

Page 16: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Example Use Case

Page 17: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

When Not to Use

◼ Relationships between data sets

◼ Multioperation transactions

◼ Query by data

◼ Operation by sets

Page 18: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Neo4J Data Model

“Learning Neo4J”, Rik Van Bruggen, 2014

Page 19: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Neo4J Data Model

Page 20: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Neo4J Data Model – Best Practices◼ Design for query-ability

◼ Align relationships with use cases

◼ Look for n-ary relationships

Page 21: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Neo4J Data Model – Best Practices

Page 22: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Neo4J Data Model – Indexes

Page 23: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Neo4J Data Model – Indexes

Page 24: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Modelling Pitfalls: Rich Properties

Page 25: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Modelling Pitfalls

Page 26: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Modelling Pitfalls: Unconnected Graphs

Page 27: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Modelling Pitfalls: Dense Nodes

Page 28: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Other Features

◼ Consistency

◼ Transactions

◼ Availability

◼ Scaling

Page 29: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Use Cases

◼ Connected Data

◼ Routing, Dispatch, Location-based services

◼ Recommendation Engines

Page 30: Database Management Systems - cse.wustl.edudshook/cse530/lectures/MoreNoSQL.pdf · “Redis in Action”, Josiah Carlson, 2013. 3 Data Types String List Set Hash Zset. 4 Strings set

Practice Problem

◼ Write a query that will determine actors that TomHanks has not worked with.

◼ Write a query that will find someone who has worked with both Tom Hanks and Tom Cruise