Explicamos cómo descargar e instalar el motor de base de datos gratuito PostgreSQL, os mostramos cómo instalarlo en el sistema operativo Microsoft Windows 7. Administramos PostgreSQL y creamos roles, tablespaces, bases de datos, etc.

PostgreSQL

PostgreSQL es un sistema de gestión de base de datos relacional (SGBDR) orientada a objetos y libre (gratuito) y de código abierto (open source), publicado bajo la licencia BSD. Como muchos otros proyectos open source, el desarrollo de PostgreSQL no es controlado por una sola empresa sino que está dirigido por una comunidad de desarrolladores y organizaciones comerciales las cuales trabajan en su desarrollo. Dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group).

Algunas de las características de PostgreSQL:

  • Alta concurrencia: mediante un sistema denominado MVCC (Acceso concurrente multiversión) PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visión consistente de lo último a lo que se le hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas común en otras bases, eliminando la necesidad del uso de bloqueos explícitos.
  • Amplia variedad de tipos de datos nativos:
    • Números de precisión arbitraria.
    • Texto de largo ilimitado.
    • Figuras geométricas (con una variedad de funciones asociadas).
    • Direcciones IP (IPv4 e IPv6).
    • Bloques de direcciones estilo CIDR.
    • Direcciones MAC.
    • Arrays.
    • Además, los usuarios pueden crear sus propios tipos de datos, los que pueden ser por completo indexables gracias a la infraestructura GiST de PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el proyecto PostGIS.
  • Claves ajenas (Llaves ajenas, Claves Foráneas ó Foreign Keys).
  • Disparadores (triggers): un disparador o trigger se define en una acción específica basada en algo ocurrente dentro de la base de datos. En PostgreSQL esto significa la ejecución de un procedimiento almacenado basado en una determinada acción sobre una tabla específica. Ahora todos los disparadores se definen por seis características:
    • El nombre del disparador o trigger.
    • El momento en que el disparador debe arrancar.
    • El evento del disparador deberá activarse sobre…
    • La tabla donde el disparador se activará.
    • La frecuencia de la ejecución.
    • La función que podría ser llamada.
  • Vistas (Views).
  • Integridad transaccional.
  • Herencia de tablas.
  • Tipos de datos y operaciones geométricas.
  • Soporte para transacciones distribuidas: PostgreSQL permite integrarse en un sistema distribuido formado por varios recursos (p.ej, una base de datos PostgreSQL, otra Oracle, una cola de mensajes IBM MQ JMS y un ERP SAP) gestionado por un servidor de aplicaciones donde el éxito («commit») de la transacción goblal es el resultado del éxito de las transacciones locales.

Cómo descargar e instalar PostgreSQL 9 en Microsoft Windows 7

Abriremos un navegador web y accederemos a la URL: http://www.postgresql.org/download/windows.

En nuestro caso descargaremos la versión aún no estable 9.0.0 RC1 para Windows de 32 bits (Win x86-32):

Cómo descargar e instalar PostgreSQL 9 en Microsoft Windows 7

Una vez descargado el archivo de instalación de PostgreSQL (postgresql-9.0.0-rc1-windows.exe de 45,5 MB) pulsaremos con el botón derecho del ratón sobre él y seleccionaremos «Ejecutar como administrador»:

Cómo descargar e instalar PostgreSQL 9 en Microsoft Windows 7

Si tenemos activado el control de cuentas de usuario nos mostrará una advertencia con el texto «¿Desea permitir que este programa realice cambios en el equipo?», pulsaremos «Sí» para continuar con la instalación de PostgreSQL:

Cómo descargar e instalar PostgreSQL 9 en Microsoft Windows 7

Se iniciará el asistente para instalar PostgreSQL, pulsaremos «Siguiente»:

Cómo descargar e instalar PostgreSQL 9 en Microsoft Windows 7

Indicaremos la carpeta de instalación de PostgreSQL, donde se guardarán los ejecutables, librerías y ficheros de configuración de PostgreSQL:

Cómo descargar e instalar PostgreSQL 9 en Microsoft Windows 7

Indicaremos también la carpeta donde se guardarán los datos por defecto de PostgreSQL:

Cómo descargar e instalar PostgreSQL 9 en Microsoft Windows 7

Introduciremos la contraseña para el superusuario «postgres» que será con el que iniciemos sesión para administrar la base de datos:

Cómo descargar e instalar PostgreSQL 9 en Microsoft Windows 7

Introduciremos el puerto de escucha para la conexión con el servidor PostgreSQL, por defecto el 5432:

Cómo descargar e instalar PostgreSQL 9 en Microsoft Windows 7

Seleccionaremos la configuración regional:

Cómo descargar e instalar PostgreSQL 9 en Microsoft Windows 7

Pulsaremos «Siguiente» para iniciar la instalación definitiva del servidor PostgreSQL en Microsoft Windows 7:

Cómo descargar e instalar PostgreSQL 9 en Microsoft Windows 7

Se iniciará el asistente para instalar el motor de base de datos PostgreSQL, que creará las carpetas oportunas, copiará los ficheros necesarios y creará el servicio Windows para iniciar de forma automática el motor de base de datos:

Cómo descargar e instalar PostgreSQL 9 en Microsoft Windows 7

Una vez finalizada la instalación el asistente nos dará la posibilidad de ejecutar Stack Builder, aplicación que nos permitirá instalar otros componentes y herramientas para PostgreSQL:

Cómo descargar e instalar PostgreSQL 9 en Microsoft Windows 7

Si hemos marcado la opción de Stack Builder, se iniciará, seleccionaremos «PostgreSQL 9.0 on port 5432» y pulsaremos «Next»:

Cómo descargar e instalar PostgreSQL 9 en Microsoft Windows 7

Seleccionaremos las aplicaciones, componentes y herramientas a instalar y pulsaremos «Next» (en nuestro caso cancelaremos Stack Builder pues no instalaremos más componentes):

Cómo descargar e instalar PostgreSQL 9 en Microsoft Windows 7

El asistente para instalar el servidor PostgreSQL habrá creado un servicio que estará iniciado y en tipo de inicio automático llamado «postgresql-9.0»:

Cómo descargar e instalar PostgreSQL 9 en Microsoft Windows 7

Y habrá creado la carpeta en archivos de programa «PosgreSQL» con las subcarpetas:

Y la carpeta de datos:

Cómo descargar e instalar PostgreSQL 9 en Microsoft Windows 7

Con esto habremos convertido nuestro equipo Microsoft Windows 7 en un servidor de base de datos PostgreSQL.

Si queremos que los equipos de nuestra red tengan acceso al servidor PostgreSQL y tenemos algún cortafuegos (firewall) deberemos abrir el puerto 5432. Y si queremos que se tenga acceso desde Internet al servidor PostgreSQL deberemos redireccionar (mapear) el puerto 5432 en el router o cortafuegos de nuestra empresa.

Administración de PostgreSQL, creación de usuarios (roles), catálogos

Crear roles de login (usuarios) en PostgreSQL

Para el acceso a la administración del motor de base de datos PostgreSQL accederemos al botón «Iniciar» – «PostgreSQL 9.0» – «pgAdmin III»:

Administración de PostgreSQL, creación de usuarios (roles), catálogos

Desplegaremos «Server Groups», dentro desplegaremos «Servidores» y dentro de éste pulsaremos con el botón derecho del ratón sobre «PostgreSQL 9.0 (localhost:5432), en el menú emergente seleccionaremos «Conectar»:

Administración de PostgreSQL, creación de usuarios (roles), catálogos

Introduciremos la contraseña para el superusuario postgres (la contraseña introducida en la instalación):

Administración de PostgreSQL, creación de usuarios (roles), catálogos

Si todo es correcto nos conectaremos al servidor PostgreSQL, desde pgAdmin podremos configurar y administrar el servidor de PostgreSQL:

Administración de PostgreSQL, creación de usuarios (roles), catálogos

Para crear un rol de login pulsaremos con el botón derecho del ratón sobre «Roles de Login», seleccionaremos «Nueva Rol de Login»:

Administración de PostgreSQL, creación de usuarios (roles), catálogos

En la pestaña «Propiedades» introduciremos los siguientes datos:

  • Nombre del Rol: nombre del usuario, en nuestro caso «ajpdsoft».
  • Contraseña: contraseña para este usuario (rol).
  • La cuenta caduca: si queremos que la cuenta de usuario caduque en una fecha la estableceremos en este campo.
Administración de PostgreSQL, creación de usuarios (roles), catálogos

En la pestaña «Privilegios de Rol» podremos indicar si este usuario será superusuario, si puede crear objetos de la base de datos y si puede crear roles:

Administración de PostgreSQL, creación de usuarios (roles), catálogos

Pulsaremos «OK» en la ventana anterior para crear el rol de login.

El script SQL para crear un usuario (rol) en PostgreSQL, script que podremos ver en la pestaña «SQL», antes de pulsar en «OK» en la ventana anterior:

CREATE ROLE ajpdsoft
LOGIN ENCRYPTED PASSWORD ‘md55f8e1f359c12dafag3h3hfjbxxxb857’
VALID UNTIL ‘infinity’;

Crear tablespace para guardar los datos de una base de datos en PostgreSQL

Antes de crear una base de datos, podemos crear el tablespace donde guardaremos los datos de la misma, si bien se pueden utilizar los tablespaces por defecto de PostgreSQL (pg_default y pg_global) es recomendable crear tablespaces separados. Para crear un tablespace accederemos a la administración pgAdmin, sobre «Tablespaces» pulsaremos con el botón derecho y seleccionaremos «Nuevo Tablespace»:

Crear tablespace para guardar los datos de una base de datos en PostgreSQL

En la pestaña «Propiedades» introduciremos los siguientes datos:

  • Nombre: nombre que identificará el tablespace, en nuestro caso «tb_ajpdsoft».
  • Locación: ubicación de los datos del tablespace, en nuestro caso:

C:\datos_postgresql\tb_ajpdsoft

  • Propietario: seleccionaremos el usuario creado anteriormente «ajpdsoft».

Pulsaremos «OK» para crear el tablespace:

