Most helpful critical review
6 of 8 people found the following review helpful
Be careful to check what you learn from this book
on 22 April 2014
The Pragmatic Programmer is a very fine book, so I set off with high expectations for Seven Databases in Seven Weeks, which is from the same publisher (The Pragmatic Bookshelf).
I was quickly disappointed.
The Foreward suggests that relational databases are dull and that the NoSQL databases are a breath of fresh air. At least the book shows its bias at the outset.
I can sort-of tolerate bias, especially if it is declared up front, but blatant errors are not acceptable. People will be seriously misled by this book.
Page 5: columnar databases are not an alternative to relational. Columnar is a storage technique, not a logical database structure. Sybase/IQ, InfoBright, Exasol and Sand are some of the relational databases that use “columnar” storage.
Comparing PostgreSQL to a hammer really is an insult.
On the first page they dive into plug-ins. The strength of Postgres is its robust and faithful implementation to the best thought-out technology we use – relational databases. The plug-ins really are afterthoughts, and not particularly useful afterthoughts.
“Interactive Graphics and Retrieval System” was a phrase made up after the company had come up with the name Ingres. There are far more interesting and relevant stories about the birth of Ingres.
Page 10, section 2.2: CRUD
What a useless mnemonic! It is confusing because “create” is used in relational databases to create definitions of objects, such as tables, schemas, indexes, users. Insert is used to insert data into tables. Would you take a book on object-oriented tools seriously if it started off by confusing a class with its instances? And really, if you can’t grasp the four data manipulation concepts (select, insert, update and delete) without a stupid mnemonic then you shouldn’t even bother to read a book about databases.
And then we get the default connection port. In an overview of a database, who cares?
Page 12, “Mathematical Relations”
There are important things about relational theory which can be explained perfectly well without introducing the mathematical terminilogy and greek symbols. Are they trying to put people off?
Suggests that hash indexs must be unique. That is completely wrong. In fact the default is non-unique. The use of hash indexes is presently discouraged (version 9.3) so introducing them in an overview book is pretty stupid. The default b-tree would be fine and could go without further comment.
The dive into query plans and How SQL Gets executed in PostgreSQL is not relevant at all in a book at this level, but if it is going to be covered it should be in terms of what you might use it for.
Crosstab tells us nothing about PostgreSQL.
Cube tells us nothing about PostgreSQL.
The headings are far too keen to be cool and would do better to focus on conveying information. Examples: “the outer limits”, “pull the triggers”, “What RULEs the School”, “I’ll Meet You at the Crosstab”, “Bride of Levenshtein”. This is just patronising.
I was hoping to learn something from this book about the other databases, but since the coverage of PostgreSQL is so poor, I have no confidence that what I might learn from this book would have enough accurate information to be any use at all.