PostgreSQL (2nd Edition)
Format: PaperbackChange
Price:$47.68+Free shipping with Amazon Prime
Your rating(Clear)Rate this item

There was a problem filtering reviews right now. Please try again later.

40 of 41 people found the following review helpful
on January 31, 2007
This book lives up to it's claims for "the comprehensive guide to building, programming and administering postgresql databases". I'm a MySQL guy, but may have to do a little pgsql to support a third party app, so I was looking for a book that would bring me up to speed.

The quick review is this... I give this book 3 stars, because it's so huge and covers so much territory that, in my opinion, it does a middling job of it. I would have preferred a more focussed book. I think, given it's goal of being so comprehensive, it is about as good as it could be and if you really need to know everything - from sql, to developing extensions, to embedding this in your c/c++ programs and administering things AND want a single book that covers it this is probably the book for you. If you don't need quite that much, or are willing to go to more than one book to get it, I think you would be better served to look elsewhere.

The longer review...

Honestly, I don't know why books on databases almost invariably are terribly dry reads, but this book, following the odds, falls into that category. It's a hefty tome weighing in at about 1000 pages divided into 3 sections.

The first category, about a quarter of the book, is an introduction to sql and postgresql in particular. It does quite a nice job of introducing your standard sql commands, datatypes and basic administrative commands (like creating tables and the like). This part goes from basic to fairly advanced, covering topics like outer joins and creating new datatypes. I suspect it'll be review for those familiar with sql but reasonably usable for those delving into sql, even if they don't immediately understand all of the more advanced concepts.

The section ends with a chapter on performance, something I was particularly interested in given postgresql's reputation. Here the authors talk about standard performancy things like indexes, using various tools to figure out what a particular query is actually doing, all worthwhile. But they never go into any detail about the performance implications of using some of the more advanced postgresql features like composite types and table inheritance. I was quite disappointed to find not even a whisper of this type of information in the book.

The second section, about half the book covers programming with postgresql. This is a very broad chapter - covering many aspects of what it means to program this database. From server side programming using PL/pgSQL to extending the database with custom functions and types. They discuss creating clients in c, c++, java, perl, php, tcl, python and .net. Each one of these languages gets a chapter about 30-50 pages long where they go over the basics of how that language typically connects to the database and then goes through a process of creating a basic client and refining over the course of 4 or 5 iterations to become more and more robust and full featured. This is the bulk of the book and because it's so wide spread, I think most people will only be interested in one or two of these chapters - the rest of which will probably be uninteresting.

The last section is the final quarter of the book where they go over the administrative requirements of the database. They admirably try to direct people to download and compile their own binaries, but cover installation from binary on unix and windows. They have an excellent reference on the things you can tweak to configure the runtime environment. They also cover backing up the database, replication, internationalization and security. Although they mention performance optimization in the intro to the section, they don't actually discuss it anywhere in the section.

So, to sum up. If you really need to know about all aspects of pgsql and are looking for a one stop shop, this book is - I think - as good as you're going to find. But if you're looking into only a particular aspect (developing, administereing, etc..) or don't mind going to more than one, I feel confident that there's other books out there that will cover those topics in better detail.
11 commentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
36 of 43 people found the following review helpful
on December 11, 2005
This "complete reference" is a total mess. It took quite a while to find out how to stop the server otherwise than by "kill" command, because "Server startup and shutdown.....779" refers to a text block which says that "we'll explain it in the next chapter".

Also, buying a tome of 1000+ pages, you would probably (and rightfully) expect to find a complete syntax reference to such essential commands as CREATE TABLE. I didn't find one! There is only a brief introduction to the basic syntax.

Normally, books of such volume contain several appendixes in the end, like "PostgeSQL syntax", "Perl API syntax", etc. Not in this one.

