Reading Seven Databases in Seven Weeks
Just finished reading “Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement”. Though I haven’t worked much on databases previosuly, recent transitions in database world (NoSQL, etc.) sounds interesting (or a little scarey). That made me come up with a mind to study some. This book well covers different types of databases and explans the advantages/disadvantages of each type.
Some notes are,
- Relational Database (e.g. PostgreSQL)
- When the layout of the data is known in advance, it works very well. However, if the data structure is highly variable or deeply hierarchical, it doesn’t fit.
- Key Value (e.g. Riak, Redis)
- It’s horizontally scalable and fast, due to it’s simplicity in data structure. However, it often lacks indexing and scanning and can result in poor performance, if the required operations are more than CRUD (create, read, update, delete) oeprations.
- Document (e.g. MongoDB, CouchDB)
- it is suited to problems involving highly variable domains. Also, it maps well with object-oriented models. However, it lacks some capabilities that highly normalized rational databases provides, in return for its flexibility.
- Columnar (e.g. HBase)
- Its focus is horizontal scalability and works well for the “Big-Data” problem, as Facebook did for their messaging infrastructure. However, as similar as relational database, schema should be well designed in advance. Otherwise, it may not be the good fit.
Also, I found interesting that RDBMS like PostgreSQL has many nice features like the following.
It’s not related to this book, but I also had a chance to watch Postgres The Bits You Haven’t Found, Heroku’s Peter van Hardenberg at Waza 2013, and it was a nice one too.