PostgreSQL es un sistema de gestión de base de datos relacional orientada 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.
Características
- 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
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 integrase en
un sistema distribuido formado por varios recursos
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).
No hay comentarios:
Publicar un comentario