The bottom line is, buy "Beginning databases with PostgreSQL" by Neil Matthew and Richard Stones. This book will get you started quickly and painlessly. This book is a bit over 600 pages, and is very clearly written.
22 commentsWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
21 of 24 people found the following review helpful
I was surprised at how advanced this book was. It starts with the usual introduction to basic SQL access to PostgeSQL, then has a two chapters on data types and syntax, and then jumps straight into performance and extensions stuff. It then covers PL/pgSQL. The majority of the second section of the book is examples of writing for Postgres with various programming languages (e.g. C, C++, Java, Perl, PHP, Python, etc.)
I liked the advanced content, but I was looking for a book on Postgres basics. So I don't think I got the right thing. My advice to you is, check out the table of contents, and make sure you are getting the content you need. If you are looking for a basic Postgres reference, this is not going to have much content for you.
11 commentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
23 of 28 people found the following review helpful
I really enjoyed the work of Korry and Susan Douglas, opening the world of PostgreSQL to me. I'd not considered the database a viable contender for my needs until I opened this book and saw all of the goodies it had to offer. The book explains the details of PostgreSQL in enough detail to get you going without bogging you down in the details, and I appreciate that, except for one thing:
1. I would have liked more information about installing and using PostgreSQL on Windows. They discuss installing with Cygwin, but don't cover downloading from Postgres' site, or any of the quirks that come from using Postgres on Windows. This is I'm certain an oversight and something they will correct or add to the next edition of the book.
Also, I can do without YASI (yet another SQL intro). I know SQL, I own SQL In A Nutshell from O'Reilly, I'm more than capable of working with databases, and I'd much rather they just explain what's unique and different about PostgreSQL instead of reviewing the SQL syntax with me.
Still, all those being said, I find this book to be informative and worthwile.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
10 of 11 people found the following review helpful
A large section of the book goes into PL/pgSQL programming. Like Oracle's PL/SQL or SQL Server's T-SQL, PostgreSQL has it's own SQL programming language. The book discusses the basics of using PL/pgSQL in addition to more complex information (including cursors and triggers).
The next section of the book really go into examples of using PostgreSQL in specific development environments. Specifically, chapters are dedicated to the use of PostgreSQL in Java code (examples are provided in which JDBC connections are made), PHP and Perl, and even ODBC (for those of us using non-open source languages). I especially liked these chapters, as they really helped me see exactly how to implement database calls to PostgreSQL.
The last third of the book is really designed for database administrators. In this section, information is provided on doing everything you need to do from a DBA perspective on PostgreSQL. There is information on configuration, security, and internationalization. One section I particularly found useful was on things to watch out for when running PostgreSQL in a Windows environment (specifically during installation).
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
6 of 7 people found the following review helpful
on November 22, 2006
I found the book to be a great complement to the Postgres documentation. The book does an excellent job of explaining the big picture of Postgres while providing enough details to make itself quite useful.

The book is quite big at 1000 pages and is divided into three parts. Part 1 does a good job of explaining foundational elements about Postgres that both developers and system administrators need to know.

Part 2 of the book covers the various programming interfaces for working with postgres. A nice feature of part 2 was the coverage of how to write new functions and data types for postgres in C. If you know C this section will be an easy read. I did not type in the C code in part 2 of the book since I do not need to extend Postgres in any way. However, seeing how data types and functions are implemented in C gave me a great appreciation for Postgres and its internals. Part 2 seems to cover all the client apis to talk to postgres at the expense of providing in depth knowledge on a specific client API. Missing from this book is how to use Postgres from Ruby. I did not read most of the chapters on the client Access API's since I program in Java and know JDBC quite well. I would say that the client API coverage is a great starting point and not an in depth reference.

Part three of the book cover various administration aspects of Postgres. Overall the coverage was good. The only thing to watch out for is that the coverage of Postgres Security is split between chapters 21 and 23.

One of the main things that loved about the book is that it does not try to explain the bascis of SQL and instead focuses on Postgres issues. If you are looking for an intro to database programming i would not recommend this book.

I highly recommend this book and hope you enjoy it as much as I did.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
7 of 9 people found the following review helpful
on August 30, 2003
UPDATE 2 (Nov 2007)

Just a note to say that this review was written for the first edition. I have not seen the second edition.

UPDATE 1 (Sept 2003)

I am updating this review and giving it an additional star now that I have been through the whole book. It rates 4 stars for it's overall clear writing and completeness.


I am only part way through chapter 3 but I thought it worth writing a short review to warn about the example database in this book.

From one page to the next tables in the example database mysteriously add or drop fields. This would be OK if the book led you through a logical progression where the changes made sense, but the differences seem gratuitous. (Do tapes have a duration or not?) Also, if you try to keep up by adding, removing, creating and droping things as you follow along you start to get into trouble as referential integrity (a great SQL feature supported by PostgreSQL) prevents you from doing the right thing.

The example code is available on a website, but the link given in the book doesn't work. A little hunting around will get you there but it would be nice if the authors kept the link mentioned in the book.

When you do find the sample code on the web site you will notice that it needs to be downloaded in seperate chunks, one for each chapter - a minor annoyance. One isn't sure if it is OK to untar them all in one dierctory or not. (It's not. Here is a shell script to help:)

for f in chapter??.tgz ; do
d=$\{f/.tgz} # please remove the backslash -- I had to put it in to get the rest of the line to display in this review
mkdir -p $d
echo -n "Processing $f ..."
tar -C $d -zxf $f
echo " done"

Given that the example in the book keeps morphing from one page to the next it is not surprising that the sample code on the web page doesn't match the examples in the book. It would need several versions to match just the changes within one chapter.

