GNU/Linux Debian

PostgreSQL (7.2.1)


Instalación Debian
Verificar la instalación
Usuario de Postgres
Crear una base de datos de prueba
Habilitar uso de PgAccess
Destruir una base de datos
Bibliografía


Postgres es un manejador de bases de datos (DBMS) de alto porte,
desarrollado originalmente en el Departamento de Ciencias de Computación de la Universidad de Berkeley. Fue pionero de muchos de los conceptos referentes a objetos que ahora están disponibles en algunas bases de datos comerciales. Proporciona soporte a lenguaje SQL92/SQL93, integridad en transacciones y capacidad para extensión de tipos. PostgreSQL es un descendiente "open-source" de este código original de Berkeley.

Estas notas indican como instalar Postres en Debian, así como habilitar el uso de PgAccess, una herramienta gráfica para acceder a las bases de datos creadas con Postgres. En Debian 3.0 la versión de PostgreSQL es 7.2.1, y la de PgAccess 0.98.7.

Instalación Debian.

Acceder a supervisor con su.

Con dselect, seleccionar los siguientes paquetes:

Conviene también instalar la aplicación cliente PgAccess, seleccionando los siguientes paquetes:

Durante la instalación es preciso fijar los siguientes criterios:

Otros paquetes de interés: En el sistema de ventanas WindowMaker la instalación deja disponibles en el menú opciones de invocación:

Verificar la instalación.

Para verificar que Postgres está corriendo:
  nautilus:~# ps auxw | grep postgres
produce una salida similar a:
  postgres 1263  0.0  0.7 8840 1852 pts/1 S 11:56 0:00 /usr/lib/postgresql/bin/postmaster
  postgres 1265  0.0  0.7 9832 1828 pts/1 S 11:56 0:00 postgres: stats buffer process
  postgres 1267  0.0  0.7 8872 1864 pts/1 S 11:56 0:00 postgres: stats collector process

Esto indica que el servidor está corriendo.

Postgres puede arrancarse de la manera usual en Debian:
  /etc/init.d/postgres start
arranca Postgres.
  /etc/init.d/postgres stop
detiene Postgres.

Para verificar el funcionamiento es preciso operar como el usuario postgres, nombre del administrador universal de Postgres. Operando como supervisor, acceder al usuario postgres mediante su:, invocar psql, el lenguaje de interacción con Postgres, verificar mensajes de conexión, salir de psql. Sigue una transcripción de la sesión:

  nautilus:~# su - postgres

asume identidad del usuario postgres desde root.
  postgres@nautilus:~$ id

  uid=31(postgres) gid=32(postgres) groups=32(postgres)
verifica identidad de usuario postgres.

  postgres@nautilus:~$ psql -l   
          List of databases
     Name    |  Owner   | Encoding
  -----------+----------+----------
   template0 | postgres | LATIN1
   template1 | postgres | LATIN1
  (2 rows)
muestra las bases de datos existentes.

  postgres@nautilus:~$ psql template1
invoca psql, lenguaje de programación SQL para acceder a Postgres, mostrando algo similar a
  Welcome to psql, the PostgreSQL interactive terminal.
    Type: \copyright for distribution terms
          \h for help with SQL commands
          \? for help on internal slash commands
          \g or terminate with semicolon to execute query
          \q to quit
  template1=#
quedando a la espera de comandos. Observar las opciones de ayuda, en particular \q para salir de psql. Dice estar conectado a la base de datos template1, lo cual queda consignado en el indicador de comando. Los comandos inexistentes no dan salida alguna. La muestra de opciones se pagina con los comandos de Unix more o less; en ambos casos se avanza con la barra de espacio y se sale con 'q' (ver página man en Unix, man less).

  template1=> \q
sale de psql.
  postgres@nautilus:~$ exit
  logout
  nautilus:~#
abandona la identidad del usuario postgres, vuelve a ser root.

Usuario de PostgreSQL.

Los usuarios de PostgreSQL deben ser "creados para PostgreSQL", es decir, creados en los registros internos de PostgreSQL antes de poder operar con la base de datos. El usuario de Unix debe ser declarado usuario de PostgreSQL. Esta operación debe hacerse operando como el usuario postgres, accediendo a este usuario desde root como se mostró antes.
Es sumamente importante crear un usuario con privilegios de administrador para la base de datos, para evitar tener que operar como root y luego impersonar postgres. Este usuario es plenipotenciario para Postgres.

Como root, asumiento la identidad del usuario postgres, el comando Unix createuser crea un nuevo usuario de PostgreSQL, con el siguiente diálogo:
  nautilus:~# su - postgres
  postgres@nautilus:~$ createuser
  Enter name of user to add: victor
  Shall the new user be allowed to create databases? (y/n) y
  Shall the new user be allowed to create more new users? (y/n) y
  CREATE USER
  postgres@nautilus:~$

