sábado, 14 de noviembre de 2009

PostgreSQL la BD de código abierto más avanzado del mundo

Sin duda, uno de los sistemas de gestión de bases de datos con mas actividad de desarrollo en el mercado es PostgreSQL, el cual ademas de ser Software Libre posee una licencia BSD que permite su utilización y manejo de su codigo en aplicaciones NO libres.
Si bien su uso no esta tan extendida como el MySql (el cual no es del todo libre) es una opción más que robusta y segura a las RDBMS comerciales, ademas de cumplir a cabalidad con el trabajo asignado.

Entre sus caracteristicas principales podemos citar:

  • Alta Concurrecia
Mediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus siglas en inglés) PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visión consistente de lo último a lo que se le hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas común en otras bases, eliminando la necesidad del uso de bloqueos explícitos.

  • Amplia variedad de tipos nativos
PostgreSQL provee nativamente soporte para:

* Números de precisión arbitraria.
* Texto de largo ilimitado.
* Figuras geométricas (con una variedad de funciones asociadas)
* Direcciones IP (IPv4 e IPv6).
* Bloques de direcciones estilo CIDR.
* Direcciones MAC.
* Arrays.

Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que pueden ser por completo indexables gracias a la infraestructura GiST de PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el proyecto PostGIS.
Otras características

* Claves ajenas también denominadas Llaves ajenas o Claves Foráneas (foreign keys).
* Disparadores (triggers): Un disparador o trigger se define en una acción especifica basada en algo ocurrente dentro de la base de datos. En PostgreSQL esto significa la ejecución de un procedimiento almacenado basado en una determinada acción sobre una tabla específica. Ahora todos los disparadores se definen por seis características:
El nombre del disparador o trigger
El momento en que el disparador debe arrancar
El evento del disparador deberá activarse sobre...
La tabla donde el disparador se activará
La frecuencia de la ejecución
La función que podría ser llamada

Entonces combinando estas seis características, PostgreSQL le permitirá crear una amplia funcionalidad a través de su sistema de activación de disparadores (triggers).

* Vistas.
* Integridad transaccional.
* Herencia de tablas.
* Tipos de datos y operaciones geométricas.

Funciones

Bloques de código que se ejecutan en el servidor. Pueden ser escritos en varios lenguajes, con la potencia que cada uno de ellos da, desde las operaciones básicas de programación, tales como bifurcaciones y bucles, hasta las complejidades de la programación orientada a objetos o la programación funcional.

Los disparadores (triggers en inglés) son funciones enlazadas a operaciones sobre los datos.

Algunos de los lenguajes que se pueden usar son los siguientes:

* Un lenguaje propio llamado [PL/PgSQL [1] [2](similar al PL/SQL de oracle).
* C.
* C++.
* Delphi
* Java PL/Java web.
* PL/Perl.
* plPHP.
* PL/Python.
* PL/Ruby.
* PL/sh.
* PL/Tcl.
* PL/Scheme.
* Lenguaje para aplicaciones estadísticas R por medio de PL/R.

PostgreSQL soporta funciones que retornan "filas", donde la salida puede tratarse como un conjunto de valores que pueden ser tratados igual a una fila retornada por una consulta (query en inglés).

Las funciones pueden ser definidas para ejecutarse con los derechos del usuario ejecutor o con los derechos de un usuario previamente definido. El concepto de funciones, en otros DBMS, son muchas veces referidas como "procedimientos almacenados" (stored procedures en inglés).

Podemos trabajar con postgresql desde Delphi Utilizando componentes Zeoslib o componentes UniDAC, PostgresDAC estos ultimos comerciales.

El soporte en línea con que cuenta esta herramienta es amplio. Desde el sitio web http://www.postgresql.org se puede descargar la ultima version instalable (8.4.1) para distintos sistemas operativos, windows, linux, mac, Unix etc, ademas de acceder a una amplia colección de documentos y manuales, capaces de resolver la mayoría de los problemas que se suelen confrontar. De ser necesaria más ayuda en el sitio, se encuentran los enlaces a las listas de correo, libros y grupos de usuarios.

En conclusión postgresQl es una alternativa seria a la hora de contar con un desarrollo que implique la utilización de un manejador de base de datos a la altura de las grandes marcas comerciales.

Saludos

Ing. Víctor J. Acosta L.