Cursos de PostgreSQL

Post on 13-Jun-2015

242 views 4 download

Transcript of Cursos de PostgreSQL

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

Cursos de PostgreSQL 9.xCursos de PostgreSQL 9.x

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

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.

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

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

Porque PostgreSQL?

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

Por que PostgreSQL?

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

Porque PostgreSQL?

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

Psql vs Isql

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 ) );

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

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

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

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

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

Administrador PostgreSQL Administrador PostgreSQL Nivel 1Nivel 1

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

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

Introducción a PostgreSQL

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

Base de datos relacionales

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

Instalación y primeros pasos

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

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 ..)

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

Consultas multitablas y resumen

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'))

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;

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;

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

Administrador PostgreSQL Administrador PostgreSQL Nivel 2Nivel 2

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

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

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

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

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

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

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

Seguridad

Gestion de usuarios y privilegiosCreate userDrop userAlter userAlter group

PrivilegiosGrantRevoke

Protocolo SSL

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

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)

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.

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

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.

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.

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 aemacs.computacion@gmail.com 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.