You are on page 1of 28

Ing. Jorge A.

Rodrguez Campos 2014 1 de 28



UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO
FACULTAD DE INGENIERIA
BASES DE DATOS ESPACIALES
PRCTICA 2.
INSTALANDO POSTGRESQL POSTGIS EN LINUX

La prctica se entrega de forma individual.

1.1. OBJETIVO.
El objetivo de esta prctica es realizar las actividades necesarias para instalar un ambiente de desarrollo
con una base de datos PostreSQL con su extensin espacial PostGIS empleando plataforma Linux. Las
instrucciones que se describen a continuacin ilustran los pasos requeridos para instalar PostgreSQL 9 en un
sistema operativo Ubuntu 13.04 (Raring Ringtail) .

Cabe mencionar que para el desarrollo de esta prctica, se pueden aplicar las siguientes variantes:
Instalar PostreSQL directamente en Ubuntu empleando mquina virtual (las instrucciones de esta
prctica aplican de manera similar, se recomienda ampliamente esta variante).
Instalar PostreSQL en otra distribucin de Linux, el alumno deber configurar e instalar la base de
datos empleando los comandos equivalentes.

1.2. ARCHIVOS REQUERIDOS PARA ESTA INSTALACIN:
VirtualBox (en caso de requerir instalar en mquina virtual): VirtualBox-4.2.16-86992-
Win.exe o mayor. Se puede descargar de http://www.virtualbox.org/
Paquete de extensiones de VirtualBox para soporte de USB 2.0, escritorio compartido, etc.)
Oracle_VM_VirtualBox_Extension_Pack-4.2.16-86992.vbox-extpack o superior.
De forma similar, se requiere para mquina virtual, se descarga del mismo sitio
http://www.virtualbox.org/
o Archivo ISO que contiene el sistema operativo. Se puede descargar de
http://releases.ubuntu.com/13.04/ ubuntu-13.04-desktop-i386.iso para 32 bits
o ubuntu-13.04-desktop-amd64.iso para 64 bits
Cdigo fuente de postgres:
o Obtener el archivo postgresql-9.3.0.tar.gz de la ruta
http://www.postgresql.org/ftp/source/v9.3.0/
Cdigo fuente de PostGIS:
o Obtener el archivo postgis-2.1.0.tar.gz de http://postgis.net/source


1.3. CONSIDERACIONES PREVIAS.
Las siguientes secciones aplican para los casos en los que se decida instalar una maquina virtual sobre un
sistema operativo Windows. Para los casos en los que se decida instalar Ubuntu de forma nativa pasar
directamente a la seccin 1.5
Existen varias soluciones de software para emular una computadora (maquina virtual) sin la necesidad de
alterar o eliminar la instalacin de un sistema operativo. Las ms comunes: Oracle VirtualBox, y VMWare.
En esta prctica se emplea Oracle VirtualBox, sin embargo, si se desea se puede instalar cualquier otra
solucin como VMWare.
Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 2 de 28

1. Ejecutar el archivo exe, seguir las instrucciones en pantalla.



2. Instalar todos los componentes del software:



3. Continuar con el proceso de instalacin. Aparecer un aviso de desconexin temporal de internet,
presionar Yes, posteriormente, el instalador solicitar confirmacin para iniciar el proceso de
instalacin, presionar Install.




1.4. CREACIN DE LA MQUINA VIRTUAL.
Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 3 de 28

4. Una vez terminado el proceso de instalacin, iniciar VirtualBox, aparecer una pantalla como la
siguiente. El primer paso a realizar es la creacin de una maquina virtual. Para ello hacer clic en el
botn Nueva.



5. Indicar el sistema operativo y el nombre de la maquina virtual, el nombre puede ser diferente al
mostrado en la figura. Si se va a instalar Ubuntu a 64 bits, seleccionar como valor para el campo
versin: ubuntu 64.



6. Asignacin de la memoria RAM, misma que ser la reportada por el sistema operativo Linux. Como
mnimo especificar 768MB. La cantidad a seleccionar depender de la memoria fsica de la pc, no
asignar toda la memoria fsica disponible ya que la maquina anfitriona puede tener problemas de
desempeo. Se recomienda 1GB.



7. Creacin de un nuevo disco virtual. Fsicamente, el disco virtual es un archivo con extensin .vdi el
cual contiene el sistema operativo y todos los archivos de la mquina virtual. Especificar las opciones
como se indican en la siguiente figura.

Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 4 de 28


8. Seleccin del tipo de archivo para crear el disco virtual. Para propsitos del curso, no es necesario
cambiar el tipo de archivo, especificar el valor VDI, (VirtualBox Disk Image), presionar Next. En caso
de que se requiera emplear este mismo archivo empleando otro software de virtualizacin,
seleccionar alguna de las otras 2 opciones.





9. Detalles de almacenamiento del disco virtual. En esta pantalla se selecciona la forma de crecimiento
del disco virtual: dinmico o fijo. Cualquiera de las opciones pueden funcionar para los propsitos del
curso. Seleccionar Tamao fijo si no existen inconvenientes de espacio en la maquina anfitriona, ya
que desde un inicio, el archivo ocupar el espacio especificado en la siguiente pantalla el cual ser de
30 GB. La ventaja de esta opcin es que su uso ser un poco ms rpido que el de crecimiento
dinmico. Si existen inconvenientes de espacio, seleccionar Reservado dinmicamente.



