Introducción a PostgreSql
-
Upload
ricardomartingomez -
Category
Documents
-
view
7.156 -
download
5
description
Transcript of Introducción a PostgreSql
![Page 2: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/2.jpg)
AgendaQue es?Propiedad ACIDCaracterísticas AvanzadasInstalaciónAdministraciónObjetosTipos de DatosFuncionesLenguajes proceduralesSQL y Tips
![Page 3: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/3.jpg)
Que es? (1)
PostgreSQL es un sistema de administración de base de datos objecto-relacional (ORDBMS)
Basado en POSTGRES, Versión 4.2, Soporta gran parte del estándar SQL y
ofrece nuevas características Consultas complejas Integridad referencial Triggers Vistas Control de concurrencia Propiedades ACID.
![Page 4: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/4.jpg)
Que es? (2)Puede ser extendida por el usuario: Tipos de datos Funciones Operadores Lenguaje procedural
Posee licencia BSD. Puede ser usada modificada y distribuida libremente sin
cargo para cualquier propósito
![Page 5: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/5.jpg)
Propiedad ACID Atomicidad: Los cambios de estado
provocados por una transacción son atómicos.
Consistencia: Una transacción es una transformación de estado correcta.
Aislamiento (Isolation): Cada transacción debe ejecutarse en forma aislada sin importar que haya concurrencia.
Durabilidad: Una vez que una transacción ha finalizado con éxito, todos los cambios perduraran.
![Page 6: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/6.jpg)
Características AvanzadasVistas Consultas almacenadas como meta-datos
Integridad Referencial Claves foráneas
Transacciones Bloque de actualización. Varias actualizaciones o ninguna.
Ejemplo: Transferencia bancaria.Herencia Soporta herencia de tablas
![Page 7: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/7.jpg)
HerenciaEjemplo:
Sin Herencia Con HerenciaCREATE 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));
CREATE TABLE cities ( name text, population real, altitude int -- (in ft));
CREATE TABLE capitals ( state char(2)) INHERITS (cities);
![Page 8: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/8.jpg)
Instalación
MultiplataformaLink: 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
![Page 9: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/9.jpg)
Administraciónpsql: Herramienta de administración de línea
de comandos.# psql# psql -U username# psql -d bdname -U username
Creación de Base de datospsql> create database nombrebd -t template1
Creación de Rolespsql> create role nombreRol
Creación de Usuariospsql> create user nombreUsuario
![Page 10: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/10.jpg)
Administración (1)Rol: Entidad que puede poseer objetos de base de
datos y privilegiosUsuario: 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 organización y
administración.Crear una base de datos para un usuario
psql> create database nombrebd owner nombreusuario;
![Page 11: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/11.jpg)
Herramientas gráficasPgAdmin OpenSource - BSD Muy utilizado Completa
PhpPgAdmin Herramienta basada en web OpenSource - GPL
EMS PostgreSQL Manager Licencia – Costo (desde 60 U$S) Completa Funciones de importación y exportación en varios
formatos
![Page 12: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/12.jpg)
PgAdmin
![Page 13: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/13.jpg)
Tipos de datosNativos Numéricos Monetarios Texto Binarios Date/Time Boolean Network Address XML type .....
Soporta tipos definidos por el usuario
![Page 14: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/14.jpg)
FuncionesDesarrollando en la base. Sigue filosofía java. Todo es función. 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);
![Page 15: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/15.jpg)
Lenguajes procedurales
Sin duda una gran ventaja es poder programar en multiples lenguajes. Permite reutilizar código
pl/pgsql Programación en postgresql
pl/tcl Programación en C
pl/perl Programación en perl
pl/python Programación en Python
![Page 16: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/16.jpg)
RestriccionesAseguran la consistencia de la base de datos
Ayudan a que se cumplan las reglas del negocio.
Tipos: Claves primarias Claves únicas Claves foráneas
![Page 17: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/17.jpg)
SQL
Lenguaje de Definición de Datos (ddl)
Lenguaje de Manipulación de Datos (dml)
![Page 18: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/18.jpg)
Lenguaje de Definición de Datos(ddl)
Todo lo que sean objetos de base de datos Tablas
Create table tablename (col1 datatype); Restricciones
Alter table tablename add constraint .... Vistas
Create view viewname as (select col1 from tablename); Funciones
Create or replace function (par1 datatype,...) return void; Triggers
Create trigger ...
![Page 19: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/19.jpg)
Lenguaje de Manipulación de Datos(dml)
Inserción de datos Insert into tablename(col1,...) values (val1,...);
Eliminación de datos Delete from tablename where col1=val1;
Actualización de datos Update tablename set col1=val2 where col1=val1;
![Page 20: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/20.jpg)
Muestra de ejemplos de Script's
![Page 21: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/21.jpg)
SQL - Tipsselect *... Ventaja:
Selecciona todas las columnas de una tabla. Útil solo cuando no se conoce o no se recuerda la estructura de una determinada tabla.
Desventajas: 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. Recomendación
Nombrar todas las columnas que deben ser retornadas.
![Page 22: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/22.jpg)
SQL – Tips (2)Utilización de aliasselect nombre
from tabla1, tabla2;
select t1.nombre,t2.nombre
from tabla1 t1, tabla2 t2where t1.id=t2.id;
No puede determinarse a que tabla corresponde la columna nombre
SimplicidadFacil lecturaCorrectamente realizada
![Page 23: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/23.jpg)
Parte II
![Page 24: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/24.jpg)
SeguridadSeguridad Otorgar permisos a usuarios Otorgar permisos a roles
Modos de conexión (arch. pg_hba.conf) Confiable (trust) Cifrada (md5)
Modo de Servidor (arch. postgres.conf) Local Remoto
![Page 25: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/25.jpg)
Archivos de PostgreSQL
pg_hba.conf# TYPE DATABASE USER IP-ADDRESS IP-MASK METHODhost all all 127.0.0.1 255.255.255.255 trusthost all all 192.168.11.0 255.255.255.0 md5host all all 192.168.12.0 255.255.255.0 reject
postgres.conf#listen='*'listen='localhost'
![Page 26: Introducción a PostgreSql](https://reader030.fdocumento.com/reader030/viewer/2022013105/557b495bd8b42a13388b4dd6/html5/thumbnails/26.jpg)
Backup y restauraciónBackup pg_dump:
Utilidad para realización de backup de una base de datos http://www.postgresql.org/docs/8.3/static/app-pgdump.html
pg_dumpall: Utilidad para realización 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