X

Servidor PostgreSQL

Las bases de datos relacionales son uno de los tipos más populares que existen, y su uso nos permite crear sitios web de toda clase. Entre los sistemas de bases de datos relacionales más utilizados se encuentra uno que es conocido como PostgreSQL, que dicho sea de paso está entre los más usados a nivel mundial.

En esta ocasión vamos a ver qué es PostgreSQL exactamente, también haremos un breve repaso de su historia, principales características, proceso de instalación del servidor y más.

¿Qué es PostgreSQL?

PostgreSQL, o simplemente Postgres para darle un nombre más pintoresco, es un sistema de código abierto de administración de bases de datos del tipo relacional, aunque también es posible ejecutar consultas que sean no relaciones. En este sistema, las consultas relacionales se basan en SQL, mientras que las no relacionales hacen uso de JSON.

Como decíamos, se trata de un sistema de código abierto y además gratuito, y su desarrollo es llevado adelante por una gran comunidad de colaboradores de todo el mundo que día a día ponen su granito de arena para hacer de este sistema una de las opciones más sólidas a nivel de bases de datos.

Dos detalles a destacar de PostgreSQL es que posee data types (tipos de datos) avanzados y permite ejecutar optimizaciones de rendimiento avanzadas, que son características que por lo general solo se ven en sistemas de bases de datos comerciales, como por ejemplo SQL Server de Microsoft u Oracle de la compañía homónima.

Breve historia de PostgreSQL

PostgreSQL no siempre tuvo el nombre con el que conocemos hoy en día, de hecho en sus comienzos era llamado simplemente Postgres, su nombre fue cambiado años más tarde dado el gran uso de bases de datos del tipo SQL.

Nació a mediados de la década de 1980 a partir de Ingres, otro proyecto de bases de datos que tuvo su origen en la década anterior. Michael Stonebraker, quien encabezó el proyecto, decidió llamar Post Ingres a su nuevo sistema, acortando el nombre simplemente a Postgres.

La primera versión al público, de acceso bastante limitado por cierto, estuvo disponible en el año 1989. El proyecto siguió creciendo y mejorando en los años anteriores, pero el equipo que lo llevaba adelante se separó en 1994. Dado que Postgres contaba con licencia libre el proyecto fue retomado y relanzado con soporte para SQL al año siguiente.

PostgreSQL recibió su nombre actual en el año 1997 junto al lanzamiento de su versión 6.0, aunque el cambio ya había sido anunciado el año anterior. A partir de allí gran cantidad de usuarios e interesados decidieron unirse al proyecto, dando origen a la gigantesca comunidad que hoy en día respalda a PostgreSQL.

Características

Siendo uno de los sistemas de bases de datos más avanzados y usados del mundo, es obvio que PostgreSQL debe tener algunas características bastante llamativas, así que vamos a echarle un vistazo a algunas de ellas.

  • Es de código abierto: una de las principales razones por la cual PostgreSQL se ha vuelto tan popular es que se trata de un sistema de código abierto. Esto ha permitido que una gran comunidad de desarrolladores crezca para respaldarlo y continuar mejorándolo. Gracias a todo el apoyo con el que cuenta ha logrado transformarse en uno de los mejores gestores de bases de datos a nivel mundial.
  • Es gratuito: como cabe esperarse se trata de un sistema totalmente gratis, no tenemos que pagar nada por utilizarlo. Cualquier persona es libre de descargar PostgreSQL desde su sitio web oficial y darle uso sin ningún costo.
  • Es multiplataforma: una característica genial que de hecho es común en muchos grandes proyectos de código abierto es el hecho de que se trata de software multiplataforma, es decir, es un software que puede correr bajo distintos entornos y sistemas operativos, y es compatible con muchos de los servidores web más populares como Apache, Nginx y LiteSpeed por mencionar algunos.
  • Es fácil de usar: la facilidad de uso de PostgreSQL es sin dudas otra de las principales características de este sistema. Su administración se vuelve muy sencilla por medio de paneles con PgAdmin, que básicamente viene a ser un phpMyAdmin orientado para PostgreSQL. La posibilidad de realizar diversos procedimientos en forma sencilla hacen que PgAdmin sea ampliamente utilizado, aunque también permite realizar tareas más complejos, así que tanto novatos como usuarios expertos hacen uso de él.
  • Puede manejar un gran volumen de datos: una característica extremadamente importante de PostgreSQL es su gran capacidad para el manejo de grandes volúmenes de datos, algo en lo que otros sistemas como MySQL aún no hacen tan bien. Las bases de datos de gran tamaño pueden hacer pleno uso del MVCC de PostgreSQL, resultando en un gran rendimiento. MVCC es un método de control que nos permite realizar tareas de escritura y lectura simultáneamente.
  • Soporte total de ACID: otro punto muy importante que no se debe dejar de lado es el cumplimiento de ACID. ¿Qué es ACID? Estas siglas en inglés refieren a: atomicity, consistency, isolation y durability, que si lo traducimos al español básicamente hablan de la atomicidad, consistencia, aislamiento y durabilidad de las transacciones que se realizan en una base de datos. ¿Y por qué es tan importante? Porque tener soporte completo de ACID da la seguridad de que, si se produce una falla durante una transacción, los datos no se perderán ni terminarán donde no deban.

