Postgres: La Base de Datos Empresarial de Software Libre 13 de noviembre de 2010
Quién soy yo? Permítanme presentarme Miembro 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 del Ecuador: ecpug@postgresql.org
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, Mac OS X y Windows.
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, Mac OS X y Windows. De hecho, es el Sistema Gestor de Bases de Datos Open Source más avanzado del mundo.
Comunidad
Límites Max. Tam. Base de datos No hay límite Max. Tam. Tabla 32 TB Max. Tam. Fila (Registro) 1.6 TB Max. Tam. Columna 1 GB Num. Filas x Tabla Determinado por el tam. de la fila Num. Columnas por Tabla 250-1600 Num. Índices x Tabla No hay límite
Cumple con la norma ACID Atomicidad Manejo de transacciones: BEGIN, COMMIT/ROLLBACK, SAVEPOINT, 2PC
Cumple con la norma ACID Atomicidad Manejo de transacciones: BEGIN, COMMIT/ROLLBACK, SAVEPOINT, 2PC Consistencia Restricciones CHECK, NOT NULL, UNIQUE; llaves primarias, foráneas; triggers; valores defaults
Cumple con la norma ACID Atomicidad Manejo de transacciones: BEGIN, COMMIT/ROLLBACK, SAVEPOINT, 2PC Consistencia Restricciones CHECK, NOT NULL, UNIQUE; llaves primarias, foráneas; triggers; valores defaults Invisibilidad (Aislamiento) Manejo de concurrencia (MVCC)
Cumple con la norma ACID Atomicidad Manejo de transacciones: BEGIN, COMMIT/ROLLBACK, SAVEPOINT, 2PC Consistencia Restricciones CHECK, NOT NULL, UNIQUE; llaves primarias, foráneas; triggers; valores defaults Invisibilidad (Aislamiento) Manejo de concurrencia (MVCC) Durabilidad Recuperación ante caídas (WAL)
Seguridades Autenticación de clientes (pg_hba.conf) Usuario autenticado en el SO LDAP GSSAPI SSPI Kerberos Certificado SSL
Seguridades Autenticación de clientes (pg_hba.conf) Usuario autenticado en el SO LDAP GSSAPI SSPI Kerberos Certificado SSL A nivel de objetos de la base de datos GRANT y REVOKE de todos los tipos de objetos Roles y delegación de privilegios Funciones SECURITY DEFINER y SECURITY INVOKER
Seguridades Autenticación de clientes (pg_hba.conf) Usuario autenticado en el SO LDAP GSSAPI SSPI Kerberos Certificado SSL A nivel de objetos de la base de datos GRANT y REVOKE de todos los tipos de objetos Roles y delegación de privilegios Funciones SECURITY DEFINER y SECURITY INVOKER Auditoría Registro de quien y cuando se ejecutaron sentencias (DML, DDL) table_log (http://pgfoundry.org/projects/tablelog)
Extensibilidad Se pueden agregar mediante API SQL: Funciones (normales, de agregado, ventana) en varios lenguajes de programación Tipos de datos (basados en tipos ya existentes, nuevos y enumeraciones) Casts (Conversiones) Operadores Métodos de acceso (tipos de índices) Contrib http://pgfoundry.org
Extensibilidad en acción (Migrando una aplicación) Creando un nuevo operador CREATE OPERATOR + ( PROCEDURE = textcat, LEFTARG = text, RIGHTARG = text, COMMUTATOR = + ); O un nuevo tipo de datos CREATE DOMAIN datetime AS timestamp without time zone;
Extensibilidad en acción Pool de conexiones PgPool PgBouncer Replicación Streaming Replication (Integrado, Maestro-esclavo) Slony I (Maestro-esclavo) Skytools (Skype, maestro-esclavo) Mammoth Replicator (CommandPrompt, Maestro-esclavo) Bucardo (Multi maestro)
Extensibilidad en acción (Lenguajes procedurales) Vienen en la distribución oficial: PL/SQL PL/pgSQL PL/perl PL/python PL/tcl
Extensibilidad en acción (Lenguajes procedurales) Se pueden incorporar: PL/sh PL/R Vienen en la distribución oficial: PL/java PL/SQL PL/scheme PL/pgSQL PL/proxy PL/perl PL/php PL/python PL/ruby PL/tcl PL/lolcode PL/lua (Alpha) PL/pgPSM (ANSI) (Beta)
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
PostgreSQL (9.0) Replicación integrada. Hot Standby: Un servidor standby que acepta consultas de solo lectura Eliminación de OUTER JOIN cuando no son necesarios para obtener 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
Estabilidad Políticas... de no cambio de funcionalidad en versiones menores.... de no cambio en la estructura interna de los archivos de PostgreSQL (catálogos, datafiles,wal) en versiones menores. http://www.pgbuildfarm.org El PostgreSQL build farm es un sistema distribuido para probar de forma automática los cambios realizados en el código fuente de PostgreSQL conforme vayan ocurriendo, en una gran variedad de plataformas.
Estabilidad
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
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
En el mundo (http://www.postgresql.org/about/users) Debian Afilias Apple Fujitsu OmniTI Red Hat Yahoo! (versión modificada) Cisco Skype
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ú)
En Ecuador Instituto de Compras Públicas del Ecuador (http://www.compraspublicas.gov.ec) La subsecretaría de informática del Ecuador: Quipux (sistema de gestió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 sistema academico PaloSanto Solutions (http://www.palosanto.com) lo usa para sus sistemas de información gerencial Tventas (http://www.tventas.com) esta implementando adempiere con postgres
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 proyectos científicos, tecnológicos y de innovación Aerogal (http://www.aerogal.com.ec) utiliza postgres para su sistema de reservas de pasajes Sismode (http://www.sismode.com) usa adempiere con postgres Sistema histórico contable y administrativo de 10 empresas de Grupo Eljuri ERP Adempiere para Grupo Amazonas ERP desarrollado desde 0 para Grupo Cervantes
Comunidad Listas de correo ecpug@postgresql.org (español) pgsql-es-ayuda@postgresql.org (español) pgsql-general@postgresql.org (inglés) pgsql-bugs@postgresql.org (inglés)... http://www.postgresql.org/support/submitbug IRC en Freenode.net #postgresql #postgresql-es
Comercial (http://www.postgresql.org/support/professional_support) Internacional 2ndQuadrant (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)
Comercial (http://www.postgresql.org/support/professional_support) Ecuador (jaime@2ndquadrant.com www.2ndquadrant.com) Soporte Libre Ltd. (http://www.soportelibre.com) Onuva Ecuador (http://www.onuva.com)