Cursos de PostgreSQL

39
1 www.emacs.com.ve www.emacs.com.ve Cursos de PostgreSQL 9.x Cursos de PostgreSQL 9.x

Transcript of Cursos de PostgreSQL

Page 1: Cursos de PostgreSQL

1 www.emacs.com.vewww.emacs.com.ve

Cursos de PostgreSQL 9.xCursos de PostgreSQL 9.x

Page 2: Cursos de PostgreSQL

2 Software Libre a tu alcance!Software Libre a tu alcance!

Agenda

Porque PostgreSQL?PostgreSQL vs OraclePorque PostgreSQL y no MSSQLEvaluando capacidadPasos para migrar a PostgreSQLTemas de Nivel 1Temas de Nivel 2Recomendaciones

Page 3: Cursos de PostgreSQL

3 Software Libre a tu alcance!Software Libre a tu alcance!

PostgreSQL es uno de los motores de bases de datos OpenSource más robustos delmercado. Sus principales características: seguridad, robustez, escalabilidad y altadisponibilidad ofrecen una solución de excelencia y funcionalidad en diferentesplataformas, Windows, Linux y Unix. Además de brindar múltiples elementos quepermiten administrar la información de una aplicación robusta, PostgreSQL ofrece laposibilidad de programar en forma modular, clara y eficiente a través de varioslenguajes de programación como lo son: PL/pgSQL, PL/perl, PL/python.Los cursos de base de datos relacionales se dividen en dos principales ramas:Administración y Programación. Los cursos de Administración tienen como finalidadcomprender los conceptos configuración y administración Bases de Datos y todas lastareas concernientes a un DBA (Data Base Administrador). Los cursos deProgramación, tienen como objetivo dominar el lenguaje de programacióntransaccional SQL (Structured Query Language) en el marco de un entorno cliente-servidor.

Page 4: Cursos de PostgreSQL

4 Software Libre a tu alcance!Software Libre a tu alcance!

¿Por qué PostgreSQL?

Instalación ilimitada Ahorros considerables en costos de operación Mejor soporte que los proveedores comerciales Estabilidad y confiabilidad legendarias Extensible Multiplataforma Diseñado para ambientes de alto volumen

Page 5: Cursos de PostgreSQL

5 Software Libre a tu alcance!Software Libre a tu alcance!

Porque PostgreSQL?

Page 6: Cursos de PostgreSQL

6 Software Libre a tu alcance!Software Libre a tu alcance!

Por que PostgreSQL?

Page 7: Cursos de PostgreSQL

7 Software Libre a tu alcance!Software Libre a tu alcance!

Porque PostgreSQL?

Page 8: Cursos de PostgreSQL

8 Software Libre a tu alcance!Software Libre a tu alcance!

Psql vs Isql

Page 9: Cursos de PostgreSQL

9 Software Libre a tu alcance!Software Libre a tu alcance!

Porque PostgreSQL?

La herencia de tablas permite aplicar el analisis y diseño orientado a objetivos (ADOO) y evitaria la necesidad de implementar Mapeo Objeto-Relacional (ORM). Por ejemplo propel o doctrine para PHP.create table persona (nombre varchar (30),direccion varchar (30));

create table estudiante (

carrera varchar(50),grupo char,grado int

inherits ( persona ) );

Page 10: Cursos de PostgreSQL

10 Software Libre a tu alcance!Software Libre a tu alcance!

PostgreSQL vs Oracle

PostgreSQL tiene 5 lenguajes procedurales a diferencia de oracle que solo tiene 1En postgreSQL es posible desarrollar tus propios tipos de datos, mientras que en oracle no.La herramientas de configuración de oracle son tal ves las mejores en el mercado.PostgreSQL (licencia BSD), Oracle (licencia comercial – oracle) . Oracle tiene muchos más parametros de configuración que postgre, sin embargo muchos de ellos son solo conocidos por la misma gente de oracle que manipulan solo si se recibe el soporte oficial de oracle.Oracle soporta consultas en paralelo cosa que postgre aun ho ha implementado

Page 11: Cursos de PostgreSQL

11 Software Libre a tu alcance!Software Libre a tu alcance!

Porque PostgreSQL y no Microsoft SQL?

Instalación ilimitadaAhorros considerables en costos de operaciónMejor soporte que los proveedores comercialesEstabilidad y confiabilidad legendariasExtensibleMultiplataformaDiseñado para ambientes de alto volumen

Page 12: Cursos de PostgreSQL

12 Software Libre a tu alcance!Software Libre a tu alcance!

Evaluando la capacidad

CARACTERISTICA

MSSQL2005/2008

POSTGRESQLv8/v9

Máximo de base de datos

524.272 TB ILIMITADO*

Máximo de tamaño de tabla

16 TB 32TB

Máximo de tamaño de registro

2 TB 1.6TB

Máximo de tamaño de campo

2Gb 1GB

Máximo de registros por Tabla

ILIMITADO* ILIMITADO*

Máximo de campos por tabla

1000 250 a 1600

Máximo de índices por tabla