Cómo administrar PostgreSQL mediante interfaz gráfica

Existen diversos programas que nos dan la posibilidad de manejar bases de datos hechas en PostgreSQL haciendo uso de una interfaz gráfica, lo cual viene bien si no somos muy amigos de la consola. Alguno de estos programas son los siguientes:

  • pgAdmin: es probablemente el gestor de PostgreSQL más conocido y utilizado del mundo. Es fácil de utilizar, intuitivo y compatible con gran cantidad de sistemas operativos, además claro de ser gratuito. Estas características han hecho que se vuelva una de las herramientas más utilizadas a la hora de administrar bases de datos en Postgres. Inicialmente era conocido como pgManager pero con el paso del tiempo cambió de nombre. Su versión más reciente es pgAdmin 4 y podemos correrlo en diversos entornos como Windows, Linux y macOS.
  • PhpPgAdmin: esta herramienta es muy parecida a phpMyAdmin, más incluso que la ya nombrada pgAdmin. Si conoces phpMyAdmin entonces no tendrás muchos problemas para utilizarla pues funciona de manera muy similar. En el menú izquierdo del programa se despliegan los servidores de PostgreSQL y las bases de datos que contiene cada uno, y del lado derecho tenemos diversas herramientas y funcione como por ejemplo exportar e importar, ajustar privilegios, editar campos, etc.
  • DBeaver: es un conocido programa para administrar bases de datos. No solo es compatible con Postgres, sino también con muchos motores más como por ejemplo MySQL, Oracle, SQL Server, MariaDB, etc. Este estupendo gestor está disponible para distintos sistemas operativos y es completamente gratuito. Sus características y funciones hace que sea una de las herramientas preferidas de gran cantidad de usuarios, desarrolladores y administradores de servidores de bases de datos que trabajan a diario con Postgres.
  • Navicat: es el nombre que recibe uno de los más poderosos administradores de bases de datos. Al igual que el ya mencionado DBeaver tiene soporte para distintos gestores de bases de datos, incluyendo, además claro de Postgres, a MySQL, MariaDB, SQLite, Oracle, MongoDB y Microsoft SQL Server. Esta herramienta nos permite conectarnos bases de datos tanto a nivel local como también en servidores remotos. La interfaz gráfica de Navicat es del tipo explorador y está orientado para usuarios de bases de datos de todos los niveles, es decir desde novatos hasta expertos en el tema. Se trata de un software multiplataforma, así que no tendremos problema para correr en Windows, Linux o macOS.

Comparación de PostgreSQL vs MySQL

A lo largo de los años las comparaciones de PostgreSQL y MySQL no han parado de crecer, y es que se trata de los sistemas de bases de datos relacionales más usados a nivel mundial, aunque claro tienen algunas diferencias entre sí que hacen que los usuarios se inclinen por uno o por otro.

PostgreSQL como ya decíamos sigue siendo un sistema de código libre y totalmente gratuito que está en manos de una comunidad. Con MySQL la historia fue similar durante un buen tiempo, hasta que quedó en manos de Oracle. Actualmente sigue existiendo una versión gratuita de MySQL, aunque eso solo será hasta que Oracle así lo quiera. Afortunadamente existen alternativas MySQL extremadamente similares como MariaDB, por si algún día necesitas un reemplazo.

En lo que refiere a las consultas o queries, las soportadas por MySQL tienden a ser más simples, mientras que PostgreSQL soporta queries más complejas, lo cual le ha válido el título del sistema de bases de datos relacionales más avanzado del mercado.

En términos de rendimiento cada uno tiene su situación para brillar: MySQL es mejor si se manejan bajos volúmenes de datos, es decir, si tenemos bases de datos pequeñas o medianas a las cuales se hagan una cantidad de consultas no muy alta. Por su parte, PostgreSQL es mejor a la hora de manejar volúmenes de datos grandes y se suele usar más cuando se tienen bases de datos grandes y con alta cantidad de consultas.