10. Localizacin y tamao del disco virtual. Para el tamao indicar un valor de al menos 30 GB.
Seleccione la ubicacin de la carpeta en la maquina anfitriona en donde se guardar el archivo .vdi,
puede ser cualquier carpeta dentro de la maquina anfitriona.

Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 5 de 28


Presionar Next, revisar el resumen, y finalmente, presionar Crear. Aparecer en la ventana principal
la maquina virtual creada.



1.4.1. Configuracin de la mquina virtual.

11. Hacer clic en el botn Iniciar para comenzar con la configuracin de la maquina virtual. Aparecer
un mensaje indicado instrucciones para el uso de ratn y del teclado tanto en la mquina anfitriona
como en la husped. Para cambiar el control entre una y otra se emplea la tecla ctrl derecha. Leer
las instrucciones y presionar continuar.
12. Seleccin del medio de instalacin. En este punto se deber indicar el medio de instalacin que
contiene el sistema operativo a instalar. Para completar este paso, se requiere del archivo iso que
contiene el sistema operativo (ver lista de software requerido al inicio de la prctica).
13. Seleccionar la ubicacin del mismo presionando en el icono de la carpeta que se muestra en la
siguiente imagen.

Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 6 de 28


14. Resumen. Presionar Next. Aparecer un mensaje de resumen, leer las instrucciones y presionar
Iniciar.



Al presionar Iniciar comenzar la instalacin del sistema operativo en la maquina virtual. Aparecern varios
mensajes de confirmacin, leerlos con atencin y continuar con el proceso de instalacin. Las instrucciones
que se describen a continuacin aplican tanto para instalaciones nativas como para instalaciones empleando
la maquina virtual.

Hasta este punto concluye la instalacin de la maquina virtual, los siguientes pasos corresponden a la
instalacin de Ubuntu independientemente si se emplea maquina virtual o instalacin nativa.

1.5. INSTALACIN DEL SISTEMA OPERATIVO UBUNTU

1. Inicio del equipo con CD o USB.
Para realizar la instalacin de forma nativa, se deber iniciar (bootear) el equipo empleando alguna de las
siguientes estrategias:
Instalacin con CD: Grabar la imagen o archivo ISO que contiene el sistema operativo
Instalar Ubuntu a travs de una memoria USB booteable generndola a partir de la imagen ISO.
Para realizar el copiado a la memoria, seguir las instrucciones de
http://www.ubuntu.com/desktop/get-ubuntu/download
No olvidar revisar la configuracin del BIOS para que el sistema intente iniciar a partir de la unidad
de CD o de una unidad USB antes de verificar en el disco duro.

2. Al iniciar, aparecern algunas pantallas para realizar la carga de los archivos necesarios para instalar el
sistema operativo, seguir las instrucciones en pantalla.

3. Seleccin del idioma. Seleccione el idioma de su preferencia y presione Instalar Ubuntu

Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 7 de 28


4. Verificar las condiciones de la siguiente pantalla, no marcar las 2 opciones de descarga e instalacin,
presionar Continuar


5. Asignar espacio en disco.

Este es uno de los pasos ms importantes del proceso de instalacin. Aqu se indica la organizacin
fsica del disco duro. En caso de usar una Maquina virtual, observar que se reporta el tamao del disco
configurado en pasos anteriores. En caso de ser una instalacin nativa en la que por ejemplo, ya se cuente
con un sistema operativo instalado, por ejemplo Windows, el programa detectar las particiones y los
sistemas operativos instalados. Para cualquier caso seleccionar la opcin Ms opciones, presionar
Continuar



1.5.1. Asignacin de espacio empleando una maquina virtual.

6. En este caso se muestra una pantalla como la siguiente indicando que no existen particiones
existentes en el disco:
Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 8 de 28


1.5.2. Asignacin de espacio, sin emplear maquina virtual.

En caso de tener un sistema operativo instalado, por ejemplo, Windows, se muestra la particin en la
que est instalado, tpicamente en la nica particin existente. Se deber seleccionar la opcin Cambiar para
poder reducir el espacio de la particin y dejar el espacio que se asignar para Linux. La cantidad a modificar
depende de la capacidad del disco duro. Como mnimo usar los valores recomendados en las secciones
anteriores.
En caso de que se desee utilizar Linux no solo para propsitos de la materia, puede realizar una
distribucin de espacio distinta dependiendo de sus necesidades, adems a que opcionalmente puede crear
nuevas particiones para uso compartido entre los sistemas operativos (deben estar con formato NTFS para que
ambos sistemas operativos las puedan leer). Tomar en cuenta que la distribucin de espacio seleccionada
afectar el tamao actual de la particin de los sistemas operativos instalados. Hasta este punto su disco duro
no ha sufrido cambio alguno, por lo que puede cancelar la instalacin, pasando este punto ya no ser posible
deshacer los cambios. Se recomienda hacer un respaldo de su informacin en caso de cualquier error.

7. Particiones requeridas para instalar Linux.

Para ambos tipos de instalacin, Linux requiere de las siguientes particiones para su instalacin:

Nombre de
la particin
Punto de
montaje
Descripcin
raz / Es la principal particin, en ella se instalan los archivos del sistema
operativo, se recomienda que esta tenga la mayor cantidad de espacio
asignado.
swap NA rea de intercambio. Corresponde al espacio reservado por el sistema
operativo que emplea como memoria virtual en caso de que la memoria
fsica no sea suficiente. Tpicamente el tamao de esta particin se
calcula multiplicando por 2 a la memoria fsica disponible. Por ejemplo, si
se usa una maquina virtual con 1GB, el tamao de esta particin ser de
2 GB.
Ntese que el espacio total asignado se tiene que distribuir entre las 2 particiones mencionadas
anteriormente.

En el caso de usar maquina virtual presionar Nueva tabla de particin, y crear las particiones antes
descritas. Para el caso de instalacin nativa, una vez recortada la particin existente, seleccione el
espacio disponible e inicie la creacin de las particiones antes descritas.

Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 9 de 28


Crear las particiones en el siguiente orden:
Creacin de la particin swap. Seleccione el rengln que contiene el espacio libre, presionar +.
Tomando en cuenta la tabla anterior, especificar los valores adecuados para esta particin. Revisar la
captura de datos, al terminar, presionar Aceptar.


Creacin de la particin raz. Mismo procedimiento, seleccionar el espacio libre, presionar +. El
espacio a asignar para esta particin ser igual a todo el espacio libre disponible (la particin con el
mayor espacio), adicional a que el tipo de particin ser Primaria.



Observar el orden en el que se crearon las particiones, primero swap, y al final raz. Esto principalmente para
que el espacio sobrante despus de crear a swap se le asigne a la particin raz. Esto se logra creando todas las
particiones seleccionando como ubicacin final.
Adicionalmente observar que el tipo de particiones es lgica a excepcin de la particin raz.
Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 10 de 28
Al final la distribucin de las 2 particiones debe ser as: pueden aparecer otras particiones de los dems
sistemas operativos, en este caso, todas las particiones para Linux incluida la particin raz, pueden ser creadas
como particiones lgicas.


Recomendacin: no dejar espacio libre sin particionar. Presionar Instalar ahora.

8. Seleccionar la ubicacin.


9. Distribucin del teclado. Verifique que la distribucin calculada por el programa sea la adecuada para
su teclado. De no ser as haga uso de las opciones disponibles para realizar la seleccin adecuada.

Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 11 de 28



10. Seleccin de cuenta de usuario y nombre de la PC..

Observar que en esta pantalla se especifica el nombre del equipo y el nombre del usuario con privilegios de
administracin (sudo). Para propsitos del curso, se debern especificar los siguientes valores:
Nombre de la maquina: pc-xxx, donde xxx corresponde con las iniciales de su nombre, por ejemplo,
pc-jarc (todo en minsculas).
Nombre del usuario: su nombre, por ejemplo juan, etc. (es importante que se especifique el
nombre del alumno). Estos valores son importantes para prcticas posteriores. Los reportes que
incluyan pantallas a lnea de comandos debern incluir este nombre. Incluir esta pantalla en el
reporte.
En caso de contar con un sistema operativo previamente instalado, es posible dejar los valores del
usuario existente, solo se deber indicar en el reporte que ya se contaba con una cuenta de
usuario.

1.6. INICIANDO CON UBUNTU
Notas finales antes de iniciar.

Al terminar el proceso de instalacin, el sistema solicitar reiniciar el equipo para comenzar a utilizar el sistema
operativo. Presionar reiniciar.

Ntese que en el caso de una instalacin nativa en la que ya se contaba con un sistema operativo como
Windows, el proceso de instalacin crea de manera automtica un men haciendo uso de una herramienta
llamada grub el cual aparece durante unos segundos para seleccionar el sistema operativo a ejecutar. Por
default, el primer sistema operativo que aparece en el men es el que se ejecuta si no se realiza seleccin
alguna.

Al reiniciar se presentar la pantalla de inicio en la que se deber proporcionar login y password

Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 12 de 28


Finalmente, al proporcionar el password, se deber observar una pantalla como la siguiente, con la cual se
concluye el proceso de instalacin.


La apariencia del sistema puede ser cambiada y configurada con base a sus preferencias.

1.7. CONFIGURACIN ADICIONAL DE VIRTUALBOX .

Si la instalacin es nativa, pasar a la seccin 1.8.

Existen mltiples opciones para configurar VirtualBox. En esta seccin se muestran solo algunas, las ms
importantes. Una de ellas es la ampliacin de la pantalla. Por default la pantalla que se muestra es demasiado
pequea e incmoda para trabajar.

1. Instalacin del archivo de extensiones Oracle_VM_VirtualBox_Extension_Pack
Este archivo se emplea para instalar algunas capacidades adicionales para VirtualBox, por ejemplo, el
soporte para leer memorias USB desde la mquina virtual. Para instalar este paquete de extensiones, dar
doble clic sobre el archivo, o clic derecho -> ejecutar con virtualBox, seguir las instrucciones en pantalla.

2. Instalacin de Guest Additions.
Con la maquina husped corriendo, seleccionar el en men de virtual box dispositivos -> Instalar <<Guest
additions>>. Observar que al seleccionar esta opcin, en la maquina husped muestra un CD el cual ser
empleado para instalar estas caractersticas adicionales.


Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 13 de 28
De forma automtica aparecer un dialogo como el que se muestra en la figura. En caso de no aparecer,
dar clic derecho sobre el cono del CD, seleccionar la opcin Abrir.