999 ILIMITADO**Limitado por el espacio de almacenamiento disponible

Page 13: Cursos de PostgreSQL

13 Software Libre a tu alcance!Software Libre a tu alcance!

Pasos para migrar a PostgreSQL

Conocer la estructura de bases de datos (Entidad – Relacion)Manejar las similitudes o diferencias de tipos de datosRealizar volcado de MS-SQL Reconfigurar tablas, vistas y tipos de datos con postgreSQL.Reescribir funciones Transact-SQL a PL/pgSQL

Page 14: Cursos de PostgreSQL

14 www.emacs.com.vewww.emacs.com.ve

Administrador PostgreSQL Administrador PostgreSQL Nivel 1Nivel 1

Page 15: Cursos de PostgreSQL

15 Software Libre a tu alcance!Software Libre a tu alcance!

Temas Nivel 1

Introducción a PostgreSQLBase de datos relacionalesInstalación y primeros pasosCreación y manipulación de tablasManejo de datos y consultas simplesConsultas multitablas y resumenSubconsultasVistas y cursoresProgramación PL/pgSQL

Page 16: Cursos de PostgreSQL

16 Software Libre a tu alcance!Software Libre a tu alcance!

Introducción a PostgreSQL

Page 17: Cursos de PostgreSQL

17 Software Libre a tu alcance!Software Libre a tu alcance!

Base de datos relacionales

Page 18: Cursos de PostgreSQL

18 Software Libre a tu alcance!Software Libre a tu alcance!

Instalación y primeros pasos

Page 19: Cursos de PostgreSQL

19 Software Libre a tu alcance!Software Libre a tu alcance!

Creación y manipulacion de tablas

Crear y modificar tablas ( Alter table ..)herencia y OIDsRestricciones ( Add Contrainst)Indexación ( Create Index)Consultas (Select .. From..)Operadores, fechas, horas, Arrays y BLOB

Page 20: Cursos de PostgreSQL

20 Software Libre a tu alcance!Software Libre a tu alcance!

Manejo de datos y consultas simples

Sentencias INSERT, UPDATE, DELETE, DEFAULT.Consultas Select, From, Order By, Distinct, Top where.Condicionales ( Where )Funciones PostgreSQL ( upper, lower ..)

Page 21: Cursos de PostgreSQL

21 Software Libre a tu alcance!Software Libre a tu alcance!

Consultas multitablas y resumen

Page 22: Cursos de PostgreSQL

22 Software Libre a tu alcance!Software Libre a tu alcance!

Subconsultas

Ejemplo de subconsultas

SELECT numemp, nombre

FROM empleados

WHERE numemp = (SELECT rep FROM pedidos WHERE clie =

(SELECT numclie

FROM clientes WHERE nombre = 'Julia Antequera'))

SELECT numemp, nombre

FROM empleados

WHERE numemp = (SELECT rep FROM pedidos WHERE clie =

(SELECT numclie

FROM clientes WHERE nombre = 'Julia Antequera'))

Page 23: Cursos de PostgreSQL

23 Software Libre a tu alcance!Software Libre a tu alcance!

Vistas y cursores

Sentencia Create View...Sentencia Open .. For ...

declare cur1 refcursor;v_1 varchar (10) ;v_2 varchar (10) ;beginOPEN cur1 FOR execute('select * from mitabla');loop fetch cur1 into v_1, v_2; if not found then exit ; end if; RAISE NOTICE 'Valor 1(%)', v_1; RAISE NOTICE 'Valor 2(%)', v_2;end loop;close cur1;end;

Page 24: Cursos de PostgreSQL

24 Software Libre a tu alcance!Software Libre a tu alcance!

Programación PL/pgSQL

Oracle vs PostgreSQL

PL/SQL PL/pgSQL

PL/Java

PL/Perl

PL/Ruby

PL/Python

create language plpgsql;

Page 25: Cursos de PostgreSQL

25 www.emacs.com.vewww.emacs.com.ve

Administrador PostgreSQL Administrador PostgreSQL Nivel 2Nivel 2

Page 26: Cursos de PostgreSQL

26 Software Libre a tu alcance!Software Libre a tu alcance!

- Duración 10 minutos -

Temas Nivel 2

Arquitectura de PostgreSQLInstalación PersonalizadaTareas de Administración de PostgreSQLMonitorizacionSeguridadOptimización de consultasConcurrencia: Transacciones y bloqueosRol del administrador de bases de datos

Page 27: Cursos de PostgreSQL

27 Software Libre a tu alcance!Software Libre a tu alcance!

Arquitectura de PostgreSQL

Proceso

Subproceso

Memory Pool

Proceso 1 Proceso 2 Proceso 3

Postgres Postgres PostgresSubproceso Subproceso

PGSQLMSSQL

Page 28: Cursos de PostgreSQL

28 Software Libre a tu alcance!Software Libre a tu alcance!

Instalación personalizada

Compilación (configure, make, make install)Cluster de PostgreSQL (initdb)Servicio Postmaster, pg_ctlConfiguracion del archivo postgresql.conf

