Introducción a la
                Arquitectura de
                      Postgres




@emalca          Ing. Eddie Malca Vicente
                   emalca@iluminatic.com
/iluminatic           emalca@gmail.com
Antes de elegir el SGBD

• Experiencia: ¿Tenemos alguna experiencia con otras bases
  de datos relacionales? ¿Estamos acostumbrados a la
  terminología utilizada ó conocemos algo de teoría de bases
  de datos relacionales?
• Tipo de uso: ¿Cómo vamos a utilizarla, en sistemas de
  producción, para desarrollar otros sistemas, para jugar y
  aprender SQL con ella?
• Tamaño del sistema: ¿Cual es el tamaño de las bases de
  datos que quereis administrar, las medidas en MB, GB, TB?
• Carga del sistema: ¿Cuantos usuarios van a utilizar el
  sistema y que concurrencia podemos esperar?
• Disponibilidad: ¿Cuales son los requisitos de disponibilidad
  (uptime) de nuestro sistema?
Qué es Postgres

• PostgreSQL es un sistema de gestión de bases de datos
  objeto-relacional, Open Source y distribuido bajo licencia
  BSD, con su código fuente disponible libremente.

• Es el sistema de gestión de bases de datos de código abierto
  más potente del mercado y en sus últimas versiones no tiene
  nada que envidiarle a otras bases de datos comerciales.

• Es una alternativa a otros sistemas de bases de datos de
  código abierto (como MySQL, Firebird y MaxDB), así como
  sistemas propietarios como Oracle o DB2.

                 www.postgresql.org
Características de Postgres

•   Instalación Ilimitada
•   Soporte
•   Ahorros en costo de operación
•   Estabilidad y Confiabilidad
•   Extensible
•   Multiplataforma
•   Diseñador para ambientes de alto volumen
•   Herramientas Gráficas de diseño y administración
•   Soporte SQL ANSI – Estándares ACID
•   Transacciones
•   Integridad Referencial
•   Múltiples Tipos de datos definidos
•   Soporte de tipos y funciones de usuario
•   Conectividad TCP/IP, ODBC, JDBC
•   Interfaz con diversos lenguajes de programación
Importante

• PostgreSQL utiliza un modelo cliente/servidor y usa
  multiprocesos en vez de multihilos para garantizar la
  estabilidad del sistema.

• Un fallo en uno de los procesos no afectará el resto y el
  sistema continuará funcionando.
Arquitectura Sistema Postgres
Sistema Postgres

• Aplicación cliente: Aplicación cliente que utiliza PostgreSQL
  como administrador de bases de datos. La conexión puede
  ocurrir via TCP/IP ó sockets locales.
• Demonio postmaster: Este es el proceso principal de
  PostgreSQL. Encargado de escuchar por un puerto/socket por
  conexiones entrantes de clientes. Tambien es el encargado
  de crear los procesos hijos que se encargaran de autentificar
  estas peticiones, gestionar las consultas y mandar los
  resultados a las aplicaciones clientes
• Ficheros de configuracion: Los 3 ficheros principales de
  configuración utilizados por PostgreSQL, postgresql.conf,
  pg_hba.conf y pg_ident.conf
Sistema Postgres

• Procesos hijos postgres: Procesos hijos que se encargan
  de autentificar a los clientes, de gestionar las consultas y
  mandar los resultados a las aplicaciones clientes
• PostgreSQL share buffer cache: Memoria compartida usada
  por POstgreSQL para almacenar datos en caché.
• Write-Ahead Log (WAL): Componente del sistema
  encargado de asegurar la integridad de los datos
  (recuperación de tipo REDO).
• Kernel disk buffer cache: Caché de disco del sistema
  operativo.
• Disco: Disco físico donde se almacenan los datos y toda la
  información necesaria para que PostgreSQL funcione.
El desarrollo de Postgres




         Tomado de http://www.postgresql.org.es/
Una comparativa práctica

                          MySQL       PostgreSQL SAP DB
Cumple con estándar
                           Media         Alta      -
SQL
Velocidad                Media/Alta     Media      -
Integridad de Datos         No            Si       Si
Seguridad                   Alta        Media      -
Soporte disparadores        No            Si       Si
Replicación                  Si           Si       -
Integridad Referencial      No            Si       Si
Transacciones                Si           Si       -
Backups funcionando          Si           Si       -
Soporte Unicode             No            Si       -
Límites de Postgres




         Tomado de http://www.postgresql.org.es/
Quiénes usan Postgres
Tomado de la presentación del Ing. Luis Guevara Alcalde – Gob. Reg. Lambayeque
Y en Perú
Tomado de la presentación del Ing. Luis Guevara Alcalde – Gob. Reg. Lambayeque



 •   Asociación de Empleados del BCP.
 •   Gobierno Regional del Callao
 •   Gobierno Regional de Lambayeque
 •   Prompyme
 •   Grupo Carolina
 •   CONCYTEC
 •   Universidad Nacional del Callao
 •   Y ahora la UPCI…
Enlaces Sugeridos

• http://www.postgresql.org (Sitio principal de PostgreSQL)

•   http://pgfoundry.org (Sitio de proyectos PostgreSQL)

• http://www.postgresql.org/about/awards (Reconocimientos)

• http://es.wikipedia.org/wiki/PostgreSQL

• http://www.postgresql.org.es
Introducción a la
                Arquitectura de
                      Postgres




