• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Introducción a PostgreSql
 

Introducción a PostgreSql

on

  • 7,355 views

Introducción a PostgreSql - ORDBMS

Introducción a PostgreSql - ORDBMS

Statistics

Views

Total Views
7,355
Views on SlideShare
7,314
Embed Views
41

Actions

Likes
0
Downloads
212
Comments
0

3 Embeds 41

http://ucp-web20-tecnologia.blogspot.com 34
http://www.linkedin.com 6
http://www.blogger.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Introducción a PostgreSql Introducción a PostgreSql Presentation Transcript

    • Introducción a PostgreSQL A.U.S. - D.B.A. Martín Gomez tinchogomez@gmail.com
    • Agenda Que es? Propiedad ACID Características Avanzadas Instalación Administración Objetos Tipos de Datos Funciones Lenguajes procedurales SQL y Tips
    • 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.
    • 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
    • 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.
    • 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
    • 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) );
    • 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
    • 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
    • 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;
    • 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
    • PgAdmin
    • Tipos de datos Nativos  Numéricos  Monetarios  Texto  Binarios  Date/Time  Boolean  Network Address  XML type  .....  Soporta tipos definidos por el usuario
    • 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);
    • 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
    • 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
    • SQL Lenguaje de Definición de Datos (ddl) Lenguaje de Manipulación de Datos (dml)
    • 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 ...
    • 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;
    • Muestra de ejemplos de Script's
    • 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.
    • 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;
    • Parte II
    • 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
    • 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'
    • 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