Вы находитесь на странице: 1из 8

Pequeo Manual para PostgreSQL

David Pineda Osorio

May 8, 2017

Contents
1 Introduccin
Este pequeo manual te ayudar a alcanzar un nivel de usuario en el mo-
tor de bases de datos postgres. Te permitir congurarlo, crear databases,
usuarios (roles) y asignar permisos. Adems te permitir obtener una pre-
ciosa herramienta para operaciones geogrcas: POSTGIS.
De entre todas las herramientas disponibles, PostgreSQL ha logrado de-
sarrollarse gracias a la comunidad de software libre, superando en muchas de
sus caractersticas a sus competidores privados. Es maravilloso poder saber
que podemos conar en la comunidad.
Este manual considera que no has instalado nnca el motor PostgreSQL,
pero si conoces algo del lenguaje de consulta SQL y usas el sistema operativo
libre Gnu Linux. Con esto te ser posible rpidamente adaptarte a este nuevo
vehculo contenedor de la informacin.
Como recomendacin, de entre todas las distribuciones de Gnu Linux, la
variedad ms sencilla es la que nace de la familia Debian, por lo tanto te
recomiendo utilizar un servidor con Debian instalado (o ubuntu). A esto se
suma que gran cantidad de ayuda o de otros manuales estn realizados para
usar esta familia de Gnu Linux.
Otra de las grandes caractersticas que tiene este sistema es que existe una
multitud de modulos para cada lenguaje que permiten establecer una sesin
con la base de datos en que trabajes. Te permitir disear un esquema en un
ORM (object relational mapper) e interpretarlo para crear un esquema en
SQL que permitir crear la base de datos lista para llenarla de informacin.

1
2 Instalando PostgreSQL
Vamos primero a visitar el Sitio web. Ah podremos observar las actualiza-
ciones, contenidos y eventos que se realizan en torno al motor PostgreSQL.
Luego, en la pestaa Download sera posible acceder a las distintas formas
de instalar. En tu sistema operativo particular o bien en el recomendado
Debian.

apt-get install postgresql-9.4

Las siguientes herramientas estn disponibles.


-postgresql-client-9.4 - client libraries and client binaries
-postgresql-9.4 - core database server
-postgresql-contrib-9.4 - additional supplied modules
-libpq-dev - libraries and headers for C language frontend development
-postgresql-server-dev-9.4 - libraries and headers for C language backend
development
-pgadmin3 - pgAdmin III graphical administration utility
De todas maneras, si deseas trabajar con una versin ms actualizada,
podrs incluir los repositorios que tienen disponibles nuevas versiones.
Como:
Crea el archivo /etc/apt/sources.list.d/pgdg.list e incluye adentro:

deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main

Luego, agrega la llave y acutaliza. De aqu en adelante tendrs disponible


la amplia gama de versiones que se proveen de manera ocial. Para acceder
a estas posibilidades podrs generar una bsqueda como sigue:

apt-cache search postgres| grep postgres*

3 Congurando el archivo pg_hba.conf


El sistema PostgresSQL contiene una serie de archivos de conguracin. A
medida que uno necesita alguna particularidad, uno debe acceder a congu-
rar estos archivos y, a la vez, adquirir una mayor experiencia.
A nuestro nivel, ser necesario acceder a un archivo como administrador
y cambiar una sola palabra:

peer-->md5

2
Para la version 9.6 de postgresql ser necesario hacer lo siguiente:

nano /etc/postgresql/9.6/main
Cambiar de

# "local" is for Unix domain socket connections only


local all all peer

# "local" is for Unix domain socket connections only


local all all md5

Este chero se utiliza para denir los diferentes tipos de accesos que un
usuario tiene en el cluster.
Con esto tendrs habilitado el acceso a postgresql con un usuario y pass-
word de manera local.
Para mayores detalles en cuanto a conguracin te recomiendo acceder
al siguiente Documento.

4 Acceder al prompt de PostgreSQL


El primer nivel de acceso al motor de base de datos se har como un usuario
de nivel administracin. Para esto debemos operar en la terminal:

sudo su
su postgres
psql

5 Crear roles y databases


El primer paso para poder usar el motor de base de datos PostgresSQL es
crear los roles (usuarios) y databases que utilizara nuestro sistema.
En principio, en postrgres, es posible crear roles que son grupos con
ciertos privilegios predeterminados, luego agregar nuevos roles (usuarios)
al grupo. Sin embargo, para simplicar, en este caso solo crearemos una
database y un usuario que se le garantizan ciertos permisos a la database.

3
create role [usuario];
alter role [usuario] with login;
alter role [usuarui] with password "[contrasea]";
create database [database];
grant all privileges on database [database] to [usuario];

Con esto, tenemos la base para trabajar con PostgresSQL, sin embargo
sera necesario un poco mas de trabajo en la conguracion para trabajar con
sistemas GIS. Para ello sera necesario poner atencion en lo siguiente.

6 El poder GIS en postgres


