Documente Academic
Documente Profesional
Documente Cultură
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.
Caracteristicas de PostgreSQL
Algunas de sus principales 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
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.