Instalación de un servidor PostgreSQL bajo Linux
PostgreSQL es, indicutiblemente, la más popular de las bases
de datos SQL de código abierto disponibles para Linux. Aunque en este momento
la presencia de MySQL como plataforma de desarrollo Web es abrumadora, PostgreSQL
resulta la alternativa más obvia para quienes deseen librarse completamente
de las licencias comerciales del software propietario, y optar por una solución
100% libre y gratuita.
Destinatarios
Colegios y Universidades: Administración de alumnos, carreras,
cátedras, calificaciones, horarios, etc.
Pymes: Administración de recursos, sueldos y jornales, empleados, gestión contable, etc.
Estudiantes: Aprendizaje.
Comercio: Gestión comercial, sueldos y jornales, control de stock, facturación, ventas,
etc.
Estado: Administración de recursos, contabilidad, sueldos y jornales, administración de
personal, etc.
Bibliotecas: Administración de recursos, catálogos, indices, prestamos y devoluciones,
etc.
Objetivos
. Conocer las ventajas y usos de SQL.
. Aprender a instalar y configurar un servidor de SQL.
. Creación, modificación, y borrado de tablas.
. Fundamentos del lenguaje
Conceptos básicos
SQL es un método basado en un potente lenguaje, para organizar,
administrar y consultar datos almacenados en una computadora. SQL es una sigla
que deviene de su nombre en inglés "Structured Query Language" (Lenguaje
de Consulta Estructurado). Más específicamente SQL esta definido en torno al
modelo de bases de datos relacionales, basado en el álgebra relacional, esto
le da a SQL las ventajas que lo imponen como el sistema de mayor aceptación.
Algunas de las ventajas son:
. Marco teórico sólido, fundamentado en el álgebra relacional
. Simplicidad de conceptos (modelo de base de datos: tablas=lineas x columnas)
. Definición de vínculos en la consulta, esto le da a SQL una gran flexibilidad
. Fácil y rápido aprendizaje
. Arquitectura cliente-servidor
. Integración con cualquier lenguaje de programación
. Estandarización
SQL: Orígenes
El origen de SQL se remonta a el año 1974, cuando el gigante
azul, IBM, desarrollo el lenguaje SEQUEL "Structured English QUEry Language"
(Lenguaje de Consulta Estructurado en Ingles). Luego Oracle lanzó su primer
producto comercial, una implementación de SQL realizada en el año 1979. Dos
años más tarde IBM sacó al mercado el producto SQL/DS y en 1983 el popular DB2.
PostreSQL: Historia
PostgreSQL es una implementación de SQL, consta de un servidor
de bases de datos, un cliente y varias herramientas adicionales. Los autores
del software son Andrew Yu y Jolly Chen, aunque existen un serie con colaboradores
del proyecto trabajando en portarlo a otras plataformas, pruebas, correcciones,
y ampliaciones de las capacidades del producto. El origen del proyecto se debe
a el profesor Michael Stonebraker de la Universidad de California, Berkeley.
El proyecto comenzó en 1986 y la primera versión operativa, que era una "demo"
se liberó en 1987. En el año 1988 fue presentado en la conferencia ACM-SIGMOD
y finalmente en Junio de 1989 salió a la luz la versión 1 de PostgreSQL. Luego
le sucedieron las nuevas versiones, en 1990 la versión 2, en 1991 la 3, cada
vez con mayores prestaciones y mejor rendimiento. Recién en el año 1994, se
incorpora el lenguaje SQL al manejador de bases de datos, así nace lo que se
llamó Postgres95. Durante el año 1996, se decidió quitar el 95 del nombre como
una forma de liberarse de la cronología, así nace PostgreSQL, y se reinicia
la secuencia de versiones a la 6.0. Finalmente en este artículo trataremos la
versión 6.5, que es la última disponible al momento de escribirlo.
Requirimientos
Los requerimientos mínimos para instalar PostgreSQL son:
. 8 megabytes de RAM
. 30 megabytes de espacio en disco para el cogido fuente
. 5 megabytes de espacio en disco para la instalación de los ejecutables
. 1 megabyte extra para las bases de datos básicas
. 3 megabytes de espacio en disco rígido para el tarball con el cogido fuente
Para chequear el espacio en disco puede usar el comando: df -k
Preparación
Lo primero que debemos hacer es crear la cuenta del superusuario
de PostgreSQL, normalmente se usa por defecto como nombre de usuario "postgres".
Este usuario debe ser un usuario común del sistema, sin privilegios de root,
esto reduce considerablemente los riesgos de inseguridad. En la secuencia de
abajo se detalla el procedimiento para esto:
# adduser postgres
# passwd postgres
Ahora que el usuario existe, logueese con esa cuenta. Toda
la instalación del software y configuración se hará desde la cuenta postgres.
Pero antes de continuar estableceremos algunas variables
de entorno necesarias para el uso del servidor. En el directorio "home"
del usuario "postgres" editamos el archivo ".bashrc", si
no existe lo creamos, y le agregamos las siguientes lineas:
PATH=$PATH:/usr/local/pgsql/bin
MANPATH=$MANPATH:/usr/local/pgsql/man
PGLIB=/usr/local/pgsql/lib
PGDATA=/usr/local/pgsql/data
LC_COLLATE=C
LC_CTYPE=C
LC_COLLATE=C
export PATH MANPATH PGLIB PGDATA LC_COLLATE LC_CTYPE LC_COLLATE
Lo primero que debemos hacer es conseguir los fuentes del
software, los podemos bajar gratuitamente de http:/www.postgresql.org/
Una vez que tenemos el fuente, debemos descomprimirlo en
un directorio desde donde lo compilaremos, por defecto en Red Hat se acostumbra
usar el directorio /usr/src como base aunque cualquier directorio que usemos
nos va a servir, aunque no está de más ser prolijos en su ubicación. El proceso
de preparación de directorios y descompresión se detalla a continuación:
Primero nos convertimos en root con:
# su
Ingresamos al directorio de los fuentes
# cd /usr/src
Creamos el directorio donde descomprimiremos el cogido fuente del servidor
# mkdir pgsql
Hacemos dueño del directorio al usuario postgres
# chown postgres:postgres pgsql
Ingresamos al directorio de programas de usuarios
# cd /usr/local
Creamos el directorio donde se instalara el software una vez compilado
# mkdir pgsql
Hacemos dueño del directorio al usuario postgres
# chown postgres:postgres pgsql
Dejamos la cuenta de root
# exit
Ya tenemos los directorios donde ubicaremos el cógido fuente
a compilar y los binarios y demas archivos necesarios para el uso del serividor
una vez que este compilado e instalado.
Ubicarnos en el directorio base (/usr/src/pgsql)
# cd /usr/src/pgsql
Finalmente debemos descomprimir el archivos con:
# tar xvfz postgresql-6.5.tar.gz
Con esto obtenemos un directorio llamado: postgresql-6.5
que es la base del árbol de directorios conteniendo el código fuente, la documentación
y demás archivos necesarios.
Configuración
Previo a la compilación en si, se debe configurar el código
fuente para nuestra plataforma en particular, en este proceso entra como factor
de gran importancia la designación del directorio donde se instalará PostgreSQL,
esto se hace mediante la variable "prefix".=, además incluiremos algunos
parámetros específicos para para nuestras necesidades. Estos son:
--with-perl: Soporte perl
--with-odbc: Soporte ODBC
--enable-locale: Soporte de lenguajes
# cd /usr/src/pgsql/postgresql-6.5/src
# ./configure --prefix=/usr/local/pgsql --with-perl --with-odbc
--enable-locale
Donde prefix es el directorio base donde se instalara el
servidor una vez compilado, si obviamos este parámetro por defecto toma el directorio
/usr/local/psql
Una vez ejecutado este comando obtenemos una salida como
la que se muestra en la Figura 2
Compilación
El proceso de compilación es idéntico a cualquier otro programa.
En esta caso la documentación recomienda una secuencia algo distinta pero con
el mismo resultado.
# gmake all >& make.log &
# tail -f make.log
Si todo sali como es de esperar, tail nos muestra la ultima
linea del archivo de log, la que dice:
All of PostgreSQL is successfully made.
Ready to install.
Ahora debemos pulsar Control C para retornar al shell.
Instalación de binarios
Procedemos ahora a instalar los binarios y archivos adicionales.
Si ya nos encontramos en el directorio "/usr/src/pgsql/postgresql-6.5/src"
pasamos directamente a la segunda línea de la secuencia.
# cd /usr/src/pgsql/src
# gmake install >& make.install.log &
# tail -f make.install.log
Luego de unos segundos en el monitor veremos la siguiente
línea, esto nos indica que ya termino la instalación del servidor.
Thank you for choosing PostgreSQL, the most advanced open
source database engine.
Instalación de la Documentación
Solo nos resta instalar la documentación, para ello debemos
posisionarnos en el directorio "/usr/local/pgsql/postgresql-6.5/doc"
y ejecutar:
# make install
Librerías
Debemos indicar ahora a nuestro sistema la ubicación de las
librerías necesarias para PostgreSQL. Esto debemos hacerlo desde la cuenta "root",
primero editaremos el archivo "ld.so.conf" del directorio "/etc"
en el agregamos la siguiente linea "/usr/local/pgsql/lib" y luego
de grabar el archivo y salir ejecutamos el programa "ldconfig" que
actualiza los enlaces de las librerías dinámicas.
Instalación de módulos Perl
Como la instalación se realizó como un usuario no privilegiado
no pudimos instalar el módulo de Perl debido a que el acceso los directorios
de Perl no tienen permiso de escritura habilitado para usuarios comunes, de
manera que nuevamente como "root" ponemos los siguientes comandos:
# cd /usr/src/pgsql/src/interfaces/perl5
# make install
Termina con una línea como ésta:
Appending installation info to /usr/lib/perl5/i386-linux/5.004/perllocal.pod
Creación de las bases de datos
El siguiente paso es crear las bases de datos básicas para
el funcionamiento del servidor de SQL. Es te paso en sencillo, solo hace falta
ejecutar un script, pero debemos hacerlo desde la cuenta del usuario de PostgreSQL
(postgres), esto es importante para mantener la seguridad del sistema.
# initdb
Prueba
Bien, ahora vamos a ver si todo salio como es de esperar,
primero vamos a lanzar el servidor de SQL de PostgreSQL, para ello invocamos
el script postmaster, con el parametro -i y & para que nos devuelva el shell.
# postgres -i &
Cramos la base de datos de prueba con la siguiente
linea de comando:
# createdb
Finalmente nos conectamos al servidor con el cliente:
# psql
Esto nos muestra unos mensajes como se puede ver en la Figura
3. Estamos en la linea de comandos del server, desde aca podemos ingresaro los
mandatos para gestionar, consultar y administrar nuestras bases de datos, primeto
veremos la ayuda en linea del shell del cliente, para ello ingresamos /? o /help
y obtenemos un listado de los comandos disponibles, estos son solo los del cliente,
no estan listados los comandos del lenguaje en si.
Consultemos la fecha y hora con: postgres=> SELECT datetime
now;
?column?
----------------------------
Thu Jul 29 13:05:56 1999 GMT
(1 row)
postgres=>
Para salir del programa usamos /q
Ahora, comprobado que todo funciona como debe ser, podemos
destruir la base de datos de prueba con:
# destroydb
Arranque de PostgreSQL
Para lanzar el servidor debemos hacerlo con la siguiente línea:
# nohup postmaster > regress.log 2>&1
Si lo que deseamos es que el server se lance cada vez que
arrancamos el sistema debemos copiar de "/usr/src/pgsql/postgresql-6.5/contrib/linux"
a el directorio "/etc/rc.d/init.d" el archivo "postgres.init.sh"
como "postgres", luego entramos al directorio "rcX.d" (donde
X corresponde al runlevel que estamos usando) y creamos el link "S98postgres"
para que automáticamente se cargue el demonio del server en el arranque o cambio
de runlevel, si lo que queremos es deshabilitar esta carga lo que debemos hacer
es renombrar el link cambiando la "S" inicial por una "K".
Fundamentos del lenguaje
Este potente lenguaje cumple las funciones de DDL (data definition
statements), esto sifnifica que se definen, mantienen y borran bases de datos,
se regulan permisos, etc. (Por ej. CREATE, DROP, GRANT, etc.) y DML (data manipulation
statements). Manipulan datos de la base de datos, consultando, insertando, actualizando
y borrando filas.(Por ej. SELECT, UPDATE, DELETE, INSERT ,etc) TCS (Transaction
control statements). manipulan los cambios hechos por las sentencias DML deshaciéndolos,validándolos.
(Por ej. ROLLBACK, COMMIT, SAVEPOINT etc.)
|