@emalca          Ing. Eddie Malca Vicente
                   emalca@iluminatic.com
/iluminatic           emalca@gmail.com

Clase 2 - Arquitectura de Postgres

  • 1.
    Introducción a la Arquitectura de Postgres @emalca Ing. Eddie Malca Vicente emalca@iluminatic.com /iluminatic emalca@gmail.com
  • 2.
    Antes de elegirel SGBD • Experiencia: ¿Tenemos alguna experiencia con otras bases de datos relacionales? ¿Estamos acostumbrados a la terminología utilizada ó conocemos algo de teoría de bases de datos relacionales? • Tipo de uso: ¿Cómo vamos a utilizarla, en sistemas de producción, para desarrollar otros sistemas, para jugar y aprender SQL con ella? • Tamaño del sistema: ¿Cual es el tamaño de las bases de datos que quereis administrar, las medidas en MB, GB, TB? • Carga del sistema: ¿Cuantos usuarios van a utilizar el sistema y que concurrencia podemos esperar? • Disponibilidad: ¿Cuales son los requisitos de disponibilidad (uptime) de nuestro sistema?
  • 3.
    Qué es Postgres •PostgreSQL es un sistema de gestión de bases de datos objeto-relacional, Open Source y distribuido bajo licencia BSD, con su código fuente disponible libremente. • Es el sistema de gestión de bases de datos de código abierto más potente del mercado y en sus últimas versiones no tiene nada que envidiarle a otras bases de datos comerciales. • Es una alternativa a otros sistemas de bases de datos de código abierto (como MySQL, Firebird y MaxDB), así como sistemas propietarios como Oracle o DB2. www.postgresql.org
  • 4.
    Características de Postgres • Instalación Ilimitada • Soporte • Ahorros en costo de operación • Estabilidad y Confiabilidad • Extensible • Multiplataforma • Diseñador para ambientes de alto volumen • Herramientas Gráficas de diseño y administración • Soporte SQL ANSI – Estándares ACID • Transacciones • Integridad Referencial • Múltiples Tipos de datos definidos • Soporte de tipos y funciones de usuario • Conectividad TCP/IP, ODBC, JDBC • Interfaz con diversos lenguajes de programación
  • 5.
    Importante • PostgreSQL utilizaun modelo cliente/servidor y usa multiprocesos en vez de multihilos para garantizar la estabilidad del sistema. • Un fallo en uno de los procesos no afectará el resto y el sistema continuará funcionando.
  • 6.
  • 7.
    Sistema Postgres • Aplicacióncliente: Aplicación cliente que utiliza PostgreSQL como administrador de bases de datos. La conexión puede ocurrir via TCP/IP ó sockets locales. • Demonio postmaster: Este es el proceso principal de PostgreSQL. Encargado de escuchar por un puerto/socket por conexiones entrantes de clientes. Tambien es el encargado de crear los procesos hijos que se encargaran de autentificar estas peticiones, gestionar las consultas y mandar los resultados a las aplicaciones clientes • Ficheros de configuracion: Los 3 ficheros principales de configuración utilizados por PostgreSQL, postgresql.conf, pg_hba.conf y pg_ident.conf
  • 8.
    Sistema Postgres • Procesoshijos postgres: Procesos hijos que se encargan de autentificar a los clientes, de gestionar las consultas y mandar los resultados a las aplicaciones clientes • PostgreSQL share buffer cache: Memoria compartida usada por POstgreSQL para almacenar datos en caché. • Write-Ahead Log (WAL): Componente del sistema encargado de asegurar la integridad de los datos (recuperación de tipo REDO). • Kernel disk buffer cache: Caché de disco del sistema operativo. • Disco: Disco físico donde se almacenan los datos y toda la información necesaria para que PostgreSQL funcione.
  • 9.
    El desarrollo dePostgres Tomado de http://www.postgresql.org.es/
  • 10.
    Una comparativa práctica MySQL PostgreSQL SAP DB Cumple con estándar Media Alta - SQL Velocidad Media/Alta Media - Integridad de Datos No Si Si Seguridad Alta Media - Soporte disparadores No Si Si Replicación Si Si - Integridad Referencial No Si Si Transacciones Si Si - Backups funcionando Si Si - Soporte Unicode No Si -
  • 11.
    Límites de Postgres Tomado de http://www.postgresql.org.es/
  • 12.
    Quiénes usan Postgres Tomadode la presentación del Ing. Luis Guevara Alcalde – Gob. Reg. Lambayeque
  • 13.
    Y en Perú Tomadode la presentación del Ing. Luis Guevara Alcalde – Gob. Reg. Lambayeque • Asociación de Empleados del BCP. • Gobierno Regional del Callao • Gobierno Regional de Lambayeque • Prompyme • Grupo Carolina • CONCYTEC • Universidad Nacional del Callao • Y ahora la UPCI…
  • 14.
    Enlaces Sugeridos • http://www.postgresql.org(Sitio principal de PostgreSQL) • http://pgfoundry.org (Sitio de proyectos PostgreSQL) • http://www.postgresql.org/about/awards (Reconocimientos) • http://es.wikipedia.org/wiki/PostgreSQL • http://www.postgresql.org.es
  • 15.
    Introducción a la Arquitectura de Postgres @emalca Ing. Eddie Malca Vicente emalca@iluminatic.com /iluminatic emalca@gmail.com