¿Qué es PostgreSQL?


PostgreSQL carga a sus espaldas con más de 30 años de desarrollo. Este gestor de bases de datos objeto-relacionales (ORDBMS) tiene su origen en el proyecto POSTGRES de la Universidad de California en Berkeley, iniciado en 1986 bajo la dirección de Michael Stonebraker y que obtuvo financiación de la Agencia de Proyectos de Investigación Avanzados de Defensa (DARPA) y de la Fundación Nacional para la Ciencia (NSF), entre otros entes norteamericanos. En 1994 los estudiantes Andrew Yu y Jolly Chen ampliaron el código básico con un intérprete para SQL, publicándose esta nueva versión, de un 30 % a un 50 % más rápida, con el nombre de Postgres95 y como solución open source (con una licencia propia similar a BSD y MIT). Dos años más tarde, la aplicación para bases de datos obtiene con la versión 6.0 su nombre actual, PostgreSQL.

 Nota
Junto al nuevo nombre, PostgreSQL, también sigue utilizándose el original, Postgres, para referirse al sistema de base de datos, si bien pocas veces completamente en mayúsculas. Excepto por cierta nostalgia, este hábito puede explicarse porque la pronunciación oral del segundo es más sencilla.

El proyecto POSTGRES desempeñó una valiosa labor pionera y elaboró un gran número de conceptos que solo encontraron aplicación mucho más tarde en otros sistemas de base de datos, sobre todo comerciales. Y es que PostgreSQL no solo se distingue como una base de datos compatible con SQL, sino también por estos rasgos:


  1. Posibilidad de realizar consultas complejas;
  2. Clave foránea para conectar datos de dos tablas;
  3. Disparadores (trigger) que se inician de forma automática a partir de una entrada y la comprueban, la confirman o la eliminan o emplean datos de referencia;
  4. Vistas actualizables;
  5. Concepto muy amplio de transacción;
  6. Control de concurrencia mediante versiones múltiples (Multiversion Concurrency Control, MVCC) para que el acceso simultáneo a la BD se ejecute de forma eficiente.
Por último, la licencia libre permite a los usuarios modificar y ampliar PosgreSQL con gran libertad para, de este modo, añadir tipos nuevos de datos, funciones, operadores, métodos de indización o lenguajes procedurales (lenguajes de programación para escribir funciones y disparadores).


                   Postgres: datos clave y requisitos de sistema

La flexibilidad de PostgreSQL no solo se pone de relieve en el terreno de la funcionalidad y la capacidad para ampliarse y ajustarse, sino también en la instalación del software y el hardware. De hecho, Postgres está integrado en la mayoría de distribuciones UNIX/Linux y Apple lo incluye desde Mac OS X Lion (10.7) como la base de datos por defecto. La única condición es tener instalada una versión actual de gmake (3.80 o superior) –ya está incluida en los archivos binarios listos para descargar. Y con los paquetes de instalación pertinentes, también los sistemas operativos Windows son una opción. La potencia y el espacio necesarios dependen únicamente del tamaño del sistema de base de datos que se quiere instalar (nuestro software open source, por ejemplo, requiere solo unos escasos 20 MB).

Como en la práctica es más probable verse limitado por la memoria disponible en el equipo que por el propio PostgreSQL, mostramos a continuación los datos más importantes sobre la base de datos objeto-relacional:

Tamaño máximo de la base de datos:                                                                Ilimitado

Tamaño máximo de una tabla:                                                                         32 terabytes

Tamaño máximo de un registro:                                                                       1,6 terabytes

Tamaño máximo de una celda:                                                                        1 gigabytes

Número máximo de columnas:                                   En función del tipo de dato, de 250 a 1 600

Número máximo de filas:                                                                                     Ilimitado

Número máximo de índices:                                                                           Ilimitado

                                     ¿Cómo funciona PostgreSQL?

Postgres se basa en el clásico modelo cliente-servidor: el componente central que hace de servidor, con el nombre de “postmaster”, administra todos los archivos de la BD, así como todas las conexiones que se establecen con el servidor de la BD para las funciones de comunicación (input/output). Para establecer estas conexiones solo se necesita un programa-cliente, si bien el paquete de software de PostgreSQL ya integra de forma nativa el cliente psql para operarlo desde la terminal de líneas de comando. También podría optarse por una aplicación con interfaz gráfica de usuario como pgAdmin o phpPgAdmin, fáciles de instalar y manejar. En las páginas web interactivas es el servidor web el que se encarga de hacer de cliente.

 Consejo
