PostgreSQL es un sistema de gestión de bases de datos objeto-relacional, distribuido bajo licencia BSD y 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.
PostgreSQL utiliza un modelo cliente/servidor y usa multiprocesos en vez de multi hilos para garantizar la estabilidad del sistema. Un fallo en uno de los procesos no afectará el resto y el sistema continuará funcionando.
Los componentes más importantes en un sistema PostgreSQL.
·Aplicación cliente: Esta es la 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. Es el 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
·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
A continuación teneis algunas de las características más importantes y soportadas por PostgreSQL:
·Es una base de datos 100% ACID
·Integridad referencial
·Tablespaces
·Nested transactions (savepoints)
·Replicación asincrónica/sincrónica / Streaming replication - Hot Standby
·Two-phase commit
·PITR - point in time recovery
·Copias de seguridad en caliente (Online/hot backups)
·Unicode
·Juegos de caracteres internacionales
·Regionalización por columna
·Multi-Version Concurrency Control (MVCC)
·Multiples métodos de autentificación
·Acceso encriptado via SSL
·Actualización in-situ integrada (pg_upgrade)
·SE-postgres
·Completa documentación
·Licencia BSD
·Disponible para Linux y UNIX en todas sus variantes (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64) y Windows 32/64bit.