1. CaracterIsticas de PostgreSQL

1. CaracterIsticas de PostgreSQL Dataprix 19 Octubre, 2009 - 10:09

En este apartado comentaremos las características más relevantes de PostgreSQL, un SGBD con soporte para objetos. Comentaremos tanto las prestaciones de PostgreSQL más interesantes o destacadas, como las limitaciones en su diseño o en la implementación de los estándares SQL.

También es interesante conocer un poco la historia de PostgreSQL, ya que tanto por las personas que han participado en su desarrollo como por su relación con otros gestores de bases de datos, nos ayudará a tener una mejor visión de la evolución del mismo.

 

1.1. Breve historia

1.1. Breve historia Dataprix 19 Octubre, 2009 - 10:12

La historia de PostgreSQL se inicia en 1986 con un proyecto del profesor Michael Stonebraker y un equipo de desarrolladores de la Universidad Berkeley (California), cuyo nombre original era POSTGRES. En su diseño se incluyeron algunos conceptos avanzados en bases de datos y soporte parcial a la orientación a objetos.

POSTGRES fue comercializado por Illustra, una empresa que posteriormente formó parte de Informix (que comercializaba el conocido SGBD del mismo nombre, recientemente absorbida por IBM y su DB/2). Llegó un momento en que mantener el proyecto absorbía demasiado tiempo a los investigadores y académicos, por lo que en 1993 se liberó la versión 4.5 y oficialmente se dio por terminado el proyecto.

En 1994, Andrew Yu y Jolly Chen incluyeron SQL en Postgres para posteriormente liberar su código en la web con el nombre de Postgres95. El proyecto incluía múltiples cambios al código original que mejoraban su rendimiento y legibilidad.

En 1996 el nombre cambió a PostgreSQL retomando la secuencia original de versiones, por lo que se liberó la versión 6.0. En el año 2004 la última versión estable oficial es la 7.4.6, mientras que la versión 8.0 está ya en fase final de estabilización.

1.2. Prestaciones

1.2. Prestaciones Dataprix 19 Octubre, 2009 - 10:17
Los desarrolladores de proyectos     basados en software libre tienen       muy en cuenta PostgreSQL cuando  los requerimientos de un proyecto    exigen prestaciones de alto nivel.     

PostgreSQL destaca por su amplísima lista de prestaciones que lo hacen capaz de competir con cualquier SGBD comercial:

•    Está desarrollado en C, con herramientas como Yacc y Lex.

•    La API de acceso al SGBD se encuentra disponible en C, C++, Java, Perl, PHP, Python y TCL, entre otros.

•    Cuenta con un rico conjunto de tipos de datos, permitiendo además su extensión mediante tipos y operadores definidos y programados por el usuario.

•    Su administración se basa en usuarios y privilegios.

•    Sus opciones de conectividad abarcan TCP/IP, sockets Unix y sockets NT, además de soportar completamente ODBC.

•    Los mensajes de error pueden estar en español y hacer ordenaciones correctas con palabras acentuadas o con la letra ‘ñ’.

•    Es altamente confiable en cuanto a estabilidad se refiere.

•    Puede extenderse con librerías externas para soportar encriptación,  búsquedas por similitud fonética (soundex), etc.

•    Control de concurrencia multiversión, lo que  mejora sensiblemente las operaciones de bloqueo y transacciones en sistemas multiusuario.

•    Soporte  para  vistas,  claves  foráneas,  integridad  referencial,  disparadores, procedimientos almacenados, subconsultas y casi todos los tipos y operadores soportados en SQL92 y SQL99.

•    Implementación de algunas extensiones de orientación a objetos. En PostgreSQL es posible definir un nuevo tipo de tabla a partir de otra previamente definida.

1.3. Limitaciones

1.3. Limitaciones Dataprix 19 Octubre, 2009 - 10:20

Las limitaciones de este tipo de gestores de bases de datos suelen identificarse muy fácilmente analizando las prestaciones que tienen previstas para las próximas versiones. Encontramos lo siguiente:

•    Puntos de recuperación dentro de transacciones. Actualmente, las transacciones abortan completamente si se encuentra un fallo durante su ejecución. La definición de puntos de recuperación permitirá                     recuperar  mejor transacciones complejas.

•    No soporta tablespaces para definir dónde almacenar la base de datos, el esquema, los índices, etc.

•    El soporte a orientación a objetos es una simple extensión que ofrece prestaciones como la herencia, no un soporte completo.