Está en la página 1de 15

===POSTGRESQL===

Introduccin



PostgreSQL es un sistema de gestin de bases de datos
objeto-relacional, distribuido bajo licencia BSD y con
su cdigo fuente disponible libremente. Es el sistema de
gestin de bases de datos de cdigo abierto ms potente
del mercado y en sus ltimas versiones no tiene nada
que envidiarle a otras bases de datos comerciales.
PostgreSQL utiliza un modelo cliente/servidor y usa multiprocesos en
vez de multihilos para garantizar la estabilidad del sistema. Un fallo en
uno de los procesos no afectar el resto y el sistema continuar
funcionando.
A continuacin teneis un grfico que ilustra de manera general los
componentes ms importantes en un sistema PostgreSQL.

Lmite
Valo
r


Aplicacin cliente: Esta es la aplicacin cliente que utiliza
PostgreSQL como administrador de bases de datos. La
conexin puede ocurrir via TCP/IP sockets locales.
Demonio postmaster: Este es el proceso principal de
PostgreSQL. Es el encargado de escuchar por un puerto/socket
por conexiones entrantes de clientes. Tambien es el encargado
de crear los procesos hijos que se encargaran de autentificar
estas peticiones, gestionar las consultas y mandar los resultados
a las aplicaciones clientes
Ficheros de configuracion: Los 3 ficheros principales de
configuracin utilizados por PostgreSQL, postgresql.conf,
pg_hba.conf y pg_ident.conf
Procesos hijos postgres: Procesos hijos que se encargan de
autentificar a los clientes, de gestionar las consultas y mandar
los resultados a las aplicaciones clientes
PostgreSQL share buffer cache: Memoria compartida usada
por POstgreSQL para almacenar datos en cach.
Write-Ahead Log (WAL): Componente del sistema encargado
de asegurar la integridad de los datos (recuperacin de tipo
REDO)
Kernel disk buffer cache: Cach de disco del sistema
operativo
Disco: Disco fsico donde se almacenan los datos y toda la
informacin necesaria para que PostgreSQL funcione
===Caractersticas===



La ltima serie de produccin es la 9.1. Sus caractersticas tcnicas la
hacen una de las bases de datos ms potentes y robustas del mercado.
Su desarrollo comenzo hace ms de 16 aos, y durante este tiempo,
estabilidad, potencia, robustez, facilidad de administracin e
implementacin de estndares han sido las caractersticas que ms se
han tenido en cuenta durante su desarrollo. PostgreSQL funciona muy
bien con grandes cantidades de datos y una alta concurrencia de
usuarios accediendo a la vez a el sistema.
A continuacin teneis algunas de las caractersticas ms importantes y
soportadas por PostgreSQL:

Generales
Es una base de datos 100% ACID
Integridad referencial
Tablespaces
Nested transactions (savepoints)
Replicacin asincrnica/sincrnica / Streaming replication - Hot
Standby
Two-phase commit
PITR - point in time recovery
Copias de seguridad en caliente (Online/hot backups)
Unicode
Juegos de caracteres internacionales
Regionalizacin por columna
Multi-Version Concurrency Control (MVCC)
Multiples mtodos de autentificacin
Acceso encriptado via SSL
Actualizacin in-situ integrada (pg_upgrade)
SE-postgres
Completa documentacin
Licencia BSD
Disponible para Linux y UNIX en todas sus variantes (AIX,
BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64) y
Windows 32/64bit.
Programacin / Desarrollo
Funciones/procedimientos almacenados (stored procedures) en
numerosos lenguajes de programacion, entre otros PL/pgSQL
(similar al PL/SQL de oracle), PL/Perl, PL/Python y PL/Tcl
Bloques annimos de cdigo de procedimientos (sentencias
DO)
Numerosos tipos de datos y posibilidad de definir nuevos tipos.
Adems de los tipos estndares en cualquier base de datos,
tenemos disponibles, entre otros, tipos geomtricos, de
direcciones de red, de cadenas binarias, UUID, XML, matrices,
etc
Soporta el almacenamiento de objetos binarios grandes
(grficos, videos, sonido, ...)
APIs para programar en C/C++, Java, .Net, Perl, Python, Ruby,
Tcl, ODBC, PHP, Lisp, Scheme, Qt y muchos otros.
SQL
SQL92,SQL99,SQL2003,SQL2008
Llaves primarias (primary keys) y forneas (foreign keys)
Check, Unique y Not null constraints
Restricciones de unicidad postergables (deferrable constraints)
Columnas auto-incrementales
Indices compuestos, nicos, parciales y funcionales en
cualquiera de los metodos de almacenamiento disponibles, B-
tree, R-tree, hash GiST
Sub-selects
Consultas recursivas
Funciones 'Windows'
Joins
Vistas (views)
Disparadores (triggers) comunes, por columna, condicionales.
Reglas (Rules)
Herencia de tablas (Inheritance)
Eventos LISTEN/NOTIFY
Podeis consultar la lista completa en ingles de caractersticas
disponibles en todas las versiones en la direccin
http://www.postgresql.org/about/featurematrix
Algunos de los limites de PostgreSQL son:
Mximo tamao base de dato
Ilimitado
(Depende de
tu sistema de
almacenamien
to)

Mximo tamao de tabla 32 TB

Mximo tamao de fila 1.6 TB

Mximo tamao de campo 1 GB

Mximo numero de filas por tabla Ilimitado

Mximo numero de columnas por tabla
250 - 1600
(dependiendo
del tipo)

Mximo numero de indices por tabla Ilimitado

===Historia===



El proyecto PostgreSQL tal y como lo conocemos hoy en dia empez en 1996, aunque las
bases y el trabajo en la que se asienta tienen sus comienzos en la decada de los 70. A
continuacin teneis una corta descripcin de la historia de PostgreSQL.

Ingres 1977-1985 - "El comienzo"
La dcada de los 70 fue una dcada de desarrollos y pruebas de nuevos conceptos en el nuevo
mundo de los gestores de bases de datos.
IBM habia estado trabajando desde 1973 con los primeros conceptos, ideas y teorias sobre
bases de datos relacionales. Su proyecto "System R" fue entre otras cosas la primera
implementacin del lenguaje SQL (Structured Query Language). Este proyecto, sus decisiones
de diseo y muchos de los algoritmos usados, influenciaron muchos de los sistemas de bases
de datos relacionales que aparecieron posteriormente.
Por aquel entonces un profesor de la Universidad de Berkeley, Michael Stonebraker, leyo unos
artculos publicados por IBM sobre "System R" que le hicieron interesarse en el tema. Utilizando
el dinero de otro proyecto que ya tenia asignado, Ingres (INteractive Graphics REtrieval
System), Stonebraker empezo a desarrollar sus ideas sobre bases de datos relacionales.
Durante estos aos Ingres mantuvo su cdigo fuente abierto y permanecio en gran medida
similar en conceptos a "System R".
A principio de los 80, Ingres estuvo compitiendo con Oracle por el liderazgo en el mundo de
bases de datos relacionales y su cdigo e implementacin evolucionaron y fueron el origen de
otras bases de datos relacionales, entre ellas podemos citar a Informix, NonStop SQL y Sybase
(Microsoft SQL Server fue una versin licenciada de Sybase hasta su version 6.0).
Michael Stonebraker dejo la Universidad de Berkeley en 1982 para comercializar Ingres pero
volvio a la misma en 1985 con nuevas ideas.

Postgres 1986-1994 - Despues (post) de ingres
Despues de su vuelta a Berkeley en 1985, Michael Stonebraker lider un nuevo proyecto
llamado Postgres (despues de Ingres) patrocinado por la Defense Advanced Research Projects
Agency (DARPA), la Army Research Office (ARO), la National Science Foundation (NSF), y
ESL, Inc. Con este proyecto y basandose en la experiencia obtenida con Ingres, Stonebraker
tenia como meta mejorar lo que habian conseguido y aprendido en el desarrollo de Ingres. Y
aunque se baso en muchas ideas de Ingres, no se baso en el cdigo fuente del mismo.
Los objetivos iniciales de este proyecto fueron:
Proporcionar un mejor soporte para objetos complejos
Proporcionar a los usuarios la posibilidad de extender los tipos de datos, operadores y
mtodos de acceso.
Proporcionar los mecanismos necesarios para crear bases de datos activas (triggers, etc)
Simplificar el cdigo encargado de la recuperacin del sistema despues de una cada del
mismo
Hacer cambios mnimos (preferiblemente ninguno) en el modelo relacional.
Mejorar el lenguaje de consulta QUEL heredado de Ingres (POSTQUEL).
Para los interesados en el tema, teneis disponibles una serie de artculos originales y completos
en ingles relacionados con el proyecto Postgres:
"The design of POSTGRES": El diseo de Postgres
"The POSTGRES data model": El mdelo de datos de Postgres
"The design of the POSTGRES storage system": El diseo del sistema de
almacenamiento de Postgres
"The implementation of POSTGRES": Presentacin de la versin 1 de Postgres en la
conferencia ACM-SIGMOD de 1988
"A commentary on the POSTGRES rules system": Comentarios sobre el sistema de
reglas de Postgres
"On Rules, Procedures, Caching and Views in Database Systems": Sobre reglas,
procedimientos, cache y vistas en sistemas de bases de datos
La ltima versin de Postgres en este projecto fue la versin 4.2.

Postgres95 1994-1995 - Nueva vida en el mundo opensource
En 1994, dos estudiantes de Berkeley, Andrew Yu y Jolly Chen, empezaron a trabajar con el
cdigo de Postgres (versin 4.2) y llamaron al proyecto Postgres95. Hicieron una limpieza
general del cdigo, arreglaron errores en el mismo, e implementaron otras mejoras, entre las
que destacan:
Sustitucin de POSTQUEL por un interprete del lenguaje SQL
Reimplementacin de las funciones agregadas
psql fue creado para ejecutar consultas SQL
El interface de objetos grandes (large-object) fue revisado
Un pequeo tutorial sobre Postgres fue creado
Postgres se pudo empezar a compilar con GNU make y GCC sin parchear
La versin 1.0 de Postgre95 vio la luz en 1995, el cdigo era 100% ANSI C, un 25% ms corto
en relacin con la versin 4.2 y un 30-50% ms rpido. El cdigo fue publicado en la web y
liberado bajo una licencia BSD, y ms y ms personas empezaron a utilizar y a colaborar en el
proyecto.

PostgreSQL 1996-actualidad - Proyecto PostgreSQL
En 1996, Andrew Yu y Jolly Chen ya no tenian tanto tiempo para dirigir y desarrollar Postgres95.
Algunos de los usuarios habituales de las listas de correo del proyecto decidieron hacerse cargo
del mismo y crearon el llamado "PostgreSQL Global Development Team".
En un principio este equipo de desarrolladores al cargo de la organizacin del proyecto estuvo
formado por Marc Fournier en Ontario, Canada, Thomas Lockhart en Pasadena, California,
Vadim Mikheev en Krasnoyarsk, Rusia y Bruce Momjian in Philadelphia, Pennsylvania. El
nombre fue cambiado de Postgres95 a PostgreSQL y lanzaron la versin 6.0 en enero de 1997.
Hoy en dia el grupo central (core team) de desarrolladores est formado por 7 personas, existen
24 desarrolladores principales y ms 18 desarrolladores habituales. En total alrededor de 50
personas activas, contribuyendo con el desarrollo de PostgreSQL. Podeis encontrar ms
informacin sobre este equipo de desarrolladores en
http://www.postgresql.org/community/contributors/
Existe tambien una gran comunidad de usuarios, programadores y administradores que
colaboran actvamente en numerosos aspectos y actividades relacionadas con el proyecto.
Informes y soluciones de problemas, tests, comprobacin del funcionamiento, aportaciones de
nuevas ideas, discusiones sobre caractersticas y problemas, documentacin y fomento de
PostgreSQL son solo algunas de las actividades que la comunidad de usuarios realiza.
No tenemos que olvidar tampoco que existen muchas empresas que tambien colaboran con
dinero y/ con tiempo/personas en mejorar PostgreSQL. Muchos desarrolladores y nuevas
caractersticas estn muchas veces patrocinadas por empresas privadas.
En los ltimos aos los trabajos de desarrollo se han concentrado mucho en la velocidad de
proceso y en caractersticas demandadas en el mundo empresarial. En este grfico podeis ver
cuando las diferentes versiones de PostgreSQL han visto la luz y las principales caracteristicas
en las que se ha centrado el desarrollo.



