Foro # 3
SubTemas: ¿Como Funciona PostgreSQL?
Autor: Loly Gómez.
En 1986 otro equipo dirigido por Michael Stonebraker de Berkeley continuó el desarrollo del código de Ingres para crear un sistema de bases de datos objeto-relacionales llamado Postgres. En 1996, debido a un nuevo esfuerzo de código abierto y a la incrementada funcionalidad del software, Postgres fue renombrado a PostgreSQL, tras un breve periplo como Postgres95. El proyecto PostgreSQL sigue actualmente un activo proceso de desarrollo a nivel mundial gracias a un equipo de desarrolladores y contribuidores de código abierto.
¿Como Funciona PostgreSQL?
PostgreSQL se diseño como una base de datos orientada a objetos, es decir, una ORDBMS. Esto significa, que las tablas no son tablas, sino objetos, y las tuplas son instancias de ese En objeto. Puedes crear nuevos tipos de datos, hacer herencias entre objetos, PostgreSQL tiene transacciones, integridad referencial, vistas, y multitud de funcionalidades, pero es lento y pesado.
Han incorporado la llamada MVCC (multiversion concurrency control) con lo que los bloqueos de escritura actúan sólo en la sesión del cliente, no en las de los demás clientes. También tiene soporte de Full-Text-indexing a través de un trigger incluido en la distribución, han arreglado el límite de 8k por fila. Por fin es de 32k, Postgres usa un modelo cliente-servidor conocido como proceso por usuario una sesión de postgres consiste en los siguientes procesos cooperativos de Unix (programas):
Un proceso demonio supervisor (postmaster) La aplicación sobre la que trabaja el usuario (frontend, Ej.: psl) Uno o más servidores de base de datos en segundo plano(el mismo progreso postgres)Un Único postmaster controla una colección de bases de datos dadas en un Único host, debido a esto una colección de base de datos se suele llamar una instalación o un sitio, las aplicaciones de frontend que quieren acceder a una determinada base de datos de una instalación hacen llamadas a la librería. La librería envía peticiones de usuario a través del postmaster (como se establece una conexión), el cual en respuesta inicia un nuevo proceso en el servidor (backend) y conecta el proceso de frontend al nuevo servidor. A partir de este punto, el proceso de frontend y el servidor en backend se comunican sin la intervención del postmaster.
Aunque, el postmaster siempre se esta ejecutando, esperando peticiones, tanto de frontend como los de backend vienen y se van. La librería libpq permite a un Único proceso en frontend realizar múltiples conexiones a procesos en backend. Aunque, la aplicación frontend todavía es un proceso en un Único thread. Conexiones multithread entre el frontend y el backend no están soportadas de momento en libpq. Una implicación de esta arquitectura es que el postmaster y el backend siempre se ejecutan en la misma maquina (el servidor de base de datos), mientras que la aplicación en frontend puede aplicarse desde cualquier sitio.
Infografía
Definición de PostgreSQL:
http://softwarelibre.unsa.edu.ar/orglug/
Historia y Definición de PostgreSQL:
http://www.postgresql.org.mx/?q=node/6
PostgreSQL 8.1, características de la versión:
http://www.postgresql.org/about/press/presskit81.html.es
Tutorial de PostgreSQL:
Comparación entre diversos SMBD: