cursos de postgresql
TRANSCRIPT
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 [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.