Driven by the wish to explore the landscape of NoSql databases I decided to research the books available on the subject.
After browsing reviews and top lists of books on the subject I narrowed it down to these two books:
Seven Databases in Seven Weeks
Both of them cover all the mainstream database families. Namely relational, key-value, columnar, graph and document databases.
Unable to decide which one to pick I decided to read them both. Back to back... to back.
Although I was initially put of by the title of the second one I still decided to read it despite not being a mere mortal.
"Seven Databases in Seven Weeks" is basically a collection of quickstart guides for one NoSql database per database family. It goes less into concepts and focuses more on implementation. After each chapter you will have a functioning example of simple database interactions with the database in question. The book does not shy away from using databases which are exclusively available through cloud providers. After completing one of the chapters you'll have a working DynamoDB instance hosted on AWS.
NoSQL for mere mortals, on the other hand, goes a lot deeper regarding motivation and limitations of each database family. It mostly stays database agnostic and focuses on guiding you through the concepts which are driving the design and behavior of the database families in question. Although it does not contain code it presents use cases for all the NoSql database families and provides conceptual solutions for them.
Prior to reading these books I was highly biased towards relation databases. Although I worked with MongoDB and Redis, most of the time I work with relational databases like PostgreSQL and MySQL. The idea that you have to do additional work up front but reap the rewards later suited me. Benefits like enforced data integrity with schema and foreign keys, transactions, "easy" querying and so forth.
Reading these books did not change my preconceived notion that much. NoSql database can be vary useful for specific tasks which fit the database model. It is of utmost importance to truly accept and embrace a particular NoSql database and its concepts. If you try to mimic the relational model in any of these database you'll have a bad time.
But one has to admit that one of the things in which NoSql databases are far ahead of relational databases is distributability. A lot of NoSql databases are build from the ground up with distributability in mind.
Top comments (0)