3. Dar clic en Ejecutar como se muestra en la pantalla.



4. Aparecer una ventana solicitando permisos de administrador, proporcionar el password del usuario
configurado en pasos anteriores (usuario con privilegios de administrador).
5. Al terminar con el proceso de instalacin, reiniciar el sistema (mquina virtual) para que los cambios
tomen efecto.
6. Antes de iniciar la mquina nuevamente, se recomienda configurar adecuadamente el nmero de
procesadores que emplear la mquina virtual para mejorar su desempeo. Para ello, seleccionar la
mquina virtual, en el men Sistema, pestaa procesador, capturar el nmero de procesadores
o ncleos con los que cuente la mquina husped. Por ejemplo, en la imagen se han capturado 2
procesadores. Habilitar la opcin PAE/NX.



7. Iniciar la mquina virtual. Observar el cambio, maximizar la ventana de VirtualBox, seleccionar la
opcin ver-> Auto dimensionar la pantalla del invitado observar que ahora la ventana de Ubuntu se
ajusta al tamao completo de la pantalla.



8. Lectura de memorias USBs y del CD desde la mquina virtual.
De requerirse, es posible leer el contenido de estos dispositivos desde la mquina virtual. Para realizar
esta actividad, seguir las siguientes instrucciones:
Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 14 de 28
Conectar la memoria USB o introducir el CD que se desea leer.
Verificar que este sea reconocido primero por la maquina anfitriona.
Posteriormente, para el caso de la memoria USB, dentro del men de VirtualBox (con la mquina
virtual en ejecucin) seleccionar Dispositivos ->Dispositivos USB.
En este ltimo men aparecern los nombres o etiquetas de los dispositivos USB conectados a la
maquina anfitriona. Seleccionar el correspondiente. Por ejemplo, en la sig. Figura se muestra el
nombre de una memoria USB HP.



Al seleccionarla, esta dejar de estar disponible en la maquina anfitriona y estar disponible en la
virtual.
Para liberar la USB, primero se debe desmontar o extraer de la mquina virtual (haciendo clic derecho
en icono de la USB que aparecer en el escritorio), y posteriormente, hacer clic nuevamente en
Dispositivos ->Dispositivos USB-> para desmarcar la seleccin del dispositivo. Con esta
accin, ahora la memoria USB estar disponible en la maquina anfitriona solamente.
Para el caso del CD se aplica el mismo procedimiento, seleccionando Dispositivos-
>Dispositivos CD/DVD.

1.8. PASOS PREVIOS PARA INSTALAR POSTGRESQL.

1.8.1. Actualizacin de software
Antes de comenzar con la instalacin es recomendable que el sistema operativo este actualizado. Por lo
general la maquina hace uso de la configuracin de red e internet de la maquina anfitriona (en caso de
maquina virtual). Se requiere estar conectado a internet para continuar.

1. Hacer clic en el botn de inicio del sistema (esquina superior izquierda), escribir actualizacin de
software. Seleccionar la aplicacin que aparece como se muestra en la figura. Seguir las instrucciones
en pantalla. Esta operacin puede durar varios minutos.



2. Reiniciar para que los cambios tomen efecto.

Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 15 de 28


1.8.2. Instalacin de gnome-panel

En caso de tener un desempeo bajo al momento de interactuar con la interfaz grfica de Ubuntu, en
especial por tratarse de una instalacin con maquina virtual, se recomienda cambiar la interfaz por default de
Ubuntu: Unity. Para ello, se deber instalar la interfaz clsica de Gnome. Para realizar lo anterior, abrir una
trminal (Ctrl +Alt + t), y ejecutar la siguiente instruccin:

sudo apt-get install gnome-panel

Posterior a su instalacin, reiniciar o cerrar sesin. Al regresar, aparecern habilitadas las opciones para
cambiar la interfaz. Seleccionar GNOME Classic (No effects).


1.8.3. Captura de pantallas
En las siguientes secciones, se solicitar la captura de pantallas las cuales debern incluirse en el reporte. Se
recomienda seguir los siguientes puntos para realizar una captura fcil y rpida:
Adicional a la tecla Imp Pant, Ubuntu cuenta con una aplicacin llamada Capturar pantalla, que
permite capturar parcial o totalmente la pantalla. Se recomienda su empleo por las distintas opciones
que ofrece. Para abrirla, en el men de inicio (Unity) escribir capturar pantalla, o seleccionar
Aplicaciones ->Accesorios ->Capturar pantalla en el men de GNOME.

Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 16 de 28
Captura de la terminal con fondo claro. til para ahorrar tinta o toner al imprimir el reporte. Para
cambiar el color del fondo, seleccionar dentro del men de la terminal Editar -> Preferencias del perfil,
seleccionar la pestaa Color. Cambiar el fondo de la terminal.



1.9. INSTALACIN DE POSTGRESQL.

1. Abrir una terminal haciendo clic en el icono de bsqueda (esquina superior izquierda). En el campo de
bsqueda escribir teminal, o adicionalmente, se puede emplear la combinacin de teclas Ctrl +Alt
+ t



