database management systems - cse.wustl.edudshook/cse530/lectures/morenosql.pdf · “redis in...
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/1.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/2.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/3.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/4.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/5.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/6.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/7.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/8.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/9.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/10.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/11.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/12.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/13.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/14.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/15.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/16.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/17.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/18.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/19.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/20.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/21.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/22.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/23.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/24.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/25.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/26.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/27.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/28.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/29.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022050718/5e18b8b7859b2c14b87ee9c5/html5/thumbnails/30.jpg)
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