Para llegar a utilizar funcionalidades geogracas sera necesario instalar una
serie de librerias dependencias que habilitaran todo el potencial de postgis.
Es recomendable hacer esta instalacion mediante la compilacion de la mayo-
ria de estos modulos ya que es bastante renado el nivel con que se puede
llegar de esta manera. Entre librerias de calculo exacto, uso de paralelismo,
conversiones geogracas, calculos geometricos, todas ellas nos permitiran ha-
bilitar ciertas puertas que se posibilitan con el paquete POSTGIS en nuestra
base de datos.
Te recomiendo ver la siguiente Tabla Comparativa en la que se nos des-
cubre todas las caractersticas particulares del paquete Postgresql+POSTGIS.
A continuacion veras la lista de librerias a instalar, ve con cuidado,
primero se instalan las dependencias que estan dentro de cada capitulo.
Luego las librerias madre. Por ejemplo, de las librerias necesarias GDAL
es la mas compleja de gestionar, ya que depende de {HDF4,HDF5, SZIP,
etc}. Para hacer todo bien, primero debemos instalar ese conjunto de libre-
rias para terminar instalando GDAL.
Esta recopilacion fue fruto de varias semanas de trabajo insistente en
lograr este tesoro. Aprecialo.

7 Python 3.5.x
./congure CFLAGS="-ftest-coverage -g -O0" CXXFLAGS="-g -O0 -pthread"
with-system-expat with-system- with-system-libmpdec with-valgrind

8 PROJ4
./congure make -j $(nproc) sudo make -j $(nproc) install

4
9 GEOS
./congure enable-python enable-ruby make -j $(nproc) sudo make -j $(nproc)
install

10 GDAL
./congure CXX=mpicxx CC=mpicc with-spatialite=/usr/local with-jasper=/usr/local
with-netcdf=/usr/local with-python=python3.6 with-java=/opt/jdk/jdk1.8.0_121
with-poppler=yes with-pg=/usr/bin/pg_cong with-sosi with-liblzma=yes
with-geos=yes with-cryptopp with-pic

10.1 LIBLAS
NAS library

10.2 HDF4
./congure prex=/usr/local disable-netcdf with-szlib enable-shared 
disable-fortran

10.2.1 SZIP

./congure prex=/usr/local

10.3 HDF5
./congure CXX=mpicxx CC=mpicc prex=/usr/local enable-hl enable-
trace enable-metadata-trace-le enable-parallel enable-build-all with-szlib

10.3.1 OPEN-MPI

./congure prex=/usr/local with-cma enable-mpi-cxx enable-mpi-cxx-


seek enable-ipv6 enable-timing enable-picky sudo ldcong

10.4 Netcdf
./congure CXX=mpicxx CC=mpicc CFLAGS='-fPIC' CPPFLAGS="-I/usr/local/include"
LDFLAGS="-L/usr/local/lib" prex=/usr/local enable-logging enable-
mmap enable-pnetcdf enable-jna enable-hdf4 enable-parallel-tests enable-
dot enable-internal-docs enable-fsync enable-parallel-tests disable-shared

5
10.4.1 Parallel netcdf

./congure CFLAGS='-fPIC' MPICXX=mpicxx MPICC=mpicc

10.5 Jasper
mkdir buildir cmake gui cd buildir make test sudo make install
==> must be hacked version!!
export CFLAGS="-O2 -fPIC" ./congure
http://download.osgeo.org/gdal/jasper-1.900.1.uuid.tar.gz

10.6 OpenJpeg
mkdir buildir cmake gui cd buildir make test sudo make install

10.7 SOSI
git clone https://github.com/kartverket/fyba cd fyba autoreconf force
install ./congure make sudo make install cd ..

10.8 JSON-C
./autogen.sh

10.9 TIFF
http://download.osgeo.org/libtiff/tiff-4.0.7.tar.gz

10.10 Libgeoti
https://trac.osgeo.org/geotiff/
./congure with-zip with-libz with-jpeg with-libti enable-doxygen-
pdf enable-doxygen-ps enable-incode-epsg

11 GCC 6.5
./congure enable-libada enable-libssp enable-bootstrap with-system-
zlib with-mpfr=/usr/local with-gmp with-mpc

6
11.1 MPC
11.2 MPFR
11.3 GMP
12 POSTGIS
./congure with-raster with-gdalcong=/usr/local/bin/gdal-cong
And then: http://postgis.net/docs/postgis_installation.html#make_
install_postgis_extensions

13 BOOST
./build_boost ./b2

14 nghttp2
./congure PYTHON=python3.6 with-boost-asio with-boost-system with-
boost-thread with-libxml2 with-boost=/usr/local enable-asio-lib with-
cython

15 libssh2
./congure

16 Cargamos el paquete POSTGIS en nuestra database:


En ambiente psql, en nuestra database. Ver Pagina postgis

-- Enable PostGIS (includes raster)


CREATE EXTENSION postgis;
-- Enable Topology
CREATE EXTENSION postgis_topology;
-- Enable PostGIS Advanced 3D
-- and other geoprocessing algorithms
-- sfcgal not available with all distributions
CREATE EXTENSION postgis_sfcgal;
-- fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;

7
-- rule based standardizer
CREATE EXTENSION address_standardizer;
-- example rule data set
CREATE EXTENSION address_standardizer_data_us;
-- Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;

Вам также может понравиться