PostgreSQL es un sistema de administración de bases de datos relacionales orientadas a objetos (ORDBMS, object-relational database management system) basado en POSTGRES, Version 4.2, desarrollado en el Departamento de Ciencias Computacionales de la Universidad de California, Berkeley. POSTGRES fue pionero en muchos conceptos que solo llegaron a aparecer en algunos sistemas de bases de datos comerciales mucho tiempo después. PostgreSQL es un descendiente libre del código original de Berkeley.
Y por su licencia libre, cualquier persona puede usar, modificar y distribuir PostgreSQL de manera libre y gratuita para cualquier propósito, sea privado, comercial o académico.
Límite | Valor |
---|---|
Tamaño máximo de base de datos | Ilimitado |
Tamaño máximo de tabla | 32 TB |
Tamaño máximo de fila | 1,6 TB |
Tamaño máximo de campo | 1 GB |
Máximo de filas por tabla | Ilimitado |
Máximo de columnas por tabla | 250 - 1600 (dependiendo del tipo de columnas) |
Máximo de índices por tabla | Ilimitado |
Antes de empezar, es necesario comprender la arquitectura básica del sistema PostgreSQL. Entender cómo interactúan las partes de PostgreSQL hará que las siguientes páginas sean más fáciles de entender.
En la jerga de bases de datos, PostgreSQL usa un modelo cliente/servidor. Una sesión de PostgreSQL se compone de los siguientes procesos cooperativos (programas):
Como es típico en las aplicaciones cliente/servidor, el cliente y el servidor pueden estar en diferentes máquinas. En tal caso, ambos se comunican por medio de una conexión de red TCP/IP. Esto debe tenerse presente porque los archivos a los que se puede acceder desde una máquina cliente podrían no ser accesibles para la máquina con el servidor de bases de datos.
El servidor de PostgreSQL puede manejar muchas conexiones concurrentes de diferentes clientes. Para lograrlo, inicia (“ramifica”) un proceso nuevo para cada conexión. A partir de ese punto, el cliente y el nuevo proceso del servidor se comunican sin la intervención del proceso original de postgres. De esta manera, el proceso maestro del servidor siempre está corriendo, esperando conexiones de clientes, mientras que los clientes y sus procesos de servidor asociados vienen y van. (Todo esto, claro está, es invisible para el usuario. Solo se menciona aquí para propósitos ilustrativos).
Notas
[1] | Usuarios destacados. PostgreSQL.org.. The PostgreSQL Global Development Group, 2011. |