Si miramos el cumplimiento de ACID nos toparemos conque MySQL no lo soporta al 100%, sino solamente las tablas que hagan uso de NDB Cluster o InnoDB, mientras que PostgreSQL sí lo soporta completo en todos los casos.

Resumiendo, por ahora ambos son gratis, así que debemos elegir basándonos en rendimiento más que nada: si quieres un sistema para bases de datos medianas o pequeñas y consultas no muy complejas ni muy abundantes ve por MySQL, de lo contrario PostgreSQL es mejor opción si vas a manejar un volumen notable de datos.

Y como detalle final, si el cumplimiento de ACID es para ti un factor de vida o muerte, tendrás que optar por usar InnoDB en MySQL si no deseas hacer uso de Postgres.

Instalación de PostgreSQL en Linux

Veamos a continuación cuál es el proceso para instalar PostgreSQL en sistemas Ubuntu y en CentOS, dos de las distros más utilizadas a nivel de servidores.

Instalación de PostgreSQL en Ubuntu

PostgreSQL está añadido por defecto en los repositorios de Ubuntu, así que su instalación es extremadamente sencilla mediante el uso del sistema de paquete apt. Recuerda que este tipo de comandos se deben ejecutar utilizando el usuario root o bien un usuario con permiso de sudoers para poder hacerlo mediante sudo.

Lo primero que vamos a hacer es correr cualquier actualización de indíces pendiente, muy importante para asegurar que estemos descargando la versión estable más reciente. Para esto ejecutaremos lo siguiente:

apt update

Ahora que estamos al día con apt es hora de pasar a la instalación de PostgreSQL. Junto a dicho software instalaremos el paquete contrib del mismo, que agrega varias utilidades y extras que siempre es bueno tener, así que ejecutamos esta sintaxis:

apt install postgresql postgresql-contrib

Y eso es todo, en breve tendremos PostgreSQL instalado. Para interactuar con él, crear bases de datos, usuarios y demás basta con ejecutar un cambio de usuario a postgres y escribir pgsql a continuación, aunque todo eso se puede hacer con una sola sintaxis:

sudo -u postgres psql

De esta forma abrirás la consola de PostgreSQL y ya podrás comenzar a trabajar con él.

Instalación de PostgreSQL en CentOS

La instalación de PostgreSQL bajo el sistema operativo CentOS también es extremadamente sencilla, basta con usar el gestor de paquetes yum que CentOS incluye, aunque si estás usando el nuevos CentOS 8 puedes hacerlo por medio de dnf, solo reemplaza yum por dnf en la sintaxis de abajo:

yum install postgresql-server postgresql-contrib

Ahora tenemos que hacer un pequeño setup, comenzando con este comando:

postgresql-setup initdb

Y seguido a eso debemos editar un archivo, en el ejemplo usamos Nano pero puedes usar el editor de texto que prefieras:

nano -w /var/lib/pgsql/data/pg_hba.conf

Dentro de este archivo ve al final y en las dos líneas que dicen «ident» a la derecha cambia dicha palabra por «md5», debería quedar así:

host    all    all    127.0.0.1/32    md5
host    all    all    ::1/128         md5

Guarda el cambio e inicia PostgreSQL:

systemctl start postgresql

Listo, ahora puedes utilizar PostgreSQL en CentOS.

Conclusión

No se pueden poner dudas de que PostgreSQL es uno de los mejores sistemas de bases de datos del mundo, ya que tiene un montón de características estupendas que lo hacen brillar en determinadas situaciones. Siendo el eterno rival de MySQL, Postgres le supera en algunos aspectos aunque no logra estar a la altura en otros.

Si vamos a usar PostgreSQL es mucho mejor cuanto más volumen de datos necesitamos mover, ya que esa es su especialidad: las bases de datos de gran tamaño, un área en la cual este software se desempeña extremadamente bien.

Se trata además de un sistema que pueden usar tanto usuarios novatos en bases de datos como expertos, ya que gracias a las diversas herramientas administrativas es fácil de manejar, y quienes no gusten tanto de las interfaces gráficas pueden optar por trabajar con Postgres mediante línea de comandos.

PostgreSQL es, en pocas palabras, un gestor de bases de datos poderoso, avanzado y muy completo, que si se utiliza adecuadamente puede darnos muy buenos resultados a la hora de montar bases de datos relacionales e incluso no relacionales si utilizamos JSON. Así que si todavía no lo has probado te recomendamos echarle un vistazo, de seguro que sus características te van a sorprender.

Artículos relacionados