Before we begin, you should understand the basic PostgreSQL
system architecture. Understanding how the parts of PostgreSQL
interact will make the next chapter somewhat clearer. In
database jargon, PostgreSQL uses a simple "process per-user"
client/server model. A PostgreSQL session consists of the
following cooperating Unix processes (programs): A supervisory
daemon process (the postmaster), the user's frontend application
(e.g., the psql program), and one or more backend database
servers (the postgres process itself). A single postmaster
manages a given collection of databases on a single host. Such a
collection of databases is called a cluster (of databases). A
frontend application that wishes to access a given database
within a cluster makes calls to an interface library (e.g.,
libpq) that is linked into the application. The library sends
user requests over the network to the postmaster (Figure
10-1(a)), which in turn starts a new backend server process
(Figure 10-1(b))Figure 10-1(c)). From that point on,