En algunos casos es necesario ejecutar las instrucciones como administrador (root). Para ello, se pueden
emplear 2 tcnicas:
Anteponiendo el comando sudo antes de la instruccin. Esto permitir ejecutar solo esa
instruccin en modo de administrador, se deber especificar para cada instruccin que requiera
permisos de root.
Escribiendo el comando sudo su Esta instruccin cambiar la sesin del usuario actual en la
terminal al usuario root (notar el cambio del cursor a #). Con esta modalidad no es necesario
escribir el comando sudo en cada instruccin. Solo tener cuidado de no ejecutar instrucciones que
no requieren ser ejecutadas por el usuario root. Para salir del modo root, ejecutar el comando
exit.

2. Compilando PostgreSQL.

La instalacin se realizar compilando el cdigo fuente de postgreSQL, no se emplearn los paquetes (.deb).
Antes de iniciar el proceso de compilacin, se debern instalar las siguientes libreras requeridas. Ejecutar las
siguientes instrucciones:

sudo apt-get install libreadline6-dev
sudo apt-get install zlib1g-dev


Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 17 de 28
3. Descomprimir el archivo .tar.gz que contiene el cdigo fuente de postgreSQL en cualquier directorio,
por ejemplo, en el escritorio.

tar xvf postgresql-X.X.X.tar.gz

4. Cambiarse al directorio generado, y ejecutar:

./configure --prefix=/opt/postgresql-X.X.X/pgsql

Donde X.X.X corresponde al nmero de versin de postgreSQL. Por ejemplo 9.3.0

La instruccin anterior, verifica que el sistema cuente con todo lo necesario para poder compilar. El valor de
--prefix, indica el directorio donde se instalar el software.

5. Ejecutar la siguiente instruccin para comenzar el proceso de compilacin. Nota: si la instruccin anterior
genera error alguno, no se podr continuar con el proceso de instalacin, se deber revisar el error,
corregir y reintentar.
make

Al final del proceso de compilacin, se muestran mensajes similares a los de la siguiente imagen. Incluir en el
reporte una imagen similar (pequeo extracto del final de la salida).


6. Si todo va bien, sin errores, ejecutar la siguiente instruccin como root, para instalar el software en la ruta
indicada:
sudo make install

7. Creacin del usuario postgres (usuario del sistema operativo)
PostgreSQL requiere de un usuario postgres de sistema operativo, el cual ser designado como dueo de
todas las bases de datos que se generen. Ejecutar las siguientes instrucciones para crear a este usuario:

sudo mkdir /opt/postgresql-X.X.X/pgsql/data
(Reemplazar X.X.X por la versin correspondiente en todas las instrucciones que lo requiera).

Observar que el comando anterior crea un directorio data dentro del directorio donde se instal postgreSQL.
En este directorio se guardar toda la informacin y archivos de configuracin de las bases de datos que se
crearn. Ejecutar las siguientes instrucciones:

sudo adduser postgres
sudo chown postgres:postgres /opt/postgresql-X.X.X/pgsql/data

Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 18 de 28
Ejecutar la siguiente instruccin para asignarle un password al usuario postgres (se recomienda el valor
postgres para efectos del curso).
sudo passwd postgres

8. Para tener disponibles los comandos de postgreSQL en la variable de entorno $PATH, se deber editar el
archivo /etc/bash.bashrc , al final del archivo agregar la siguiente lnea:

sudo nano /etc/bash.bashrc

Agregar estas lneas al final:
#Lnea agregada para postgreSQL
export PATH=$PATH:/opt/postgresql-X.X.X/pgsql/bin

Guardar el archivo, y salir del editor (ctrl X). Para verificar, cerrar la terminal, abrir una nueva (o en su
defecto ejecutar source /etc/bash.bashrc para actualizar los cambios), ejecutar la instruccin echo
$PATH. En la salida de dicho comando se deber apreciar la ruta configurada anteriormente.

9. Juego de caracteres

Por default todas las bases de datos creadas en Linux con PostgreSQL emplean como juego de caracteres
UTF-8, el cual es el juego de caracteres por default de Linux. Sin embargo, en prcticas posteriores se
realizar la importacin de datos en un juego de caracteres ISO-8859-1, que contiene acentos, , etc.
Para evitar que se guarden caracteres extraos debido al juego de caracteres empleados, se debern ejecutar
las siguientes instrucciones para poder crear bases de datos con ISO-8859-1:

Editar el archivo local:
sudo nano /var/lib/locales/supported.d/local

agregar la lnea al final del archivo:
es_MX ISO-8859-1

Incluir en el reporte el contenido del archivo modificado.

Ejecutar la siguiente instruccin para agregar el juego de caracteres al sistema:
sudo dpkg-reconfigure locales

Para verificar que se agreg correctamente, ejecutar la instruccin locale a, deber aparecer dentro de
la lista el valor es_MX.iso88591

1.10. INICIALIZAR REA DE ALMACENAMIENTO, INICIANDO LA INSTANCIA .

Antes de realizar cualquier accin sobre la base de datos, es necesario inicializar el rea de almacenamiento
donde caern todos los objetos que se crearn (directorio data creado anteriormente). En trminos de
postgreSQL, a esta rea se le conoce como Database Cluster.

Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 19 de 28
Un cluster es una coleccin de bases de datos que son administradas por una instancia simple que se ejecuta
en un servidor. Una vez que el cluster es creado, se generan por default las siguientes bases de datos:
postgres (no confundir con los nombres de usuario).
template1 (como su nombre lo indica, se emplea como template o plantilla para crear otras bases
de datos).
1. Inicializar el cluster. Ejecutar la siguiente instruccin estando como usuario postgres (usuario de sistema
operativo)

su -l postgres
initdb --encoding LATIN1 --locale es_MX.iso88591 -D /opt/postgresql-X.X.X/pgsql/data/

Observar que se inicializa el cluster empleando el directorio data creado anteriormente. Incluir en el reporte
la salida de este comando.

Una vez ejecutada la instruccin, cambiarse al directorio data, ejecuta la instruccin ls l , incluir en el
reporte la salida de este comando.

2. Creacin de los archivos de log. Es importante tener presente donde se guardarn los archivos de log que
genera PostgreSQL , en caso de generarse algn error, estos archivos pueden ser de gran utilidad. Ejecutar
la siguiente instruccin estando en sesin del usuario postgres:

mkdir /home/postgres/logs

3. Inciando la instancia. Ejecutar la siguiente instruccin para levantar la instancia (estando en sesin del
usuario postgres):

pg_ctl -D /opt/postgresql-X.X.X/pgsql/data -l /home/postgres/logs/postgres.log start 2>&1 &

La opcin D indica el directorio del cluster inicializado, -l indica la ubicacin del archivo de log. Investigar
el significado de la ultima parte del comando 2>&1 & , incluir en el reporte la explicacin.
Para verificar que la instancia esta arriba ejecutar ps -ef | grep postgres, observar la existencia de
varios procesos del sistema operativo que se crean para el correcto funcionamiento de la instancia. incluir en el
reporte la salida de este comando.

Para detener la instancia, ejecutar:
pg_ctl -D /opt/postgresql-X.X.X/pgsql/data stop

1.11. INSTALACIN DE PGADMIN

PgAdmin es una herramienta que permitir administrar la base de datos de forma grfica. Se emplear en el
curso para administrar las bases de datos espaciales. Para instalarlo, ejecutar las siguientes instrucciones (no
emplear al usuario postgres para ejecutar estas instrucciones):

sudo add-apt-repository ppa:pitti/postgresql
Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 20 de 28
sudo apt-get update
sudo apt-get install pgadmin3

La primera y segunda instruccin agregan un repositorio al sistema (personal Package Archives). Un PPA es un
sitio que contiene paquetes compilados por terceras personas y que ofrecen generalmente versiones mas
recientes de una aplicacin con respecto a los repositorios de paquetes oficiales.

1.12. INSTALACIN DE POSTGIS

El siguiente paso de esta prctica es la instalacin de la extensin espacial de PostgreSQL llamada PostGIS. De
forma similar a PostgreSQL, la instalacin se realizar a partir del cdigo fuente. Ejecutar las siguientes
instrucciones:
1. Instalar libreras requeridas:
sudo apt-get -y install build-essential
sudo apt-get -y install libgeos-c1
sudo apt-get -y install libgeos-dev
sudo apt-get -y install libxml2-dev
sudo apt-get -y install libproj-dev
sudo apt-get -y install libjson0-dev
sudo apt-get -y install xsltproc
sudo apt-get -y install docbook-xsl
sudo apt-get -y install docbook-mathml
sudo apt-get -y install libgdal1-dev

2. Extraer el contenido del archivo que contiene el cdigo fuente de PostGIS en cualquier directorio, por
ejemplo en el escritorio.
3. Cambiarse al directorio creado, ejecutar las siguientes instrucciones para configurar, compilar e instalar:
sudo mkdir /opt/postgis-X.X.X
./configure --with-pgconfig=/opt/postgresql-X.X.X/pgsql/bin/pg_config
make
sudo make install
sudo ldconfig
sudo make comments-install

Existe un archivo que se crea el cual causa conflictos con el comando psql de PostgreSQL. Para eliminar este
conflicto se deber renombrar. Para ello, ejecutar la siguiente instruccin. Si no existe el archivo, omitir este
paso.

sudo mv /usr/bin/psql /usr/bin/psql-old

1.13. EXPLORANDO LA BASE DE DATOS POSTGRES
Como se mencion anteriormente, por default, el cluster incluye una base de datos llamada postgres. Una vez
que se ha levantado la instancia, el siguiente paso es entrar a la base de datos postgres para efectos de
prueba.
1. Entrando a la base. Para ello, se emplea el comando psql el cual tiene la siguiente sintaxis:
Ojo, aqu se debe sustituir con
la versin de postgreSQL
Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 21 de 28
psql [DBNAME [USERNAME]]

Si se omite el nombre de la base se toma como nombre, el username con el que se invoca al comando psql.
Lo mismo ocurre con el valor de USERNAME. Por lo tanto, estando como usuario postgres a nivel de sistema
operativo, se puede escribir esto:
psql
Es posible invocar al comando psql desde otro usuario, por ejemplo:
psql postgres postgres

Aparecer una salida como la siguiente:
postgres@lap-xps:~$ psql
psql (X.X.X)
Type "help" for help.

postgres=#

Observar el smbolo =# , el cual indica que estamos dentro de la base de datos postgres como super usuario.

2. Desplegar la hora y la versin con postgres:
Ejecutar los siguientes comandos, incluir la salida en el reporte.
postgres=# select now();
postgres=# select version();

Para salir de la lnea de comandos, escribimos \q

1.14. CONFIGURANDO SEGURIDAD EN POSTGRES
Antes de iniciar con la configuracin de la seguridad, es necesario asignar un password al usuario postgres que
se genera al crear el cluster (No confundirse, este usuario es un usuario interno de PostgreSQL, el creado
anteriormente es un usuario a nivel de sistema operativo). Para realizar esta actividad, ejecutar la siguiente
instruccin estando dentro de la base de datos postgres (observar el cursor):

postgres=# alter user postgres with encrypted password 'postgres';

Por default, la base de datos no cuenta con restriccin alguna para acceder a cualquiera de las bases de datos
del cluster. Por tal razn, fue posible ejecutar los comandos de la seccin anterior sin emplear algn mtodo
de autenticacin. El primer paso a realizar es proporcionar un medio de autenticacin al usuario postgres.
Para realizar la configuracin de accesos se deber editar el archivo pg_hba.conf que se encuentra en el
directorio data. Es decir, se deber ejecutar el siguiente comando (como usuario postgres)

nano /opt/postgresql-X.X.X/pgsql/data/pg_hba.conf

1.14.1. Configurando acceso a travs de lnea de comandos empleando la identidad del sistema
operativo.

Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 22 de 28
Significa que el usuario postgres podr tener acceso a la base de datos siempre y cuando el usuario que
intente entrar haya iniciado sesin a nivel de sistema operativo con el usuario postgres. Para realizar lo
anterior, editar el archivo arriba mencionado, y verificar que la siguiente lnea coincida con lo siguiente (casi al
final del archivo):


# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all postgres ident

local: se refiere a conexiones realizadas desde el servidor empleando una terminal.
all: El usuario podr tener acceso a todas las bases de datos.
postgres: Solo el usuario llamado postgres podr tener acceso empleando esta configuracin.
ident: Verifica que el usuario que intenta conectarse a la base de datos, haya entrado a sesin a nivel de
sistema operativo con un usuario llamado postgres. Si esto se cumple, se permite el acceso.

Importante: Asegurarse de que las lneas restantes del archivo comiencen con #, es decir, agregar # al inicio
de la lnea para comentarlas.

Para comprobar esta configuracin:
3. guardar cambios en el archivo (se recomienda hacer un respaldo)
4. Reiniciar la instancia.
5. Intentar ejecutar el siguiente comando estando en sesin del usuario postgres:
psql En este caso se deber tener acceso a la base sin problema alguno.

6. Cambiarse de sesin a nivel de sistema operativo empleando un usuario diferente a postgres.
7. Ejecutar psql postgres postgres
8. El sistema deber mandar un mensaje de error indicando que no es posible conectarse, esto debido a que
el usuario en sesin no es el usuario postgres.
Incluir en el reporte la salida de la pantalla que muestre estos resultados.

1.14.2. Autenticacin local para todos los usuarios empleando password encriptado.

Para permitir que cualquier usuario pueda conectarse a la base de datos a lnea de comandos empleando su
password, se debern agregar las siguientes lneas del archivo para que quede de la siguiente forma:

#Se agrega acceso a todos los usuarios a linea de comando
local all all md5

Como se puede observar, en esta configuracin, todos los usuarios podrn entrar a la base de forma local
empleando el mtodo md5, que significa: acceso empleando un password encriptado.

1.14.3. Autenticacin para conexiones TCP/IP

Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 23 de 28
Se requiere agregar esta ultima configuracin para permitir que todos los usuarios puedan conectarse de
forma adicional a travs de una conexin TCP/IP, en particular a partir de pgAdmin (mas adelante se ver su
uso). Para ello, editar el archivo, (no se requiere agregar lneas nuevas) verificar que coincidan con lo
siguiente:
# IPv4 local connections:
host all all 127.0.0.1/32 md5

Como se puede observar, en esta configuracin todos los usuarios podrn conectarse va TCP/IP, nicamente
desde la misma maquina donde esta el servidor de la base de datos (127.0.0.1/32 localhost). Si se desea
conectarse desde otra IP, se debern especificar en este archivo.
Al terminar de configurar la seguridad, reiniciar la base de datos para que los cambios tengan efecto.

1.15. CREACIN DE UNA BASE DE DATOS CON EXTENSIN ESPACIAL

El siguiente paso es crear una base de datos con extensin espacial empleando la instalacin de PostGIS
realizada anteriormente. Ejecutar los siguientes comandos.

1. Estando conectado a la base como usuario postgres, ejecutar la siguiente instruccin para crear al usuario
que ser el dueo de nuestra base de datos.
postgres=# create user espaciales with encrypted password 'espaciales';

2. Crear una base de datos espacial llamada espaciales
postgres=# create database espaciales owner espaciales;

3. Asignar al usuario espaciales como dueo del esquema public de la nueva base de datos.

postgres=# \c espaciales
You are now connected to database "espaciales" as user "postgres".

espaciales=# alter schema public owner to espaciales;

El comando \c permite cambiarse a otra base de datos estando en sesin como usuario postgres.
4. Agregar la extensin espacial a la base de datos espaciales:

espaciales=# CREATE EXTENSION postgis;
espaciales=# CREATE EXTENSION postgis_topology;

Incluir en el reporte la salida de estos 2 comandos (pequeo extracto).

5. Para acceder a nuestra nueva base de datos espacial empleando el usuario espaciales, ejecutar:
espaciales=# \q
psql espaciales espaciales

6. Finalmente, para verificar que nuestra instalacin es correcta, ejecutar las siguientes instrucciones, e
incluir la salida en el reporte.
Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 24 de 28

espaciales=> select postgis_lib_version();
espaciales=> select now();

1.16. VISUALIZACIN DE LA BASE ESPACIAL EMPLEANDO PGADMIN

Para trabajar de forma grfica con nuestra nueva base de datos, emplearemos pgAdmin:
1. Presionar la tecla win o hacer clic en el icono de la esquina superior izquierda, y escribir pgAdmin.


2. Aparecer una pantalla similar a la siguiente.

3. Hacer clic en el icono de conexin para configurar el acceso a nuestra base de datos proporcionando los
datos como se muestra en la imagen.
Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 25 de 28


4. Observar los esquemas y elementos de la nueva base de datos:


5. En postgreSQL, por default se crea un schema llamado public que contiene todos los objetos tablas,
vistas, y funciones, en especial las funciones vistas en clase que nos permiten trabajar con objetos
espaciales. Observar la siguiente imagen, se ha seleccionado public -> functions ->rea o
st_area

Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 26 de 28


Observar la descripcin del lado derecho, se muestra la forma en la que se define una funcin en nuestra base.
La ruta $libdir/postgis-X.X, indica la librera que contiene la programacin de la funcin.

Incluir en el reporte una imagen similar a la anterior, pero seleccionando la funcin distance.

1.17. CREACIN DE TABLAS CON GEOMETRAS

Suponer que se desea guardar la informacin del siguiente objeto geogrfico:
Pais(pas_id, nombre, capital,geometra): P1=(1,ITALIA,ROMA,geo), donde
geo esta dada por la siguiente figura:
0
X
Y

La representacin en modo texto de esta figura es:
POLYGON((1 1,2 1,2 2,4 2,4 1,8 1,8 4,3 4,3 7,1 7,1 1))

Para realizar la insercin de este objeto en la base de datos, se deber crear una tabla de forma normal y
posteriormente agregar el ADT que en este caso es un POLYGON:

create table pais(
Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 27 de 28
pais_id numeric(10,0) constraint pais_fk primary key,
nombre varchar(100) not null,
capital varchar(100) not null
);

Para ejecutar sentencias SQL con pgAdmin:

1. Seleccionar el icono de la base de datos (lado izquierdo)
2. Hacer clic en el icono SQL. Esta accin abrir un editor en el cual podremos ejecutar cualquier tipo de
sentencia SQL.


Posteriormente, agregamos el ADT empleando la funcin addGeometryColumn, la cual acepta los
siguientes parmetros:

AddGeometryColumn(
<schema_name>,
<table_name>,
<column_name>,
<srid>,
<type>,
<dimension>
)
Schema_name: en caso de que no se especifica, el valor del esquema se asigna a public.
Table_name: Nombre de la tabla a la que se le agregar el ADT.
Column_name: Nombre de la columna que representa al ADT.
SRID: Identificador del sistema de referencia asociado al ADT. Su valor corresponde con algn
sistema registrado en la tabla SPATIAL_REF_SYS. Para efectos del curso, le asignarmos -1
(sistema de referencia indefinido).
Type: el tipo de ADT, corresponde con los nombres de los ADTs empleados para realizar su
representacin en formato WKT
Dimension: La dimensin del sistema de referencia. Para efectos del curso es 2, es decir, un
sistema de coordenadas X,Y (no confundir con la dimensin del objeto espacial).

select addGeometryColumn('public','pais','geo',-1,'POLYGON',2);
Prctica 2 Bases de Datos Espaciales.
Ing. Jorge A. Rodrguez Campos 2014 28 de 28

Para realizar la insercin del registro nos apoyamos de la funcin st_geomFromText:

insert into pais(pais_id,nombre,capital,geo)
values(1,'ITALIA','ROMA',st_geomFromText(
'POLYGON((1 1,2 1,2 2,4 2,4 1,8 1,8 4,3 4,3 7,1 7,1 1))'
));

Para mostrar el registro creado empleamos la funcin asText
select pais_id,nombre,capital, st_asText(geo) as geo from pais;

Para verificar si la geometra que agregamos es vlida, empleamos la funcin st_isValid
select pais_id,nombre,capital, st_asText(geo) as geo, st_isValid(geo) as valida
from pais;

Ejecutar estas 2 instrucciones e incluir la salida en el reporte.

Finalmente:
3. Crear una sentencia SQL que calcule el rea de la figura anterior, incluir sentencia y resultado.
4. Crear una sentencia SQL que calcule el permetro de la figura anterior, incluir sentencia y resultado.
5. Dentro del esquema public, observar que existen una tabla llamada: spatial_ref_sys . Observar su
estructura y los datos que contienen, Cul es su finalidad?

1.18. CONTENIDO DEL REPORTE
Introduccin
Objetivo
Desarrollo de la prctica. Realizar todos los pasos necesarios. Incluir solo los puntos que se
indican en el reporte.
Opcionalmente se pueden incluir algunas pantallas.
Conclusiones, comentarios, recomendaciones.
Bibliografa.

You might also like