Postgres: La Base de Datos Empresarial de Software Libre

31
Postgres: La Base de Datos Empresarial de Software Libre Jaime Casanova 13 de noviembre de 2010 Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Transcript of Postgres: La Base de Datos Empresarial de Software Libre

Page 1: Postgres: La Base de Datos Empresarial de Software Libre

Postgres: La Base de Datos Empresarial deSoftware Libre

Jaime Casanova

13 de noviembre de 2010

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 2: Postgres: La Base de Datos Empresarial de Software Libre

¿Quién soy yo?

Permítanme presentarmeMiembro de la comunidad de PostgreSQL desde el 2004

Contacto Regional de PostgreSQL para el Ecuador

Beta-tester

Revisor de parches

Administrador del Grupo de Usuarios de PostgreSQL delEcuador: [email protected]

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 3: Postgres: La Base de Datos Empresarial de Software Libre

¿Qué es?

Es un Sistema Gestor de Bases de Datos libre de clase empresarial.

Licencia basada en BSD.

Mas de 20 años de investigación y desarrollo.

Se conforma al estándar SQL

Se ha ganado una fuerte reputación por su confiabilidad,estabilidad e integridad de datos (ACID).

Corre en varios SO incluyendo variantes de Unix, Linux, MacOS X y Windows.

De hecho, es el Sistema Gestor de Bases de Datos Open Source másavanzado del mundo.

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 4: Postgres: La Base de Datos Empresarial de Software Libre

¿Qué es?

Es un Sistema Gestor de Bases de Datos libre de clase empresarial.

Licencia basada en BSD.

Mas de 20 años de investigación y desarrollo.

Se conforma al estándar SQL

Se ha ganado una fuerte reputación por su confiabilidad,estabilidad e integridad de datos (ACID).

Corre en varios SO incluyendo variantes de Unix, Linux, MacOS X y Windows.

De hecho, es el Sistema Gestor de Bases de Datos Open Source másavanzado del mundo.

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 5: Postgres: La Base de Datos Empresarial de Software Libre

Comunidad

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 6: Postgres: La Base de Datos Empresarial de Software Libre

Límites

Max. Tam. Base de datos No hay límiteMax. Tam. Tabla 32 TBMax. Tam. Fila (Registro) 1.6 TBMax. Tam. Columna 1 GBNum. Filas x Tabla Determinado por el tam. de la filaNum. Columnas por Tabla 250 - 1600Num. Índices x Tabla No hay límite

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 7: Postgres: La Base de Datos Empresarial de Software Libre

Cumple con la norma ACID

AtomicidadManejo de transacciones: BEGIN, COMMIT/ROLLBACK,SAVEPOINT, 2PC

ConsistenciaRestricciones CHECK, NOT NULL, UNIQUE; llaves primarias,foráneas; triggers; valores defaults

Invisibilidad (Aislamiento)Manejo de concurrencia (MVCC)

DurabilidadRecuperación ante caídas (WAL)

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 8: Postgres: La Base de Datos Empresarial de Software Libre

Cumple con la norma ACID

AtomicidadManejo de transacciones: BEGIN, COMMIT/ROLLBACK,SAVEPOINT, 2PC

ConsistenciaRestricciones CHECK, NOT NULL, UNIQUE; llaves primarias,foráneas; triggers; valores defaults

Invisibilidad (Aislamiento)Manejo de concurrencia (MVCC)

DurabilidadRecuperación ante caídas (WAL)

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 9: Postgres: La Base de Datos Empresarial de Software Libre

Cumple con la norma ACID

AtomicidadManejo de transacciones: BEGIN, COMMIT/ROLLBACK,SAVEPOINT, 2PC

ConsistenciaRestricciones CHECK, NOT NULL, UNIQUE; llaves primarias,foráneas; triggers; valores defaults

Invisibilidad (Aislamiento)Manejo de concurrencia (MVCC)

DurabilidadRecuperación ante caídas (WAL)

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 10: Postgres: La Base de Datos Empresarial de Software Libre

Cumple con la norma ACID

AtomicidadManejo de transacciones: BEGIN, COMMIT/ROLLBACK,SAVEPOINT, 2PC

ConsistenciaRestricciones CHECK, NOT NULL, UNIQUE; llaves primarias,foráneas; triggers; valores defaults

Invisibilidad (Aislamiento)Manejo de concurrencia (MVCC)

DurabilidadRecuperación ante caídas (WAL)

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 11: Postgres: La Base de Datos Empresarial de Software Libre

Seguridades

Autenticación de clientes (pg_hba.conf)Usuario autenticado en el SOLDAPGSSAPISSPIKerberosCertificado SSL

A nivel de objetos de la base de datosGRANT y REVOKE de todos los tipos de objetosRoles y delegación de privilegiosFunciones SECURITY DEFINER y SECURITY INVOKER

AuditoríaRegistro de quien y cuando se ejecutaron sentencias (DML, DDL)table_log (http://pgfoundry.org/projects/tablelog)

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 12: Postgres: La Base de Datos Empresarial de Software Libre

Seguridades

Autenticación de clientes (pg_hba.conf)Usuario autenticado en el SOLDAPGSSAPISSPIKerberosCertificado SSL

A nivel de objetos de la base de datosGRANT y REVOKE de todos los tipos de objetosRoles y delegación de privilegiosFunciones SECURITY DEFINER y SECURITY INVOKER

AuditoríaRegistro de quien y cuando se ejecutaron sentencias (DML, DDL)table_log (http://pgfoundry.org/projects/tablelog)

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 13: Postgres: La Base de Datos Empresarial de Software Libre

Seguridades

Autenticación de clientes (pg_hba.conf)Usuario autenticado en el SOLDAPGSSAPISSPIKerberosCertificado SSL

A nivel de objetos de la base de datosGRANT y REVOKE de todos los tipos de objetosRoles y delegación de privilegiosFunciones SECURITY DEFINER y SECURITY INVOKER

AuditoríaRegistro de quien y cuando se ejecutaron sentencias (DML, DDL)table_log (http://pgfoundry.org/projects/tablelog)

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 14: Postgres: La Base de Datos Empresarial de Software Libre

Extensibilidad

Se pueden agregar mediante API SQL:Funciones (normales, de agregado, ventana) en varios lenguajesde programaciónTipos de datos (basados en tipos ya existentes, nuevos yenumeraciones)Casts (Conversiones)OperadoresMétodos de acceso (tipos de índices)

Contrib

http://pgfoundry.org

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 15: Postgres: La Base de Datos Empresarial de Software Libre

Extensibilidad en acción (Migrando una aplicación)

Creando un nuevo operadorCREATE OPERATOR + (PROCEDURE = textcat,LEFTARG = text,RIGHTARG = text,COMMUTATOR = +);

O un nuevo tipo de datosCREATE DOMAIN datetimeAS timestamp without time zone;

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 16: Postgres: La Base de Datos Empresarial de Software Libre

Extensibilidad en acción

Pool de conexionesPgPool

PgBouncer

ReplicaciónStreaming Replication (Integrado, Maestro-esclavo)

Slony I (Maestro-esclavo)

Skytools (Skype, maestro-esclavo)

Mammoth Replicator (CommandPrompt, Maestro-esclavo)

Bucardo (Multi maestro)

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 17: Postgres: La Base de Datos Empresarial de Software Libre

Extensibilidad en acción (Lenguajes procedurales)

Vienen en la distribución oficial:

PL/SQL

PL/pgSQL

PL/perl

PL/python

PL/tcl

Se pueden incorporar:

PL/sh

PL/R

PL/java

PL/scheme

PL/proxy

PL/php

PL/ruby

PL/lolcode

PL/lua (Alpha)

PL/pgPSM (ANSI) (Beta)Tambien se pueden hacer funciones en lenguaje C

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 18: Postgres: La Base de Datos Empresarial de Software Libre

Extensibilidad en acción (Lenguajes procedurales)

Vienen en la distribución oficial:

PL/SQL

PL/pgSQL

PL/perl

PL/python

PL/tcl

Se pueden incorporar:

PL/sh

PL/R

PL/java

PL/scheme

PL/proxy

PL/php

PL/ruby

PL/lolcode

PL/lua (Alpha)

PL/pgPSM (ANSI) (Beta)

Tambien se pueden hacer funciones en lenguaje C

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 19: Postgres: La Base de Datos Empresarial de Software Libre

Extensibilidad en acción (Lenguajes procedurales)

Vienen en la distribución oficial:

PL/SQL

PL/pgSQL

PL/perl

PL/python

PL/tcl

Se pueden incorporar:

PL/sh

PL/R

PL/java

PL/scheme

PL/proxy

PL/php

PL/ruby

PL/lolcode

PL/lua (Alpha)

PL/pgPSM (ANSI) (Beta)Tambien se pueden hacer funciones en lenguaje C

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 20: Postgres: La Base de Datos Empresarial de Software Libre

PostgreSQL (9.0)

Replicación integrada.

Hot Standby: Un servidor standby que acepta consultas de sololectura

Eliminación de OUTER JOIN cuando no son necesarios paraobtener ningún dato de la consulta

Privilegios predeterminados

Se pueden asignar permisos de forma masiva en un esquema

Parametros de funciones pasados por nombre. Ej: funcion(7 as b,5 as a)

Clausula DO: funciones anonimas

Triggers sobre columnas y triggers condicionales

Más mejoras en el optimizador

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 21: Postgres: La Base de Datos Empresarial de Software Libre

Estabilidad

Políticas. . . de no cambio de funcionalidad en versiones menores.

. . . de no cambio en la estructura interna de los archivos dePostgreSQL (catálogos, datafiles,WAL) en versiones menores.

http://www.pgbuildfarm.orgEl PostgreSQL build farm es un sistema distribuido para probar deforma automática los cambios realizados en el código fuente dePostgreSQL conforme vayan ocurriendo, en una gran variedad deplataformas.

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 22: Postgres: La Base de Datos Empresarial de Software Libre

Estabilidad

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 23: Postgres: La Base de Datos Empresarial de Software Libre

En el mundo (http://www.postgresql.org/about/users)

Moscow State University, Moscow, Russia

Sternberg Astronomical Institute, Russia

Texas Cooperative Extension

University of Alabama, Birmingham

University of California, Berkeley

University of New South Wales

University of Oslo, Norway

University of Sydney

University of Western Sydney

Charles University in Prague, Czech Republic

Université Saint-Joseph (USJ) in Lebanon

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 24: Postgres: La Base de Datos Empresarial de Software Libre

En el mundo (http://www.postgresql.org/about/users)

City of Garden Grove, California

National Physical Laboratory of India

The National Weather Service

Registre Francais des Emissions Polluantes

United Nations Children’s Fund

United Nations Industrial Development Organisation

U.S. Agency for International Development

U.S. Centers For Disease Control and Prevention

U.S. Department of Labor

U.S. General Services Administration

U.S. State Department

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 25: Postgres: La Base de Datos Empresarial de Software Libre

En el mundo (http://www.postgresql.org/about/users)

Debian

Afilias

Apple

Fujitsu

OmniTI

Red Hat

Yahoo! (versión modificada)

Cisco

Skype

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 26: Postgres: La Base de Datos Empresarial de Software Libre

En Latinoamérica

Siemens IT: proyecto Correo Argentina

Gobierno de la Ciudad de Buenos Aires

Americatel (Perú)

Camara de Comercio de Lima (Perú)

El portal de compras del estado (Perú)

Gobierno Regional Lambayeque (Perú)

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 27: Postgres: La Base de Datos Empresarial de Software Libre

En Ecuador

Instituto de Compras Públicas del Ecuador(http://www.compraspublicas.gov.ec)

La subsecretaría de informática del Ecuador: Quipux (sistema degestión documental)

La CNT (Corporación Nacional de Telecomunicaciones)

Municipio de Ibarra

La asamblea nacional constituyente

Superexito

El colegio salesiano Cristobal Colon lo usa para su sistemaacademico

PaloSanto Solutions (http://www.palosanto.com) lo usa para sussistemas de información gerencial

Tventas (http://www.tventas.com) esta implementandoadempiere con postgres

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 28: Postgres: La Base de Datos Empresarial de Software Libre

En Ecuador

El IGM (Instituto Geográfica Militar)

La SENACYT, Secretaría Nacional de Ciencia y Tecnología,utiliza PostgreSQL para su base de datos de proyectoscientíficos, tecnológicos y de innovación

Aerogal (http://www.aerogal.com.ec) utiliza postgres para susistema de reservas de pasajes

Sismode (http://www.sismode.com) usa adempiere con postgres

Sistema histórico contable y administrativo de 10 empresas deGrupo Eljuri

ERP Adempiere para Grupo Amazonas

ERP desarrollado desde 0 para Grupo Cervantes

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 29: Postgres: La Base de Datos Empresarial de Software Libre

Comunidad

Listas de [email protected] (español)

[email protected] (español)

[email protected] (inglés)

[email protected] (inglés)

. . . http://www.postgresql.org/support/submitbug

IRC en Freenode.net#postgresql

#postgresql-es

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 30: Postgres: La Base de Datos Empresarial de Software Libre

Comercial(http://www.postgresql.org/support/professional_support)

Internacional2ndQuadrant (http://www.2ndquadrant.com)

Command Prompt, Inc (http://www.commandprompt.com)

EnterpriseDB(http://www.enterprisedb.com/solutions/gotpostgresql.do)

PgExperts (http://www.pgexperts.com)

DBAS (http://www.dbas.com.ar)

dbExperts Tecnologia Ltda. (http://www.dbexperts.com.br)

EQ Soft Consultoría y Soporte EIRL (http://www.eqsoft.net)

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre

Page 31: Postgres: La Base de Datos Empresarial de Software Libre

Comercial(http://www.postgresql.org/support/professional_support)

EcuadorJaime Casanova ([email protected] |www.2ndquadrant.com)

Soporte Libre Ltd. (http://www.soportelibre.com)

Onuva Ecuador (http://www.onuva.com)

Jaime Casanova Postgres: La Base de Datos Empresarial de Software Libre