1.2. 体系基本概念

在我们开始讲解之前,我们应该先了解 PostgreSQL 系统的基本体系。 理解 PostgreSQL 的部件之间的相互关系将会使本节显得更清晰一些。

在数据库术语里,PostgreSQL 使用一种客户端/服务器的模式。一次 PostgreSQL 会话由下列相关的进程(程序)组成:

和典型的客户端/服务器应用(C/S应用)一样,这些客户端和服务器可以在不同的主机上。 这时它们通过 TCP/IP 网络联接通讯。 你应该记住的是,在客户机上可以访问的文件未必能够在数据库服务器机器上访问(或者只能用不同的文件名进行访问)。

PostgreSQL 服务器可以处理来自客户端的多个并发请求。 因此,它为每个请求启动("fork")一个新的进程。 从这个时候开始,客户端和新服务器进程就不再经过最初的 postmaster 进程的干涉进行通讯。 因此, postmaster 总是在运行,等待着联接, 而客户端和相关联的服务器进程则是起起停停。(当然,用户是肯定看不到这些事情的。我们在这儿谈这些主要是为了完整。)