SlideShare a Scribd company logo
1 of 26
Download to read offline
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

More Related Content

What's hot

Linux basic commands with examples
Linux basic commands with examplesLinux basic commands with examples
Linux basic commands with examplesabclearnn
 
Fundamentos programación
Fundamentos programaciónFundamentos programación
Fundamentos programaciónMilton Escobar
 
Diseño & Procesamiento de transacciones
Diseño & Procesamiento de transaccionesDiseño & Procesamiento de transacciones
Diseño & Procesamiento de transaccionesBlanca Parra
 
Bash shell
Bash shellBash shell
Bash shellxylas121
 
Sistema gestor de base de datos para moviles
Sistema gestor de base de datos para movilesSistema gestor de base de datos para moviles
Sistema gestor de base de datos para movilesajhr1995
 
Informix into the future13 july2017
Informix into the future13 july2017Informix into the future13 july2017
Informix into the future13 july2017Shawn Moe
 
JavaScript
JavaScriptJavaScript
JavaScriptJomicast
 
50 most frequently used unix linux commands (with examples)
50 most frequently used unix   linux commands (with examples)50 most frequently used unix   linux commands (with examples)
50 most frequently used unix linux commands (with examples)Rodrigo Maia
 
Bash Shell Scripting
Bash Shell ScriptingBash Shell Scripting
Bash Shell ScriptingRaghu nath
 
Python 101 breve introducción al lenguaje python
Python 101  breve introducción al lenguaje pythonPython 101  breve introducción al lenguaje python
Python 101 breve introducción al lenguaje pythonemilioferreyra
 

What's hot (20)

DML, DDL, DCL ,DRL/DQL and TCL Statements in SQL with Examples
DML, DDL, DCL ,DRL/DQL and TCL Statements in SQL with ExamplesDML, DDL, DCL ,DRL/DQL and TCL Statements in SQL with Examples
DML, DDL, DCL ,DRL/DQL and TCL Statements in SQL with Examples
 
Database Triggers
Database TriggersDatabase Triggers
Database Triggers
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
Linux basic commands with examples
Linux basic commands with examplesLinux basic commands with examples
Linux basic commands with examples
 
Fundamentos programación
Fundamentos programaciónFundamentos programación
Fundamentos programación
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Diseño & Procesamiento de transacciones
Diseño & Procesamiento de transaccionesDiseño & Procesamiento de transacciones
Diseño & Procesamiento de transacciones
 
Bash shell
Bash shellBash shell
Bash shell
 
Sistema gestor de base de datos para moviles
Sistema gestor de base de datos para movilesSistema gestor de base de datos para moviles
Sistema gestor de base de datos para moviles
 
Uso de threads en C#
Uso de threads en C#Uso de threads en C#
Uso de threads en C#
 
Informix into the future13 july2017
Informix into the future13 july2017Informix into the future13 july2017
Informix into the future13 july2017
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Firewall Logico
Firewall LogicoFirewall Logico
Firewall Logico
 
Capitulo 6
Capitulo 6Capitulo 6
Capitulo 6
 
50 most frequently used unix linux commands (with examples)
50 most frequently used unix   linux commands (with examples)50 most frequently used unix   linux commands (with examples)
50 most frequently used unix linux commands (with examples)
 
Bash Shell Scripting
Bash Shell ScriptingBash Shell Scripting
Bash Shell Scripting
 
Python 101 breve introducción al lenguaje python
Python 101  breve introducción al lenguaje pythonPython 101  breve introducción al lenguaje python
Python 101 breve introducción al lenguaje python
 
Basic Linux Internals
Basic Linux InternalsBasic Linux Internals
Basic Linux Internals
 

Similar to Introducción a PostgreSql

Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slonyJohanna Mendez
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slonyJohanna Mendez
 
Base de datos_-_material_didactico
Base de datos_-_material_didacticoBase de datos_-_material_didactico
Base de datos_-_material_didacticoenriquehot
 
Bd 2 1 fundamentos transact sql
Bd 2   1 fundamentos transact sqlBd 2   1 fundamentos transact sql
Bd 2 1 fundamentos transact sqlCarlos Lopez
 
Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0Marcos Ortiz Valmaseda
 
58517228 postgre sql-desarrolladoresbasico
58517228 postgre sql-desarrolladoresbasico58517228 postgre sql-desarrolladoresbasico
58517228 postgre sql-desarrolladoresbasicoLucia Zambrano Franco
 
Curso sql server_administracion
Curso sql server_administracionCurso sql server_administracion
Curso sql server_administracionSalvador Ramos
 
Fundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLFundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLcamposer
 
LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)Emanuel Calvo
 
04 Primeros pasos con my sql
04 Primeros pasos con my sql04 Primeros pasos con my sql
04 Primeros pasos con my sqltoniserna
 
Persistencia de un modelo de objetos
Persistencia de un modelo de objetosPersistencia de un modelo de objetos
Persistencia de un modelo de objetosJorge Ercoli
 
Unid2 transact sql 1
Unid2  transact sql 1Unid2  transact sql 1
Unid2 transact sql 1ALEXSILVARSM
 

Similar to Introducción a PostgreSql (20)

Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
Base de datos_-_material_didactico
Base de datos_-_material_didacticoBase de datos_-_material_didactico
Base de datos_-_material_didactico
 
Bd 2 1 fundamentos transact sql
Bd 2   1 fundamentos transact sqlBd 2   1 fundamentos transact sql
Bd 2 1 fundamentos transact sql
 
Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0
 
58517228 postgre sql-desarrolladoresbasico
58517228 postgre sql-desarrolladoresbasico58517228 postgre sql-desarrolladoresbasico
58517228 postgre sql-desarrolladoresbasico
 
Curso sql server_administracion
Curso sql server_administracionCurso sql server_administracion
Curso sql server_administracion
 
Fundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLFundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQL
 
Pg pool cluster postgresql
Pg pool cluster postgresqlPg pool cluster postgresql
Pg pool cluster postgresql
 
Practica1
Practica1Practica1
Practica1
 
Practica1
Practica1Practica1
Practica1
 
LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)
 
trabajo numero 3
trabajo numero 3trabajo numero 3
trabajo numero 3
 
04 Primeros pasos con my sql
04 Primeros pasos con my sql04 Primeros pasos con my sql
04 Primeros pasos con my sql
 
Persistencia de un modelo de objetos
Persistencia de un modelo de objetosPersistencia de un modelo de objetos
Persistencia de un modelo de objetos
 
Sistemas de gestión de base de datos
Sistemas de gestión de base de datosSistemas de gestión de base de datos
Sistemas de gestión de base de datos
 
Unid2 transact sql 1
Unid2  transact sql 1Unid2  transact sql 1
Unid2 transact sql 1
 
SMBD 2011
SMBD 2011SMBD 2011
SMBD 2011
 
SMBD 2011
SMBD 2011SMBD 2011
SMBD 2011
 

Introducción a PostgreSql

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