
PostGreSQL es un sistema de gestión de bases de datos objeto-relacional (ORDBMS) basado en el proyecto POSTGRES, de la universidad de Berkeley. PostGreSQL junto con MySQL son 2 de los sistemas de gestión de bases de datos de código abierto, siendo este último, el más utilizado entre las páginas web que utilizan bases de datos.
Ya he tenido la oportunidad de trabajar con MySQL y la verdad ha sido muy flexible y fácil de utilizar. Una de las características de MySQL es la rapidez con la que trabaja a la hora de las consultas, sin embargo, me dio por conocer ahora PostgreSQL, ya qué he leído varios comentarios muy buenos de el. Entre algunas características que tiene PostGreSQL son las siguientes:
- Implementación del estándar SQL92/SQL99.
- Soporta distintos tipos de datos: además del soporte para los tipos base, también soporta datos de tipo fecha, monetarios, elementos gráficos, datos sobre redes (MAC, IP …), cadenas de bits, etc. También permite la creación de tipos propios.
- Incorpora funciones de diversa índole: manejo de fechas, geométricas, orientadas a operaciones con redes, etc.
- Permite la gestión de diferentes usuarios, como también los permisos asignados a cada uno de ellos.
- Al ser un sistema más robusto, trabaja muy bien a grandes cantidades de consultas simultaneamente
Algunas desventajas:
- Como ya lo comenté anteriormente, es un sistema robusto, por lo qué consume gran cantidad de memoria.
Apesar de que sea un sistema más lento que MySQL , es un sistema mucho más viable para uso de grandes cantidades de base de datos a las qué se puede acceder simultaneamente por múltiples usuarios, cosa que MySQL no lo logra.
Instalación y configuración en Debian
Para la instalación es fácil en Debian, ya que se encuentra entre los repositorios (Repositorios Debian), para ello instalamos la última versión de PostGreSQL:
# aptitude install postgresql-8.3 postgresql-contrib-8.3 postgresql-client-8.3
Una vez instalado, vamos a crear un usuario con los permisos para crear bases de datos y dar de alta más usuarios.
$ su
Contraseña:
#su postgres
$createuser -a -d -P usuario
exit
exit
Explicación: -a Permite dar de alta usuarios, -d Permite crear bases de datos, -P le asignamos contraseña al usuario.
Podemos eliminar los usuarios creados entrando como root a PostGreSQL:
$ su
Contraseña:
#su postgres
$ dropuser usuario
exit
exit
Una vez creado el usuario con todos los privilegios, podemos empezar a crear bases de datos, listar las bd existentes, dar de alta más usuarios, etc…
Vamos a crear una bd con el sig. comando:
$ createdb nueva_bd
Y listamos las bd existentes verificando que se haya creado correctamente:
$ psql -l
Podemos eliminar las bases de datos creadas con:
$ dropdb nueva_bd
Una herramienta muy buena para trabajar con PostGreSQL , es PhpPgAdmin un sistema muy parecido a phpmyadmin de MySQL. La instalación es sencilla:
# aptitude install phppgadmin php5-pgsql
En mi caso, tuve que modificar algunas cosas de apache para que funcione, explorando por las carpetas de apache me encuentro con lo siguiente:
# cd /etc/apache2/conf.d/
charset phpmyadmin.conf
Podemos observar que solamente viene el archivo de configuración de phpmyadmin , el cual si se puede correr desde localhost/phpmyadmin, cosa que con PhpPgAdmin no se pudo. Luego navegando por los archivos de phppgadmin me encontre con lo siguiente:
# cd /etc/phppgadmin/
apache.conf config.inc.php
Ese archivo llamado apache.conf es el que contiene todo el código necesario para que corra con apache, para ello agregé ese archivo apache.conf a la carpeta /etc/apache2/conf.d/ renombrandolo por phppgadmin.conf.
# cp /etc/phppgadmin/apache.conf /etc/apache2/conf.d/phppgadmin.conf
Una vez con esto reiniciamos apache:
# /etc/init.d/apache2 force-reload
Y corremos phppgadmin desde el navegador localhost/phppgadmin.
Una de las primeras pruebas qué realicé fué probar Drupal con PostGreSQL y para ello creamos una base de datos vacia:
$ createdb drupal
Y modificamos el archivo drupal/sites/default/settings.php en el apartado que viene comentado:
$db_url = 'pgsql://usuario:password@localhost/drupal';
Y comentamos el apartado de MySQL:
//$db_url = 'mysql://username:password@localhost/databasename';
Y ahora bastará con correr desde el navegador el archivo: http://localhost/drupal/install.php
Gracias a guivaloz por su documentación en su página acerca de PostGreSQL, en la página de PostGreSQL existe una gran documentación sobre este gran sistema. Los invito a qué prueben estas alternativas libres, ya sea PostGreSQL ó MySQL, ya que son unas alternativas de gran cálidad y estan muy por encima de sistemas propietarios.