Listen_addressPort

Page 29: Cursos de PostgreSQL

29 Software Libre a tu alcance!Software Libre a tu alcance!

Entonación

Escritura anticipada del registro, Write-Ahead Logging (WAL).

pg_xlogMemoria Compartida - Shared Buffer

SHMMAXSHMALL

Almacenamiento en DiscoBloque de discosReindexVacuum/etc/fstab

Page 30: Cursos de PostgreSQL

30 Software Libre a tu alcance!Software Libre a tu alcance!

Tareas de administración de PostgreSQL

Copias de seguridadVolcado SQLpg_dumppg_dumpall

VacuumDesde SODesde SQLProblema del XID

Reindex

Page 31: Cursos de PostgreSQL

31 Software Libre a tu alcance!Software Libre a tu alcance!

Monitorización

Tipos de monitorizaciónAd-HocPreventiva

Uso de los discosSistema Linux

Funciones para bases de datosTablas del sistema

Parametros para estadisticaslog_parser_statlog_planner_stat

Page 32: Cursos de PostgreSQL

32 Software Libre a tu alcance!Software Libre a tu alcance!

Seguridad

Gestion de usuarios y privilegiosCreate userDrop userAlter userAlter group

PrivilegiosGrantRevoke

Protocolo SSL

Page 33: Cursos de PostgreSQL

33 Software Libre a tu alcance!Software Libre a tu alcance!

Optimización de consultas

Ejecución de consultas.Comando explain.Metodos de busqueda.

SeqScanIndexScanNestedLoopMergeJoinHashJoin

Nodos del plan de consulta.Optimización heuristica. Sistema GECO.Indices y particionamiento de tablas.

ParserParserParserParserSistema deSistema deReestrituraReestrituraSistema deSistema deReestrituraReestritura

OptimizadorOptimizadorOptimizadorOptimizador EjecutorEjecutorEjecutorEjecutorSQLSQL

Page 34: Cursos de PostgreSQL

34 Software Libre a tu alcance!Software Libre a tu alcance!

Concurrencia: transacciones y bloqueos

Técnica de control de concurrencia multiversion (MVCC)Reglas ACID

CARACTERISTICA

MSSQL POSTGRESQL

(A)TOMICY begin,end,rollback,savepoint

begin,end,rollback,savepoint

(C)ONSISTENCY Check, primary key, foreing key, unique.

Not null, check, unique, primary key match, partial

(I)SOLATION Block table MVCC

(D)URABILITY Transaction Log WAL (write Ahead Log)

Page 35: Cursos de PostgreSQL

35 Software Libre a tu alcance!Software Libre a tu alcance!

Concurrencia: transacciones y bloqueos

Atomicidad: asegura que la operación se ha realizad sea completada con exito sin quedar a medias.Consistencia: aplicación de reglas y directrices de integridad de la base de datos.Aislamiento: asegura que dos transacciones sobre la misma información nunca generará ningún tipo de error.Durabilidad: asegura no se podrá deshacer una operación aunque falle el sistema.

Page 36: Cursos de PostgreSQL

36 Software Libre a tu alcance!Software Libre a tu alcance!

Manejo de Concurrencia

EN RESUMENCon MVCC cada usuario obtiene una visión consistente de lo último a lo que se le hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas común en otras bases, eliminando la necesidad del uso de bloqueos explícitos

Page 37: Cursos de PostgreSQL

37 Software Libre a tu alcance!Software Libre a tu alcance!

Recomendaciones (I)

1ero. Conocer la estructura de bases de datos E/R para luego realizar la exportación del script de toda la Base de datos sin relaciones

2do. Con el script se realiza las conversiones necesarias en tipos de datos IDENTITY, DATETIME,VARCHAR.

3ero. Bajar la data del SGBD anterior a texto plano, tipo csv, es decir valores separados por comas.

4do. Usar el comando COPY.. FROM de PGSSQL para cargar a data desde los arhivos de texto a las tablas de PGSQL.

Page 38: Cursos de PostgreSQL

38 Software Libre a tu alcance!Software Libre a tu alcance!

Recomendaciones (II)

5to. Con todas las tablas y datos se pueden reconstruir las realaciones con herramientas como pgdesiner o dbvisualizer.

6to. Para los store prucedures será necesario sobrescribir la sintaxis de los procedimientos almacenados anteriores a a PL/pgSQL

7to. Realizar los ajustes o entonación del SGBD PostgreSQL para obtener un mejor rendimiento asi como la seguridad sobre los objetos de bases de datos.

Page 39: Cursos de PostgreSQL

39 Software Libre a tu alcance!Software Libre a tu alcance!

Más Información

Lic. Simón CastellanosGerente de Operaciones

Para mayor informacion puede escribirnos [email protected] o llamar al

0416-821-06-90 / 0212-576-02-91 o visitarnos a:

Av. Universidad, Edificio Centro de Parque Carabobo, Torre A, Piso 8 Oficina 812. Frente a la Estacion del Metro Parque

Carabobo. Caracas - Venezuela.