Servicio de: Administración de Base de Datos PostgreSQL.

 
PostgreSQL es un SGBD relacional orientado a objetos y libre, publicado bajo la licencia BSD.

Como muchos otros proyectos de código abierto, el desarrollo de PostgreSQL no es manejado por una empresa y/o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre y/o apoyados por organizaciones comerciales. Dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group).

Nombre del producto

El uso de caracteres en mayúscula en el nombre PostgreSQL puede confundir a algunas personas a primera vista. Las distintas pronunciaciones de "SQL" pueden llevar a confusión. Los desarrolladores de PostgreSQL lo pronuncian /po?st ???s kju? ?l/;. Es también común oír abreviadamente como simplemente "Postgres", el que fue su nombre original. Debido a su soporte del estándar SQL entre la mayor parte de bases de datos relacionales, la comunidad consideró cambiar el nombre al anterior Postgres. Sin embargo, el PostgreSQL Core Team anunció en 2007 que el producto seguiría llamándose PostgreSQL. El nombre hace referencia a los orígenes del proyecto como la base de datos "post-Ingres", y los autores originales también desarrollaron la base de datos Ingres.

Algunas de sus principales características son, entre otras:

Alta concurrencia

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 como una acción específica que se realiza de acuerdo a un evento, cuando éste ocurra 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
    • La funcion no es correcta


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.
  • Soporte para transacciones distribuidas. Permite a PostgreSQL integrarse en un sistema distribuido formado por varios recursos (p.ej, una base de datos PostgreSQL, otra Oracle, una cola de mensajes IBM MQ JMS y un ERP SAP) gestionado por un servidor de aplicaciones donde el éxito ("commit") de la transacción globlal es el resultado del éxito de las transacciones locales.

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 (similar al PL/SQL de oracle).
  • C.
  • C++.
  • 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).

Ventajas

  • Seguridad en terminos generales
  • Integridad en BD: restricciones en el dominio
  • Integridad referencial
  • Afirmaciones (Assertions)
  • Disparadores (Tiggers)
  • Autorizaciones
  • Conexión a DBMS
  • Transacciones y respaldos