Está en la página 1de 26

Introduccin a PostgreSQL

A.U.S. - D.B.A. Martn Gomez tinchogomez@gmail.com

Agenda
Que es? Propiedad ACID Caractersticas Avanzadas Instalacin Administracin Objetos Tipos de Datos Funciones Lenguajes procedurales SQL y Tips

Que es? (1)


PostgreSQL es un sistema de administracin de base de datos objecto-relacional (ORDBMS) Basado en POSTGRES, Versin 4.2, Soporta gran parte del estndar SQL y ofrece nuevas caractersticas

Consultas complejas Integridad referencial Triggers Vistas Control de concurrencia Propiedades ACID.

Que es? (2)


Puede ser extendida Tipos de datos Funciones Operadores Lenguaje procedural

por el usuario:

Posee licencia BSD. Puede ser usada modificada y distribuida libremente sin cargo para cualquier propsito

Propiedad ACID
Atomicidad: Los cambios de estado provocados por una transaccin son atmicos. Consistencia: Una transaccin es una transformacin de estado correcta. Aislamiento (Isolation): Cada transaccin debe ejecutarse en forma aislada sin importar que haya concurrencia. Durabilidad: Una vez que una transaccin ha finalizado con xito, todos los cambios perduraran.

Caractersticas Avanzadas
Vistas Consultas almacenadas como meta-datos Integridad Referencial Claves forneas Transacciones Bloque de actualizacin. Varias actualizaciones o ninguna.
Ejemplo: Transferencia bancaria.

Herencia Soporta herencia de tablas

Herencia
Ejemplo:
Sin Herencia CREATE TABLE capitals ( name text, population real, altitude int, -- (in ft) state char(2) ); CREATE TABLE non_capitals ( name text, population real, altitude int -- (in ft) ); Con Herencia CREATE TABLE cities ( name text, population real, altitude int -- (in ft) ); CREATE TABLE capitals ( state char(2) ) INHERITS (cities);

Instalacin
Multiplataforma Link: http://www.postgresql.org/download/

Windows: .exe o .msi Linux (src): .tar.gz Linux (debian): .deb o apt-get Linux (Red Hat): .rpm o yum Open Solaris: Package Manager FreeBSD Mac OS X

Administracin
psql:

Herramienta de administracin de lnea de comandos.


# psql # psql -U username # psql -d bdname -U username

Creacin de Base de datos psql> create database nombrebd -t template1 Creacin de Roles psql> create role nombreRol Creacin de Usuarios psql> create user nombreUsuario

Administracin (1)
Rol: Entidad que puede poseer objetos de base de

datos y privilegios Usuario: Objecto que posee privilegios de acceso a la base de datos. Permisos: Acciones que el usuario o rol pueden realizar. Ventaja de Roles: Mejora la organizacin y administracin.
Crear

una base de datos para un usuario

psql> create database nombrebd owner nombreusuario;

Herramientas grficas
PgAdmin OpenSource - BSD Muy utilizado Completa PhpPgAdmin Herramienta basada en web OpenSource - GPL EMS PostgreSQL Manager Licencia Costo (desde 60 U$S) Completa Funciones de importacin y exportacin en varios formatos

PgAdmin

Tipos de datos
Nativos Numricos Monetarios Texto Binarios Date/Time Boolean Network Address XML type .....

Soporta tipos definidos por el usuario

Funciones
Desarrollando en la base. Sigue filosofa java. Todo es funcin. Un procedimiento almacenado retorna void Se puede ejecuta con:
select nombreFuncion(); select nombreFuncion(p1);

Dentro de otras funciones se ejecuta:


perform nombreFuncion(); perform nombreFuncion(p1);

Lenguajes procedurales
Sin duda una gran ventaja es poder programar en multiples lenguajes. Permite reutilizar cdigo pl/pgsql

Programacin en postgresql

pl/tcl Programacin en C pl/perl Programacin en perl pl/python Programacin en Python

Restricciones
Aseguran Ayudan

la consistencia de la base de datos

a que se cumplan las reglas del negocio.

Tipos: Claves primarias Claves nicas Claves forneas

SQL

Lenguaje

de Definicin de Datos (ddl)

Lenguaje

de Manipulacin de Datos (dml)

Lenguaje de Definicin de Datos (ddl)


Todo lo Tablas

que sean objetos de base de datos

Restricciones

Create table tablename (col1 datatype); Alter table tablename add constraint .... Create view viewname as (select col1 from tablename); Create or replace function (par1 datatype,...) return void; Create trigger ...

Vistas

Funciones Triggers

Lenguaje de Manipulacin de Datos (dml)


Insercin de datos Insert into tablename(col1,...) values (val1,...); Eliminacin de datos Delete from tablename where col1=val1; Actualizacin de datos Update tablename set col1=val2 where col1=val1;

Muestra de ejemplos de Script's

SQL - Tips
select *... Ventaja:

Desventajas:

Selecciona todas las columnas de una tabla. til solo cuando no se conoce o no se recuerda la estructura de una determinada tabla. Si se utiliza en grillas o reportes la cantidad de columnas crece o decrece a medida que se agregan o eliminan columnas. El orden de las columnas retornadas es determinado por el orden de las columnas en el diccionario de datos. Nombrar todas las columnas que deben ser retornadas.

Recomendacin

SQL Tips (2)


Utilizacin
select

nombre from tabla1, tabla2;

de alias

No

puede determinarse a que tabla corresponde la columna nombre

select

t1.nombre,t2.nombre from tabla1 t1, tabla2 t2 where t1.id=t2.id;

Simplicidad Facil lectura Correctamente

realizada

Parte II

Seguridad
Seguridad Otorgar permisos a usuarios Otorgar permisos a roles Modos de conexin Confiable (trust) Cifrada (md5) Modo de Local Remoto

(arch. pg_hba.conf)

Servidor (arch. postgres.conf)

Archivos de PostgreSQL
pg_hba.conf
# TYPE DATABASE host all host all host all USER all all all IP-ADDRESS 127.0.0.1 192.168.11.0 192.168.12.0 IP-MASK METHOD 255.255.255.255 trust 255.255.255.0 md5 255.255.255.0 reject

postgres.conf

#listen='*' listen='localhost'

Backup y restauracin
Backup pg_dump:

Utilidad para realizacin de backup de una base de datos

pg_dumpall:

http://www.postgresql.org/docs/8.3/static/app-pgdump.html
Utilidad para realizacin de backup de todo el cluster de bases de datos postgres

http://www.postgresql.org/docs/8.3/static/app-pg-dumpall.html

Restore pg_restore

Utilidad para realizar restauraciones de una base de datos

http://www.postgresql.org/docs/8.3/static/app-pgrestore.html