I do give the book good marks for clear writing and for making the concepts understandable. Right now I am just frustrated by the examples.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
5 of 6 people found the following review helpful
on December 12, 2005
I have the first edition of this book. I purchased it when I started to use PostgreSQL to develop a retail reporting warehouse for our company. After a year of development I can tell you the book is worth the money. While the online manuals are much more extensive and complete they can also be quite terse. This book gives you the needed foundation you can then build upon by referring to the online documentation for PostgreSQL. Nowadays, when I have a question about the database server I always go straight to the online documentation but I also carry this book with me to work. I still find it can sometimes provide a more clear explanation of some part of the server than the online documenation can even if it is not always as in depth as I would like.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
2 of 2 people found the following review helpful
PostgreSQL 2nd Edition is a phenomenal book if you're a programmer, and a great book if you're a non-programming admin. As someone whose programming ability reaches only ever so slightly beyond bash scripting and WSH, the parts of this book that were really worthwhile to me were those devoted to the administration of PostgreSQL. Backing up, recovering, and performance tuning were excellent resources, especially to someone who had never set up or administered a database. Speaking of which, the very beginning of the book, covering what exactly a database is, terminology, and setting up and creating schema were invaluable. To have all the information in PostgreSQL 2nd Edition consolidated in this one book makes it a must-have for any admin's bookshelf. The only reason it didn't get 5 stars from me was because I'm not a programmer, and I couldn't take away every single ounce this great resource had to offer.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
1 of 1 people found the following review helpful
on March 11, 2010
I've used this book for a couple of years, now, and have found it quite useful. It is quite comprehensive, covering many topics.

This is not just a reference manual, however. If you are looking for "Just the Facts, Ma'am," You should probably download/print (or buy) the official documentation first. The structure of the book is also somewhat non-traditional. The book is separated into three major sections:

I - General PostgreSQL Use
II - Programming With PostgreSQL
III - PostgreSQL Administration.

Each of these sections is aimed at a sub-set of the potential readers (albeit, with a large bleed-over between the reader subsets.)

The first section, an overview of SQL with PostgreSQL specifics, provides basic database and SQL information aimed at the new database user, as well as fairly comprehensive coverage of PostgreSQL specific features and language extensions for the new PostgreSQL (but not database) user. While it does a decent job supporting this dual sub-group, someone who is not database literate at all may find the material challenging, and may want to consider Matthew and Stones' "Beginning Databases with PostgreSQL: From Novice to Professional," first, which, IMO, does a better job as an introductory text. For the experienced database user who may be using PostgreSQL for the first time, Chapter 4 will be of interest, as it discusses PostgreSQL performance - How PostgreSQL executes queries, and what you can do to make them run more efficiently.

Section Two is aimed squarely at the database developer - It is all about PostgreSQL Programming. This section first describes the programming options available to PostgreSQL developers (of which there are MANY,) how to extend PostgreSQL (if needed) by adding new functions, triggers, data types, and operators. Then, it discusses the various programming languages that can be used within the PostgreSQL server, as well as the data interfaces available for use.

Finally, the third section discusses PostgreSQL administration, and is geared more towards the DBA.

The main fault that I have with this book, at present, is that it has become somewhat dated - The second edition was originally released in 2005, and the release I own was printed in 2006. It covers PostgreSQL versions 7.4 and 8.0. While Version 8 was a major PostgreSQL release, the current release, as of March, 2010, is 8.4.2, and versions 8.1 through 8.4 have had several major features added, as well as numerous improvements made, since version 8.0 was released. The book is seriously in need of a new edition, which would include coverage of at least:

Windowing Functions
Common Table Expressions and Recursive Queries
Default and variadic function parameters
Parallel Restore
Column Permissions
Easier-to-use Warm Standby
Support of SSL certificates for user authentication
Full text search, as integrated into the core database system
Support for the SQL/XML standard, including new operators and an XML data type
Enumerated data types (ENUM)
Arrays of composite types
Universally Unique Identifier (UUID) data type
Updatable cursors
Two-phase commits
A new role system (replacing users/groups)

In spite of this edition beginning to show it's age, it is still an extremely useful addition to the PostgreSQL user's library, and I can recommend it highly.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Customers who viewed this also viewed

Beginning Databases with PostgreSQL: From Novice to Professional
Beginning Databases with PostgreSQL: From Novice to Professional by Neil Matthew (Paperback - September 6, 2007)

PostgreSQL Server Programming
PostgreSQL Server Programming by Hannu Krosing (Paperback - June 25, 2013)

Send us feedback

How can we make Amazon Customer Reviews better for you?
Let us know here.