1.2. Fundamentos de arquitectura #

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:

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).