Crear tablespace para guardar los datos de una base de datos en PostgreSQL

Nota: la carpeta de destino de existir, de lo contrario mostrar un error como este:

pgAdmin III
Ha ocurrido un error:
ERROR: directory «C:/datos_postgresql/tb_ajpdsoft» does not exist

El script SQL que creará el tablespace en PostgreSQL (si lo hiciésemos sin el modo gráfico de pgAdmin

CREATE TABLESPACE tb_ajpdsoft
OWNER ajpdsoft
LOCATION E’C:datos_postgresql b_ajpdsoft’;

Inicialmente, PostgreSQL creará una subcarpeta dentro de la carpeta indicada para el tablespace con un nombre como este: PG_9.0_201008051.

Crear base de datos para guardar tablas y vistas en PostgreSQL

Para crear una nueva base de datos en PostgreSQL abriremos pgAdmin, pulsaremos con el botón derecho del ratón sobre «Bases de datos», seleccionaremos «Nueva Base de Datos»:

Crear base de datos para guardar tablas y vistas en PostgreSQL

En la pestaña «Propiedades» introduciremos los siguientes datos:

  • Nombre: nombre de la base de datos, en nuestro caso «bdajpdsoft».
  • Propietario: seleccionaremos el usuario creado anteriormente «ajpdsoft».
  • Codificado: seleccionaremos UTF8.
  • Tablespace: seleccionaremos el tablespace creado anteriormente «tb_ajpdsoft».
  • Colación: seleccionaremos «Spanish_Spain.1252».
  • Tipo carácter: seleccionaremos «Spanish_Spain.1252».

Pulsaremos «OK» para crear la base de datos:

Crear base de datos para guardar tablas y vistas en PostgreSQL

El script SQL para crear una base de datos postgreSQL desde la línea de comandos:

CREATE DATABASE bdajpdsoft
WITH ENCODING=’UTF8′
OWNER=ajpdsoft
LC_COLLATE=’Spanish_Spain.1252′
LC_CENGINE=’Spanish_Spain.1252′
CONNECTION LIMIT=-1
TABLESPACE=tb_ajpdsoft;

Crear un esquema y una tabla de ejemplo en PostgreSQL

Para crear un esquema en la base de datos creada anteriomente, la desplegaremos en pgAdmin, en «Esquemas» de esta base de datos pulsaremos con el botón derecho y seleccionaremos «Nuevo Esquema»:

Crear un esquema y una tabla de ejemplo en PostgreSQL

En la pestaña «Propiedades» indicaremos el nombre para el esquema, por ejemplo «ajpdsoft» y el usuario (login de inicio) propietario, en nuestro caso «ajpdsoft». Pulsaremos «OK» para crear el esquema:

Crear un esquema y una tabla de ejemplo en PostgreSQL

El script SQL para crear el esquema en PostgreSQL:

CREATE SCHEMA ajpdsoft
AUTHORIZATION ajpdsoft;

Para crear una tabla dentro del esquema «ajpdsoft» (que a su vez está dentro de la base de datos «bdajpdsoft») pulsaremos con el botón derecho del ratón sobre «Tablas» (dentro del esquema) y seleccionaremos «Nueva Tabla»:

Crear un esquema y una tabla de ejemplo en PostgreSQL

Introduciremos el nombre de la tabla, por ejemplo «facturas», el propietario «ajpdsoft», el Tablespace «tb_ajpdsoft»:

Crear un esquema y una tabla de ejemplo en PostgreSQL

En la pestaña «Columnas» pulsaremos «Añadir»:

Crear un esquema y una tabla de ejemplo en PostgreSQL

Introduciremos el nombre de la columna, por ejemplo «codigo», el tipo de datos (para el autoincremento en PostgreSQL seleccionaremos «serial»), puesto que esta columna será clave primaria marcaremos «No Nulo»:

Crear un esquema y una tabla de ejemplo en PostgreSQL

De la misma forma, añadiremos el resto de las columnas para la tabla «facturas»: fecha (de tipo «date»), codigocliente (de tipo «integer»), numero (de tipo «character(40)»), importe (de tipo «money») y observacion (de tipo «text»):

Crear un esquema y una tabla de ejemplo en PostgreSQL

En la pestaña «Restricciones», para añadir una clave primaria para la tabla, seleccionaremos «Clave Primaria» y pulsaremos «Añadir»:

Crear un esquema y una tabla de ejemplo en PostgreSQL

En «Nombre», introduciremos el nombre para la clave primaria, por ejemplo: cp_codigo:

Crear un esquema y una tabla de ejemplo en PostgreSQL

En la pestaña «Columnas» seleccionaremos «codigo» y pulsaremos «Añadir»:

Crear un esquema y una tabla de ejemplo en PostgreSQL

Pulsaremos «OK» para crear la clave primaria para el campo «codigo»:

Crear un esquema y una tabla de ejemplo en PostgreSQL

Y ya tendremos creada la tabla «facturas» de PostgreSQL:

Crear un esquema y una tabla de ejemplo en PostgreSQL

El script SQL para crear una tabla en PostgreSQL: