Sunteți pe pagina 1din 13

Anlisis y Optimizacin de

Bases de Datos

Profesor:
Jonnathan Hernndez

Proyecto PostgreSQL

Alumno:
Waylon Hadden James

21 de Octubre de 2013

Contenido

Introduccion

Que es PostgreSQL?
PostGreSQL es un sistema de gestin de bases de datos objeto-relacional (ORDBMS) basado en
el proyecto POSTGRES, de la universidad de Berkeley. El director de este proyecto es el
profesor Michael Stonebraker, y fue patrocinado por Defense Advanced Research Projects
Agency (DARPA), el Army Research Office (ARO), el National Science Foundation (NSF), y
ESL, Inc.
PostGreSQL es una derivacin libre (OpenSource) de este proyecto, y utiliza el lenguaje
SQL92/SQL99, as como otras caractersticas que comentar ms adelante.
Fue el pionero en muchos de los conceptos existentes en el sistema objeto-relacional actual,
incluido, ms tarde en otros sistemas de gestin comerciales. PostGreSQL es un sistema objetorelacional, ya que incluye caractersticas de la orientacin a objetos, como puede ser la herencia,
tipos de datos, funciones, restricciones, disparadores, reglas e integridad transaccional. A pesar
de esto, PostGreSQL no es un sistema de gestin de bases de datos puramente orientado a
objetos.

Historia
PostgreSQL ha tenido una larga evolucin, la cual se inicia en 1982 con el proyecto Ingres en la
Universidad de Berkeley. Este proyecto, liderado por Michael Stonebraker, fue uno de los
primeros intentos en implementar un motor de base de datos relacional. Despus de haber
trabajado un largo tiempo en Ingres y de haber tenido una experiencia comercial con l mismo,
Michael decidi volver a la Universidad en 1985 para trabajar en un nuevo proyecto sobre la
experiencia de Ingres, dicho proyecto fue llamado post-ingres o simplemente POSTGRES.
El proyecto post-ingres pretenda resolver los problemas con el modelo de base de datos
relacional que haban sido aclarados a comienzos de los aos 1980. El principal de estos
problemas era la incapacidad del modelo relacional de comprender "tipos", es decir,
combinaciones de datos simples que conforman una nica unidad. Actualmente estos son
llamados objetos. Se esforzaron en introducir la menor cantidad posible de funcionalidades para
completar el soporte de tipos. Estas funcionalidades incluan la habilidad de definir tipos, pero
tambin la habilidad de describir relaciones - las cuales hasta ese momento eran ampliamente
utilizadas pero mantenidas completamente por el usuario. En Postgres la base de datos
comprenda las relaciones y poda obtener informacin de tablas relacionadas utilizando reglas.
Postgres us muchas ideas de Ingres pero no su cdigo.
La siguiente lista muestra los hitos ms importantes en la vida del proyecto Postgres.

1986: se publicaron varios documentos que describan las bases del sistema.
1988: ya se contaba con una versin utilizable.

1989: el grupo publicaba la versin 1 para una pequea comunidad de usuarios.


1990: se publicaba la versin 2 la cual tena prcticamente reescrito el sistema de reglas.
1991: publicacin de la versin 3, esta aada la capacidad de mltiples motores de
almacenamiento.
1993: crecimiento importante de la comunidad de usuarios, la cual demandaba ms
caractersticas.
1994: despus de la publicacin de la versin 4, el proyecto termin y el grupo se
disolvi.

Despus de que el proyecto POSTGRES' terminara, dos graduados de la universidad, Andrew


Yu y Jolly Chen, comenzaron a trabajar sobre el cdigo de POSTGRES, esto fue posible dado
que POSTGRES estaba licenciado bajo la BSD, y lo primero que hicieron fue aadir soporte
para el lenguaje SQL a POSTGRES, dado que anteriormente contaba con un intrprete del
lenguaje de consultas QUEL (basado en Ingres), creando as el sistema al cual denominaron
Postgres95.
Para el ao 1996 se unieron al proyecto personas ajenas a la Universidad como Marc Fournier de
Hub.Org Networking Services, Bruce Momjian y Vadim B. Mikheev quienes proporcionaron el
primer servidor de desarrollo no universitario para el esfuerzo de desarrollo de cdigo abierto y
comenzaron a trabajar para estabilizar el cdigo de Postgres95.
En el ao 1996 decidieron cambiar el nombre de Postgres95 de tal modo que refleje la
caracterstica del lenguaje SQL y lo terminaron llamando PostgreSQL, cuya primera versin de
cdigo abierto fue lanzada el 1 de agosto de 1996. La primera versin formal de PostgreSQL
(6.0) fue liberada en enero de 1997. Desde entonces, muchos desarrolladores entusiastas de los
motores de base de datos se unieron al proyecto, coordinaron va Internet y entre todos
comenzaron a incorporar muchas caractersticas al motor.
Aunque la licencia permita la comercializacin de PostgreSQL, el cdigo no se desarroll en
principio con fines comerciales, algo sorprendente considerando las ventajas que PostgreSQL
ofreca. La principal derivacin se origin cuando Paula Hawthtorn (un miembro del equipo
original de Ingres que se pas a Postgres) y Michael Stonebraker conformaron Illustra
Information Technologies para comercializar Postgres.
En 2000, ex inversionistas de Red Hat crearon la empresa Great Bridge para comercializar
PostgreSQL y competir contra proveedores comerciales de bases de datos. Great Bridge auspici
a varios desarrolladores de PostgreSQL y don recursos de vuelta a la comunidad, pero a fines
de 2001 cerr debido a la dura competencia de compaas como Red Hat y pobres condiciones
del mercado.
En 2001, Command Prompt, Inc. lanz Mammonth PostgreSQL, la ms antigua distribucin
comercial de PostgreSQL. Contina brindando soporte a la comunidad PostgreSQL a travs del

auspicio de desarrolladores y proyectos, incluyendo PL/Perl, PL/php y el alojamiento de


proyectos de comunidades como PostgreSQL Build Farm.
En enero de 2005, PostgreSQL recibi apoyo del proveedor de base de datos Pervasive Software,
conocido por su producto Btrieve que se utilizaba en la plataforma Novell Netware, Pervasive
anunci soporte comercial y participacin comunitaria y logr algo de xito. Sin embargo, en
julio de 2006 dej el mercado de soporte de PostgreSQL.
A mediados de 2005 otras dos compaas anunciaron planes para comercializar PostgreSQL con
nfasis en nichos separados de mercados. EnterpriseDB aadi funcionalidades que le permitan
a las aplicaciones escritas para trabajar con Oracle ser ms fciles de ejecutar con PostgreSQL.
Greenplum contribuy mejoras directamente orientadas a aplicaciones de Data Warehouse e
Inteligencia de negocios, incluyendo el proyecto BizGres.
En octubre de 2005, John Loiacono, vicepresidente ejecutivo de software en Sun Microsystems
coment: "No estamos yendo tras el OEM de Microsoft pero estamos viendo a PostgreSQL
ahora", aunque no se dieron especificaciones en ese momento. Para noviembre de 2005, Sun
Solaris 10 (lanzamiento 6/06) inclua PostgreSQL.
En agosto de 2007 EnterpriseDB anunci el Postgres Resource Center y EnterpriseDB Postgres,
diseados para ser una completamente configurada distribucin de PostgreSQL incluyendo
muchos mdulos contribuidos y agregados. EnterpriseDB Postgres fue renombrado Postgres Plus
en marzo de 2008.
El proyecto PostgreSQL contina haciendo lanzamientos principales anualmente y lanzamientos
menores de reparacin de bugs, todos disponibles bajo la licencia BSD, y basados en
contribuciones de proveedores comerciales, empresas importantes y programadores de cdigo
abierto mayormente.

Caracteristicas de PostgreSQL
Algunas de sus principales caractersticas son:

Alta concurrencia. Mediante un sistema denominado MVCC (Acceso concurrente


multiversin, por sus siglas en ingls) PostgreSQL permite que mientras un proceso
escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada
usuario obtiene una visin consistente de lo ltimo a lo que se le hizo commit. Esta
estrategia es superior al uso de bloqueos por tabla o por filas comn en otras bases,
eliminando la necesidad del uso de bloqueos explcitos.
Amplia variedad de tipos nativos. PostgreSQL provee nativamente soporte para:
o Nmeros de precisin arbitraria.
o Texto de largo ilimitado.

o Figuras geomtricas (con una variedad de funciones asociadas)


o Direcciones IP (IPv4 e IPv6).
o Bloques de direcciones estilo CIDR (Classless Inter-Domain Routing (CIDR
Enrutamiento entre dominios sin Clases) se introdujo en 1993 por IETF y
representa la ltima mejora en el modo como se interpretan las direcciones IP. Su
introduccin permiti una mayor flexibilidad al dividir rangos de direcciones IP
en redes separadas de las cada vez ms escasas direcciones IPv4)
o Direcciones MAC.
o Incorpora una estructura de datos Array.
Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que pueden ser por
completo indexables gracias a la infraestructura GiST (biblioteca de grficos cientficos
desarrollada en lenguaje de programacin C) de PostgreSQL. Algunos ejemplos son los tipos
de datos GIS creados por el proyecto PostGIS.
Otras caractersticas son:

Cdigo Abierto. PostgreSQL es un proyecto de cdigo abierto, esto quiere decir que tu
puedes obtener el cdigo fuente, usar el programa, y modificarlo libremente sin las
limitaciones de las propiedades de autor.
DBMS Objeto-Relacional. PostgreSQL aproxima los datos a un modelo objetorelacional, y es capaz de manejar complejas rutinas y reglas. Ejemplos de su avanzada
funcionalidad son consultas SQL declarativas, control de concurrencia multi-versin,
soporte multi-usuario, transacciones, optimizacin de consultas, herencia, y arrays.
Altamente Extensible. PostgreSQL soporta operadores, funcionales mtodos de acceso y
tipos de datos definidos por el usuario.
Soporte SQL Comprensivo. PostgreSQL soporta la especificacin SQL99 e incluye
caractersticas avanzadas tales como las uniones (joins) SQL92.
Integridad Referencial. PostgreSQL soporta integridad referencial, la cual es utilizada
para garantizar la validez de los datos de la base de datos.
API Flexible. La flexibilidad del API de PostgreSQL ha permitido a los vendedores
proporcionar soporte al desarrollo fcilmente para el RDBMS PostgreSQL. Estas
interfaces incluyen Object Pascal, Python, Perl, PHP, ODBC, Java/JDBC, Ruby, TCL,
C/C++, y Pike.
Lenguajes Procedurales. PostgreSQL tiene soporte para lenguajes procedurales
internos, incluyendo un lenguaje nativo denominado PL/pgSQL. Este lenguaje es
comparable al lenguaje procesal de Oracle, PL/SQL. Otra ventaja de PostgreSQL es su
habilidad para usar Perl, Python, o TCL como lenguaje procesal embebido.
Cliente/Servidor. PostgreSQL usa una arquitectura proceso-por-usuario cliente/servidor.
Esta es similar al mtodo del Apache 1.3.x para manejar procesos. Hay un proceso

maestro que se ramifica para proporcionar conexiones adicionales para cada cliente que
intente conectar a PostgreSQL.
Savepoints. Permite hacer un rolled back sin tener que repetir la transaccin entera.
Point in Time Recovery. Permite salvar el estado de la DB en momentos concretos, para
su posterior recuperacin.
Tablespaces. Permite destinar discos fsicos a un ndice o a una tabla concreta.
Improved Memory and I/O. Optimizaciones en la velocidad de ejecucin y en el
consumo de memoria de la aplicacin.

Ventajas de PostgreSQL

Instalacin Ilimitada. Con PostgreSQL, nadie puede demandarlo por violar acuerdos de
licencia, puesto que no hay costo asociado a la licencia del software.
Ahorros considerables en costos de operacin. PostgreSQL ha sido diseado y creado
para tener un mantenimiento y ajuste mucho menor que otros productos, conservando
todas las caractersticas, estabilidad y rendimiento.
Estabilidad y Confiabilidad Legendarias. Es extremadamente comn que compaas
reporten que PostgreSQL nunca ha presentado cadas en varios aos de operacin de alta
actividad. Ni una sola vez. Simplemente funciona.
Extensible. El cdigo fuente est disponible para todos sin costo. Si su equipo necesita
extender o personalizar PostgreSQL de alguna manera, pueden hacerlo con un mnimo
esfuerzo, sin costos adicionales.
Multiplataforma. PostgreSQL est disponible en casi cualquier Unix (34 plataformas en
la ltima versin estable), y ahora en versin nativa para Windows.
Diseado para ambientes de alto volumen. PostgreSQL usa una estrategia de
almacenamiento de filas llamada MVCC para conseguir una mejor respuesta en
ambientes de grandes volmenes. Los principales proveedores de sistemas de bases de
datos comerciales usan tambin esta tecnologa, por las mismas razones.
Herramientas grficas de diseo y administracin de BD. Existen varias herramientas
grficas de alta calidad para administrar las bases de datos (pgAdmin , pgAccess) y para
hacer diseo de bases de datos (Tora , Data Architect).

Desventajas de PostgreSQL

Sin experticia, configurar llega a ser un caos.


Es fcil de vulnerar sin proteccion adecuada.
El motor MyISAM es instalado por defecto y carece de capacidades de integridad
relacional.

InnoDB genera mucho footprint en memoria al indizar.


El toolset empresarial tiene un costo adicional por suscripcin anual.
Realizar revisiones llegar a ser una labor manual y tediosa para el DBA.
Reducida cantidad de tipos de datos.

Herramientas para la Administracin de PostgreSQL


Estas son algunas de las herramientas que se usan para administrar las BD:
PHPPgAdmin
PHPPgAdmin es una poderosa herramienta de administracin basada en un interfaz Web para
bases de datos PostgreSQL. Adems de la funcionalidad bsica, dispone de soporte para
procedimientos almacenados, triggers y vistas. Las versiones de punta van mano a mano con el
desarrollo del servidor PostgreSQL. Esta versin es una de la ms famosa de los administradores
GUI para PostgreSQL.

PSQL
Es la herramienta cannica para la ejecucin de sentencias SQL a travs del shell del SO. Es una
herramienta de tipo front end que permite describir sentencias SQL, ejecutarlas y visualizar sus
resultados. El mtodo de ingreso puede ser mediante la insercin directa del cdigo en la
consola, o la ejecucin de sentencias dentro de un archivo de texto. Provee de diversos metacomandos para la ejecucin de las sentencias, as como diversas opciones tipo shell propias de la
herramienta

PgExplorer
PgExplorer es una herramienta de desarrollo para Postgres con una amplia interfaz grfica. Entre
sus caractersticas se incluye una vista en rbol de las bases de datos y sus respectivos objetos. Se
puede realizar ingeniera inversa a travs de sentencias SQL o scripts personalizados. Hay una
amplia gama de asistentes que guan a travs del proceso necesario para generar comandos SQL
para varios objetos y sentencias. Tambin incluye un Diseador de Consultas Grfico.

PgAdmin3
Es una interfaz comprensible para el diseo y administracin de una base de datos PostgreSQL,
diseada para ejecutarse en la mayora de los Sistemas Operativos. La aplicacin corre bajo
GNU/Linux, FreeBSD y Windows 2000/XP. La interfaz grfica soporta todas las caractersticas
de PostgreSQL y facilita la administracin.

S-ar putea să vă placă și