crea el usuario victor con privilegios de crear bases de datos y nuevos usuarios. Los usuarios de Postgres son diferentes a los de Unix; en principio conviene mantener una correspondencia, es decir, crear en PostgreSQL un usuario existente en Unix como se hizo aquí. Usuarios propios de PostgreSQL pueden crearse con comandos SQL; deberá no sólo crearse el usuario sino adjudicársele permisos sobre las bases de datos que corresponda (ver en Manual del Administrador el tema Usuarios y Permisos).
  nautilus:/root$ exit
  exit
  nautilus:~#
sale de usuario postgres, queda en root.

Crear una base de datos de prueba.

Operando en la cuenta del usuario habilitado en PostgreSQL, en el shell de Unix,
  victor@nautilus:~$ createdb prueba
  CREATE DATABASE
repite el comando SQL y crea la base de datos "prueba", sin tablas ni ningún otro elemento; estos podrán crearse usando PgAccess o usando el propio lenguaje psql. Los comandos en psql terminan con ";". Si se olvida, no se muestra ningún mensaje ni se ejecuta el comando.

  victor@nautilus:~$ psql prueba
  Welcome to psql, the PostgreSQL interactive terminal.
  Type:  \copyright for distribution terms
         \h for help with SQL commands
         \? for help on internal slash commands
         \g or terminate with semicolon to execute query
         \q to quit
Conecta a la base de datos creada.

  prueba=# \l
          List of databases
     Name    |  Owner   | Encoding
  -----------+----------+----------
   prueba    | victor   | LATIN1
   template0 | postgres | LATIN1
   template1 | postgres | LATIN1
  (3 rows)
Lista las bases de datos existentes.

Puede crearse una base de datos con comandos SQL, sin usar el script del shell:
  victor@nautilus:~$ psql template1
ingresa en psql.
  template1=# CREATE DATABASE prueba2;
  CREATE DATABASE
crea la nueva base de datos.
  template1=# \l
lista bases de datos existentes, mostrando la recientemente creada.
  template1=# DROP DATABASE victor;
  DROP DATABASE
destruye la base de datos indicada.
  template1=# \l
lista bases de datos existentes, verificando la desaparición de la eliminada.

Puede accederse a la base de datos creada usando psql:
  victor@nautilus:~$ psql prueba
conecta a la base de datos "prueba"; si se omite el nombre de la base de datos da error.

Habilitar uso de PgAccess.

PgAccess es una aplicación cliente de ambiente gráfico que permite operar sobre la base de datos Postgres como un 4GL (lenguaje de 4a. generación).

Invocar PgAccess desde el menú o desde la línea de comandos:
  victor@nautilus:~$ pgaccess &
  [1] 1463
  victor@nautilus:~$
El "&" tiene como objeto lanzar PgAccess separado del intérprete de comandos, para poder seguir ingresando comandos en él.

PgAccess, ventana principal

PgAccess, ventana principal .

PgAccess, diálogo para abrir base de datos

PgAccess, diálogo para abrir base de datos .

Se accede a este diálogo desde la ventana principal, tomando la opciones Base de Datos, Abrir. Para conectar en la máquina local, no debe ingresarse nombre de máquina.
El ajuste a idioma español se hace en la ventana principal, con las opciones Base de Datos, Preferencias, Lenguaje preferido: spanish, Salvar. El lenguaje se manifiesta en el próximo inicio de PgAccess.

Destruir una base de datos.

Operando como usuario administrador, ingresar en psql.
  template1=> DROP DATABASE prueba;
  DESTROYDB
  template1=>
destruye la base de datos "prueba". Recordar terminar los comandos con ";". Si se olvida, no se muestra ningún mensaje ni se ejecuta el comando.

Bibliografía.

Documentación incluída en paquetes PostgreSQL.
Documentación contenida en los paquetes de instalación, en los directorios /usr/share/doc/postgresql*.
Documentación HTML, visualizable con navegador, en directorio local de la máquina donde se instaló PostgreSQL:
file:///usr/share/doc/postgresql-doc/html/index.html
Contiene: Tutorial, User's Guide, Administrator's Guide, Reference Manual, Developer's Guide.

Equipo de desarrollo PostgreSQL - PostgreSQL.
Documentación de PostgreSQL en español.
http://lucas.hispalinux.es/Postgresql-es/web/navegable/todopostgresql/postgres.htm
Una guía completa en español. Incluye Guía del Usuario, Guía del Administrador, Guia del programador, Interfaces,Guía del desarrollador, Tutorial y Apéndices.

Al Dev (Alavoor Vasudevan) - The PostgreSQL Database HOWTO.
Database-SQL-RDBMS HOW-TO document for Linux (PostgreSQL Object Relational Database System).
Documentos HowTo de Linux.

Constantin Teodorescu - PgAccess.
Ayuda de PgAccess en el software instalado. El sitio de PgAccess es
http://www.flex.ro/pgaccess



Víctor A. González Barbone - Ingeniero de Sistemas en Computación
E-mail: vagonbar en fing edu uy - Página personal: - http://iie.fing.edu.uy/~vagonbar
Instituto de Ingeniería Eléctrica - Facultad de Ingeniería - Montevideo, Uruguay.