Introducción a PostgreSql

7,815 views

Published on

Introducción a PostgreSql - ORDBMS

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
7,815
On SlideShare
0
From Embeds
0
Number of Embeds
48
Actions
Shares
0
Downloads
249
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introducción a PostgreSql

  1. 1. Introducción a PostgreSQL A.U.S. - D.B.A. Martín Gomez tinchogomez@gmail.com
  2. 2. Agenda Que es? Propiedad ACID Características Avanzadas Instalación Administración Objetos Tipos de Datos Funciones Lenguajes procedurales SQL y Tips
  3. 3. 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.
  4. 4. 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
  5. 5. 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.
  6. 6. Características Avanzadas Vistas  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
  7. 7. Herencia Ejemplo: Sin Herencia Con Herencia CREATE TABLE capitals ( CREATE TABLE cities ( name text, name text, population real, population real, altitude int, -- (in ft) altitude int -- (in ft) state char(2) ); ); CREATE TABLE capitals ( CREATE TABLE non_capitals ( state char(2) name text, ) INHERITS (cities); population real, altitude int -- (in ft) );
  8. 8. Instalación 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
  9. 9. Administración psql: Herramienta de administración de línea de comandos. # psql # psql -U username # psql -d bdname -U username Creación de Base de datos psql> create database nombrebd -t template1 Creación de Roles psql> create role nombreRol  Creación de Usuarios psql> create user nombreUsuario
  10. 10. Administración (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 organización y administración. Crear una base de datos para un usuario psql> create database nombrebd owner nombreusuario;
  11. 11. Herramientas gráficas 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 importación y exportación en varios formatos
  12. 12. PgAdmin
  13. 13. Tipos de datos Nativos  Numéricos  Monetarios  Texto  Binarios  Date/Time  Boolean  Network Address  XML type  .....  Soporta tipos definidos por el usuario
  14. 14. Funciones Desarrollando 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);
  15. 15. 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
  16. 16. Restricciones Aseguran la consistencia de la base de datos Ayudan a que se cumplan las reglas del negocio. Tipos:  Claves primarias  Claves únicas  Claves foráneas
  17. 17. SQL Lenguaje de Definición de Datos (ddl) Lenguaje de Manipulación de Datos (dml)
  18. 18. 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 ...
  19. 19. 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;
  20. 20. Muestra de ejemplos de Script's
  21. 21. SQL - Tips select *...  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.
  22. 22. SQL – Tips (2) Utilización de alias select Nopuede determinarse a nombre from tabla1, tabla2; que tabla corresponde la columna nombre select Simplicidad Facil lectura t1.nombre,t2.nombre Correctamente realizada from tabla1 t1, tabla2 t2 where t1.id=t2.id;
  23. 23. Parte II
  24. 24. Seguridad Seguridad  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
  25. 25. Archivos de PostgreSQL pg_hba.conf # TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD host all all 127.0.0.1 255.255.255.255 trust host all all 192.168.11.0 255.255.255.0 md5 host all all 192.168.12.0 255.255.255.0 reject postgres.conf #listen='*' listen='localhost'
  26. 26. Backup y restauración Backup  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

×