lunes, 18 de febrero de 2013

Bases de datos: PostgreSQL

PostgreSQL PostgreSQL, o simplemente Postgres, es una base de datos relacional y orientada a objetos de código abierto y es una alternativa a MySQL en el desarrollo de proyectos web. Según sus desarrolladores 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 como Oracle o DB2.

PostgreSQL, que tiene versiones tanto para Windows como para Linux y Unix, utiliza un modelo cliente/servidor y usa multiprocesos para garantizar la estabilidad del sistema, de forma que un fallo en uno de los procesos no afecte al resto y el sistema continúe funcionando. Sus puntos fuertes son: estabilidad, potencia, robustez, facilidad de administración e implementación de estándares.


Caracterísicas:

Podríamos definir PostgreSQL como una base de datos Objeto-Relacional, ya que incorpora características tanto de las bases de datos orientadas a objetos como de las relacionales. Sus características más importantes son:

  • Integridad transaccional.
  • Integridad referencial (claves foráneas).
  • Extensibilidad de tipos de datos. Soporta de forma nativa gran cantidad de tipos de datos y permite definir nuevos.
  • Control de acceso multi-versión (MVCC), que permite que un proceso acceda a una tabla mientras otro la sobreescribe, sin necesidad de bloqueos.
  • Soporte completo al lenguaje SQL.
  • Restricciones (constraints).
  • Disparadores (triggers).
  • Reglas (rules).
  • Funciones/procedimientos almacenados (stored procedures).
  • Lenguaje de programacion PL/pgSQL (similar al PL/SQL de Oracle).
  • Numerosas APIs para programar en C/C++, Java, .Net, Python, Ruby, etc.
  • Soporte a juegos de caracteres internacionales.
  • Licencia BSD (código abierto).

Historia:

PostgreSQL tiene detrás una larga historia. El proyecto nació en 1986 en la Universidad de Berkeley como sucesor de uno anterior llamado Ingres, el cual fue a su vez uno de los primeros intentos de crear una base de datos relacional. Su nombre original fue Postgres (Post-Ingres) y fue pionera en muchos de los conceptos de bases de datos relacionales orientadas a objetos. El proyecto duró hasta 1994 y finalizó con el lanzamiento de la versión 4. Después de eso continuó siendo desarrollado como código abierto, ya que contaba con licencia BSD. En 1995 se le añadió soporte para el lenguaje SQL, naciendo Postgres95. Posteriormente en 1996 se le cambió el nombre al que tiene en la actualidad: PostreSQL. Con dicho cambio de nombre pretendía diferenciarse del proyecto original. Actualmente el proyecto va por la versión 9 y está dirigido por la comunidad PGDG (PostgreSQL Global Development Group). Como los demás proyectos de código libre se trata de una comunidad de desarrolladores que trabajan de forma desinteresada, altruista y libre, en ocasiones apoyados por organizaciones comerciales. Aquí podéis leer más información sobre la historia de PostgreSQL.


PostgreSQL frente a MySQL:

Tanto PostgreSQL como MySQL son gestores de bases de datos de código abierto y ambos comparten muchas características. Los expertos consideran que PostgreSQL es superior a MySQL porque incorpora de forma nativa gestión de transacciones, soporte a la integridad referencial y subconsultas. Además ofrece mejor tiempo de respuesta en bases de datos de gran tamaño. Sin embargo PostgreSQL carece de un conjunto de herramientas que permitan una fácil gestión de los usuarios y de las bases de datos que contenga el sistema. Por su parte los puntos fuertes de MySQL son su bajo consumo, siendo apto para ser ejecutados en máquinas de bajos recursos, su velocidad a la hora de realizar las operaciones (siempre que el número de registros no sea muy elevado) y la gran cantidad de herramientas de las que dispone. Además las últimas versiones de MySQL van incorporando algunas de las características de las que carecía como la integridad referencial.

MySQL es, con diferencia, el gestor de bases de datos más usado en el diseño de páginas web, disponiendo de numerosa documentación y multitud de herramientas de ayuda al programador. Debería ser por lo tanto la primera elección a la hora de escoger un gestor de bases de datos para un proyecto web. Sin embargo PostgreSQL es superior en muchos aspectos y debería ser tenido en cuenta en proyectos que requieran alta concurrencia o elevado volumen de datos.


Enlaces:

No hay comentarios:

Publicar un comentario