When we were little boys, we both wondered how people could write hundreds of pages about a certain topic. How could one person manage to keep all those things in mind, and how long does it take to write one of these voluminous books?
We never imagined that only a few
later we would be among those people
, writing a real book that other people can buy and read all around the globe. Somehow, a dream has come true, and now that the book is ready, we are really proud of it and hope that it will be one of the books other people use to build their database applications ”just as we have read books written by others that were essential for our work.
feeling to be one of these authors and to contribute documentation to the PostgreSQL community we have dealt with in the past few years.
It was back in 1996 when we first heard about Linux. Both of us remember it very clearly. It was during a C training course at the University of Vienna when, all of a sudden, the entire
was in the middle of a discussion about whether it is better to use Emacs or Vi. At that time, we hadn't heard of either of these two programs so the entire situation was somehow a little bit strange for us. We had only dealt with DOS and Windows. During this session, someone was also talking about Linux ”an operating system we had never
of. Back then, the idea that someone had developed an operating system that was completely free seemed very strange, but also very interesting, to us. Knowing that something interesting was going on out there encouraged us to pay the data processing center of the Technical University of Vienna a visit and download Slackware (a famous Linux distribution). The entire system could be stored on a 100MB zip-media. It was interesting to work with the system, although we had no previous experience with Unix. We did it just for fun and it was great to have a really powerful command line instead of a boring graphical interface.
, and we soon
to work extensively with Unix. During our time at Synthesis (a research company dealing with the Austrian labor market), we got more and more in touch with Unix. We did not know about PostgreSQL yet, but we had the
of working with the EFEU package (http://efeu.cybertec.at), created by Erich Fruehstueck, to perform all basic database operations for the company. Because we had to deal with dozens of millions of records on comparatively weak machines and very complex algorithms for transforming the data, it was
to work with "ordinary," commercial databases. Erich had to implement every operation manually, so we learned a lot about Unix (AIX and Linux) and the philosophy of Richard Stallman's Free Software Foundation (FSF). A year-and-a-half after we had started working at Synthesis, whether to switch to a commonly used database system was discussed. We started dealing with relational databases very extensively and learned about Oracle and other databases.
One day, we set up a new server environment in cooperation with a Linux company situated here in Vienna. We had a lot of
talks with the
of that company and during one of the discussion one of them said, "Why don't you use PostgreSQL?" I remember thinking, "What is PostgreSQL?"
We started dealing with the subject matter and it got more and more interesting. In a way, PostgreSQL was fascinating and that's what it still is.
A few months later, we left Synthesis and founded the Cybertec Geschwinde & Schoenig OEG here in Vienna (www.cybertec.at). From the beginning, PostgreSQL
a major role in most of our projects. The database had finally become some
of friend, and we used it frequently. The more we found out about the database, the more interesting the topic turned out to be.
In December 2000, when my
Ewald Geschwinde (we call him Epi) and I were on a skiing trip in the south of Austria, on a
lift Epi suddenly said that it would be interesting to provide commercial support for PostgreSQL. At that time, we had already dealt with PostgreSQL extensively and felt qualified enough to launch such a project. I guess that was the best and most far reaching decision in the history of our company ”it actually was some sort of enlightenment.
On February 22
, 2001, I was reading the logfile of our Web server to see what had
in the past few hours ”not knowing that this was the most important entry in the logfile I have ever seen:
macmin.mcp.com - - [21/Feb/2001:16:32:55 +0100] "GET / HTTP/1.1" 200 2290
A little later, I received an e-mail starting with
"Dear Webmaster ”could you forward this e-mail to your director of marketing?"
All of us here at Cybertec were extremely amused, because we are only a small company and something like a director of marketing doesn't exist. Since then, addressing each other as the director of marketing became some sort of a running gag for us. At first, we did not know how to
, because this offer was one of the things we had always dreamed of. The e-mail said that Sams Publishing was looking for an author or a co-author for a book about PostgreSQL. We started preparing a table of contents (the first version of the table of contents was actually ready after about 45 minutes, because all of us were extremely enthusiastic) and we sent it over to Sams.
When we started to write the sample chapter, all of us were extremely
if our work was good enough to
the high quality demands of Sams Publishing. We were also wondering whether we would be able to write such a voluminous book about PostgreSQL. After more time had passed and more work had been done, our confidence grew, and we started to believe that we would finally achieve our target ”the vision to be the authors of a book about PostgreSQL, our favorite database system. The reader will decide if the vision of being the designers and authors of a really good will finally come true. We have done our best to make this book fit your demands.
We have tried to make this book suitable for people who have never dealt with relational databases, as well as for professional developers. In the first 10 chapters, we will cover the basics of SQL database administration, including backup and recovery, PostgreSQL's extensibility, and software
to PostgreSQL. Chapters 11 through 20 present some real-world scenarios and solutions for common problems. We also want to present ideas and hints as to how you can use PostgreSQL
and which software is best to use in combination with the database.
This book is not designed to be a complete reference of PostgreSQL, but we have tried to extensively cover all aspects of the database from the
's point of view. All the sample code presented in this book has been
, and we have tried to avoid code