Durante los aos de existencia del Proyecto PostgreSQL, el tamao del mismo, tanto en
nmero de desarrolladores, como en nmeros de linea de cdigo, funciones y complejidad del
mismo ha ido aumentando ao a ao. En el siguiente grfico teneis una grfica con la evolucin
del nmero de lineas de cdigo en cada versin de PostgreSQL.



Los datos de este grfico estan generados con CLOC. Contabilizamos como lineas de cdigo a
todas las lineas de cdigo en diferentes lenguaje, ms comentarios, menos lineas en blanco.
Los ficheros HTML y CSS no se cuentan como cdigo.
Usando el modelo de estimacin de costes de software "COCOMOII" (Constructive COst
MOdel) podemos obtener unos datos meramente orientativos pero que nos pueden ayudar a
entender la complejidad del proyecto PostgreSQL y los recursos que se necesitarian para
desarrollar un producto similar desde cero.
Segn COCOMOII, obtendriamos estos nmeros para PostgreSQL 9.0.0:
Descripcin Valor
Nmeros de lineas de cdigo (PG-9.0.0) 969.562
Habilidad de los programadores (alta) 0,6
Complejidad del projecto (alta) 1,24
Precio/hora ($100.000/ao - 1.875horas/ao) $53,3
Programadores-ao 618,71
Precio por linea de cdigo $65,30
Precio Total $63.316.697
Lineas de cdigo por persona/dia 7
Tiempo de desarrollo del proyecto (aos) 3.6
Nmero medio de programadores 171,4
Ref: http://www.cms4site.ru/utility.php?ecur=1.24&eafcur=0.6&utility=cocomoii...
||
Nombre del producto
El uso de caracteres en mayscula en el nombre PostgreSQL puede confundir a algunas
personas a primera vista. Las distintas pronunciaciones de "**SQL**" pueden llevar a
confusin. Los desarrolladores de PostgreSQL lo pronuncian /post s kju l/;. Es
tambin comn or abreviadamente como simplemente "Postgres", el que fue su nombre
original. Debido a su soporte del estndar 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 seguira
llamndose PostgreSQL. El nombre hace referencia a los orgenes del proyecto como la
base de datos "post-**Ingres**", y los autores originales tambin desarrollaron la base de
datos Ingres.
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 papers 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 aportantes y
programadores de cdigo abierto mayormente.
Caractersticas
Algunas de sus principales caractersticas son, entre otras:
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:
Nmeros de **precisin arbitraria**.
Texto de largo ilimitado.
Figuras geomtricas (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 caractersticas
**Claves ajenas** tambin denominadas Llaves ajenas o Claves Forneas (foreign
keys).
**Disparadores** (triggers): Un disparador o trigger se define como una accin
especfica que se realiza de acuerdo a un evento, cuando ste ocurra dentro de la
base de datos. En PostgreSQL esto significa la ejecucin de un procedimiento
almacenado basado en una determinada accin sobre una tabla especfica. Ahora
todos los disparadores se definen por seis caractersticas:
o El nombre del disparador o trigger
o El momento en que el disparador debe arrancar
o El evento del disparador deber activarse sobre...
o La tabla donde el disparador se activar
o La frecuencia de la ejecucin
o La funcin que podra ser llamada
Entonces combinando estas seis caractersticas, PostgreSQL le permitir crear una
amplia funcionalidad a travs de su sistema de activacin de disparadores (triggers).
**Vistas**.
Integridad transaccional.
Herencia de tablas.
Tipos de datos y operaciones geomtricas.
Soporte para transacciones distribuidas. Permite a PostgreSQL integrase 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
transaccin globlal es el resultado del xito de las transacciones locales. Ms
informacin en ingls en
**http://www.theserverside.com/discussions/thread.tss?thread_id=21385#95297** y en
**http://java.sun.com/javaee/technologies/jta/index.jsp**.
Funciones
Bloques de cdigo que se ejecutan en el servidor. Pueden ser escritos en varios
lenguajes, con la potencia que cada uno de ellos da, desde las operaciones bsicas de
programacin, tales como bifurcaciones y bucles, hasta las complejidades de la
programacin orientada a objetos o la programacin funcional.
Los disparadores (triggers en ingls) 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 estadsticas **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 ingls).
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 ingls).
Productos alrededor de PostgreSQL
El **PGDG** solo desarrolla el Motor de Datos y un nmero pequeo de utilidades, para
potenciar el trabajo con PostgreSQL suele ser necesario aadir utilidades externas
creadas especialmente para este motor, algunas de estas herramientas son:
Alternativas Comerciales
Gracias a su licencia **BSD**, se permite la utilizacin del cdigo para ser
comercializado. Uno de los casos ejemplo es la de Enterprise DB (Postgresql Plus), la
cual incluye varios agregados y una interfaz de desarrollo basada en **Java**. Entre otras
empresas que utilizan Postgresql para comercializar se encuentra CyberTech (alemania),
con su producto CyberCluster.
GIS
**PostGIS**
Extensin que aade soporte de objetos geogrficos a PostgreSQL y permite realizar
anlisis mediante consultas SQL espaciales o mediante conexin a aplicaciones **GIS**
(Sistema de Informacin Geogrfica).
Replicacin
**PgCluster**
Replicacin multi maestro.
**Slony-I**
Replicacin maestro esclavo.
**PyReplica**
Replicacin maestro esclavo y multi maestro asincrnica.
Herramientas de administracin
**PgAdmin3**
Entorno de escritorio visual.
**PgAccess**
Entorno de escritorio visual.
**PhpPgAdmin**
Entorno web.
psql
Cliente de consola.
**Database Master**
Entorno de escritorio visual.
Bsqueda de texto
Full text search
Incluido en el ncleo a partir de la versin 8.3.
Via **Tsearch2** y **OpenFTS** para versiones anteriores a la 8.3.
XML
**XML**/**XSLT** soporte
Via **XPath extensiones en la seccin contrib**.
[**editar**] Usuarios destacados
**.org**, **.info**, **.mobi** y **.aero** registros de dominios por **Afilias**.**[****1]**
La **American Chemical Society**.
**BASF**.
**IMDb**.
**Skype**.
**TiVo**.
**Penny Arcade**.
**Sony Online**.**[****2]**
**U.S. Departamento de Trabajo**.
**USPS**.
**VeriSign**.
**Pictiger.com**
**Wisconsin Circuit Court Access** con 6 * 180GB DBs replicados en tiempo real.
**OpenACS** y **.LRN**.
**INEGI**.
**IFE**.
Premios
PostgreSQL ha recibido los siguientes reconocimientos:**[****3]**
1999 LinuxWorld Editor's Choice Award for Best Database
2000 Linux Journal Editors' Choice Awards for Best Database
2002 Linux New Media Editors Choice Award for Best Database
2003 Linux Journal Editors' Choice Awards for Best Database
2004 Linux New Media Award For Best Database
2004 Linux Journal Editors' Choice Awards for Best Database
2004 ArsTechnica Best Server Application Award
2005 Linux Journal Editors' Choice Awards for Best Database
2006 Linux Journal Editors' Choice Awards for Best Database
2008 Developer.com Product of the Year, Database Tool
Referencias
1. ******PostgreSQL affiliates.ORG domain**
2. ******Sony Online opts for open-source database over Oracle**
3. **** PostgreSQL, Award Winning Software. postgresql.org (19-01-2008).
Consultado el 31-01-2008.










Aplicaciones para Empresas, EmpresaVentajas y desventajas de PostgreSQL
PostgreSQL es un sistema de gestin de base de datos relacional orientada a objetos y
libre, publicada bajo licencia BSD. Es un programa de cdigo abierto, por lo que est
dirigido por una comunidad de desarrolladores llamada PGDG (PostgreSQL Global
Development Group). Comienza su desarrollo en el ao 1982 con el proyecto Ingres en la
Universidad de Berkeley. Entre sus principales caractersticas tenemos la alta concurrencia,
la amplia variedad de tipos nativos, y diversas funciones ms especficas. Hoy hablaremos
de las principales ventajas y desventajas de PostgreSQL:




Ventajas:


A pesar de que la velocidad de respuesta pueda parecer deficiente en bases de datos
pequeas, esa velocidad se mantiene al aumentar el tamao de la base de datos, cosa que
no sucede con otros programas, que se enlentecen brutalmente.
Instalacin ilimitada: No se puede demandar a una empresa por instalarlo en ms
ordenadores de los que la licencia permite, ya que no hay costo asociado a la licencia de
software. Esto permite un negocio ms rentable con instalaciones a gran escala, no
debemos preocuparnos por ser auditados para ver si cumplimos con la licencia, y hay
flexibilidad y desarrollo sin costos adicionales de licenciamiento.
Ahorros considerables de costos de operacin: PostgreSQL ha sido diseado para tener un
mantenimiento y ajuste menor que los productos de proveedores comerciales, conservando
todas las caractersticas, estabilidad y rendimiento.
Estabilidad y confiabilidad: No se han presentado cadas de la base de datos.
Extensible: El cdigo fuente est disponible de forma gratuita, para que quien necesite
extender o personalizar el programa pueda hacerlo sin costes.
Multiplataforma: Est disponible en casi cualquier Unix, con 34 plataformas en la ltima
versin estable, adems de una versin nativa de Windows en estado de prueba.
Diseado para ambientes de alto volumen: Utilizando una estrategia de almacenamiento de
filas llamada MVCC, consigue mejor respuesta en grandes volmenes. Adems, MVCC
permite a los accesos de solo lectura continuar leyendo datos consistentes durante la
actualizacin de registros, permitiendo copias de seguridad en caliente
Herramientas grficas de diseo y administracin de bases de datos.
Soporta los tipos de datos, clusulas, funciones y comandos de tipo estndar SQL92/SQL99
y extendidos propios de PostgreSQL.
Puede operar sobre distintas plataformas, incluyendo Linux, Windows, Unix, Solaris y
MacOS X.
Buen sistema de seguridad mediante la gestin de usuarios, grupos de usuarios y
contraseas.
Gran capacidad de almacenamiento.
Buena escalabilidad ya que es capaz de ajustarse al nmero de CPU y a la cantidad de
memoria disponible de forma ptima, soportando una mayor cantidad de peticiones
simultneas a la base de datos de forma correcta.
Desventajas:


En comparacin con MySQL es ms lento en inserciones y actualizaciones, ya que cuenta
con cabeceras de interseccin que no tiene MySQL.
Soporte en lnea: Hay foros oficiales, pero no hay una ayuda obligatoria.
Consume ms recursos que MySQL.
La sintaxtis de algunos de sus comandos o sentencias no es nada intuitiva.




Bibliografa
Wikipedia
**http://es.wikipedia.org/wiki/PostgreSQL**
aplicaciones empresariales
**http://www.aplicacionesempresariales.com/ventajas-y-desventajas-de-postgresql.html**

También podría gustarte