Antes de continuar, debes entender la arquitectura básica del sistema PostgreSQL. Comprender cómo interactúan las partes de PostgreSQL hará que este capítulo sea algo más claro.
En la jerga de las bases de datos, PostgreSQL utiliza un modelo cliente/servidor. Una sesión de PostgreSQL consiste en los siguientes procesos (programas) cooperativos:
Un proceso de servidor, que gestiona los archivos de la base de datos, acepta conexiones
a la base de datos de aplicaciones cliente y realiza acciones de base de datos en nombre
de los clientes. El programa del servidor de bases de datos se llama
postgres.
La aplicación cliente (frontend) del usuario que desea realizar operaciones de base de datos. Las aplicaciones cliente pueden ser muy diversas en su naturaleza: un cliente podría ser una herramienta orientada a texto, una aplicación gráfica, un servidor web que accede a la base de datos para mostrar páginas web o una herramienta de mantenimiento de base de datos especializada. Algunas aplicaciones cliente se suministran con la distribución de PostgreSQL; la mayoría son desarrolladas por los usuarios.
Como es típico en las aplicaciones cliente/servidor, el cliente y el servidor pueden estar en diferentes hosts. En ese caso, se comunican a través de una conexión de red TCP/IP. Debes tener esto en cuenta, ya que los archivos a los que se puede acceder en una máquina cliente podrían no ser accesibles (o podrían serlo solo con un nombre de archivo diferente) en la máquina del servidor de base de datos.
El servidor PostgreSQL puede manejar múltiples conexiones simultáneas de
clientes. Para lograr esto, inicia (“forks”) un nuevo proceso para cada conexión. A partir
de ese momento, el cliente y el nuevo proceso del servidor se comunican sin la intervención del proceso
postgres original. Por lo tanto, el proceso del servidor supervisor siempre se está
ejecutando, esperando conexiones de clientes, mientras que los procesos cliente y del servidor asociados
vienen y van. (Todo esto es, por supuesto, invisible para el usuario. Solo lo mencionamos aquí por razones
de exhaustividad).