Postgresql
Postgresql
Postgresql
Agenda
Que es? Propiedad ACID Caractersticas Avanzadas Instalacin Administracin Objetos Tipos de Datos Funciones Lenguajes procedurales SQL y Tips
Consultas complejas Integridad referencial Triggers Vistas Control de concurrencia Propiedades ACID.
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
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:
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
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 .....
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);
Lenguajes procedurales
Sin duda una gran ventaja es poder programar en multiples lenguajes. Permite reutilizar cdigo pl/pgsql
Programacin en postgresql
Restricciones
Aseguran Ayudan
SQL
Lenguaje
Lenguaje
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
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
de alias
No
select
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)
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:
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
http://www.postgresql.org/docs/8.3/static/app-pgrestore.html