Muchas distribuciones Linux entregan con pgAccess un cliente Postgres gráfico propio.

¿En qué proyectos podría utilizarse a PostgreSQL?
Como sistema de gestión de bases de datos acreditado y extremadamente flexible, Postgres se utiliza en numerosos sectores y escenarios diferentes, erigiéndose como una base inmejorable para operar con seguridad las más diversas aplicaciones. Por ejemplo, gracias a su concepto de transacción integrado y su compatibilidad con MVCC (Multiversion concurrency control), el proyecto constituye una solución perfecta para el software de banca online. También los programas de análisis como Matlab o R armonizan con la base de datos, lo que hace que suelan utilizarse combinados. Complementado con la extensión PostGIS, que provee cientos de funciones para trabajar con datos geográficos, Postgres también saca buena nota en el trabajo con datos espaciales y geográficos.

PostgreSQL también es popular como solución para proyectos web, funcionando con varios frameworks modernos como Django, Node.js o Ruby on Rails y soportando los lenguajes clásicos de programación, como PHP. Al soportar la replicación síncrona y asíncrona, los datos pueden distribuirse fácilmente en varios servidores con el fin de garantizar una elevada seguridad ante caídas y un tiempo de acceso mínimo a los datos importantes.

 Nota
El soporte de JSON también convierte a PostgreSQL en una solución excelente de base de datos para escalar cargas de trabajo (workloads) de NoSQL.

                               Instalar PostgreSQL en Linux y Windows

Todo aquel que quiera utilizar Postgres para su proyecto puede instalar el gestor de bases de datos en unos pocos pasos sin tener que adquirir una licencia. En el portal de descargas de la página de PostgreSQL se facilitan los archivos binarios necesarios así como los enlaces a los repositorios de los paquetes fuente para BSD, Linux, macOS, Solaris y Windows, que pueden instalarse y utilizarse sin coste. No es necesario disponer de derechos raíz: para la ejecución es suficiente con tener simples derechos de administrador.

En los siguientes apartados mostramos cómo se lleva a cabo la instalación de PostgreSQL en Linux (Ubuntu 17.10) y Windows.

Instalar PostgreSQL en Linux (Ubuntu 17.10)

El repositorio apt de Postgres soporta oficialmente las versiones LTS de Ubuntu (desde la 14.04) y otras como Ubuntu 17.04. Los paquetes fuente acostumbran a funcionar también en otras versiones, pero el equipo de PostgreSQL recomienda utilizar una versión de TLS lo más actual posible para que a largo plazo se aprovechen mejor las ventajas del programa. Como en Ubuntu los paquetes ya están incluidos en el repositorio estándar, con el gestor de paquetes apt pueden instalarse sin problemas:


  • sudo apt-get update
  • sudo apt-get install postgresql postgresql-contrib

Este es el comando con el que se instala PostgreSQL y se crea automáticamente un usuario Linux con el nombre de “postgres” que permitirá acceder a la base de datos y que por seguridad solo debería utilizarse para esto. También se recomienda proteger este perfil con una contraseña, puesto que por defecto no hay ninguna. Para ello solo tienes que introducir el siguiente comando y la contraseña elegida dos veces:


  • sudo passwd postgres

Junto al usuario Linux “postgres”, también existe un usuario homónimo de la BD que será necesario para su administración y que también debería protegerse con una contraseña segura. Para hacerlo, se escribe el siguiente comando (“contraseña nueva” sustituye a la contraseña que has elegido):


  • su - postgres
  • psql -d template1 -c "ALTER USER postgres WITH PASSWORD ''contraseña nueva';"


Para comprobar que la instalación se ejecutó correctamente, puedes crear una base de datos de prueba (testdb) con la cuenta “postgres” y administrarla con el cliente-terminal psql:


  • su - postgres
  • createdb testdb
  • psql testdb

En la terminal se muestra entonces esta salida del shell del cliente psql, que se maneja con comandos de SQL:

 Ubuntu 17.10: cliente psql conectado con testdb

Comentarios

Entradas populares de este blog

¿COMO SURGIÓ LA PROGRAMACIÓN?

Historia PostgreSQL