Conceptos de arquitectura

Antes de comenzar, debería comprender las bases de la arquitectura del sistema PostgreSQL. Entendiendo como las partes de PostgreSQL interactúan le hará el siguiente capítulo mucho más sencillo.

En la jerga de bases de datos, PostgreSQL usa un modelo cliente/servidor. Una sesión PostgreSQL consiste en los siguientes procesos cooperativos (programas):

  • Un proceso servidor, el cual es el supervisor de los archivos de la base de datos, acepta las conexiones de las aplicaciones clientes y las acciones de rendimiento de parte de los clientes. Este programa es llamado postgres.
  • La aplicación sobre la que trabajan los usuarios (frontend). Las aplicaciones clientes pueden ser de naturaleza diversa: herramientas de texto, aplicaciones gráficas, servidores web que acceden a la base de datos y/o herramientas especializadas de administración de base de datos. Algunas de estas aplicaciones son suministradas con las distribuciones de PostgreSQL, más otras desarrollados por lo propios usuarios.

Como una típica aplicación cliente/servidor, el cliente y el servidor pueden estar en diferentes hosts. En este caso la conexión por la red será TCP/IP. Debe tener esto en mente, porque los archivos que pueden ser accedidos en la máquina del cliente pueden no ser accesibles (o sólo pueden ser accedidos usando un nombre de archivo diferente) en el servidor de base de datos.

Los servidores PostgreSQL permiten realizar múltiples conexiones desde procesos clientes. Para ello, se inicia ("forks") un nuevo proceso por cada conexión. Desde esta manera, el cliente y la nueva conexiones con proceso del servidor no necesita utilizar el proceso postgres original. Una implicación de esta arquitectura es que los procesos master del servidor siempre se ejecutan, esperando conexiones de los clientes, donde un cliente esta asociado al proceso en el servidor. ( Todo lo visto es transparente para el usuario. Se menciona solamente para completar su conocimiento.)