Vous êtes sur la page 1sur 20

PostgreSQL

DBMS relacional, ultimo release estable 7.4.6 Proyecto del tipo Open Source Se encuentra bajo licencia BSD

El proyecto principal solo se dedica al desarrollo del motor de la db y la interfase de consola con el administrador Mltiples proyectos de administradores grficos y por web

Soporte de conexin va Api, Odbc, Jdbc, UnixOdbc, iOdbc y Adodb.net, todos en proyectos independientes Multiplataforma, funciona en Linux, BSD, *nix, Novell Netware, Mac Os X y Windows (nativo solo la 8.0 oficial) No existe representacin local oficial, ni centro de entrenamiento oficial

Ventajas de usar PostgreSQL


Costo de adquisicin bajo o nulo Cero problemas de licencias

Puedes desarrollar negocios con PostgreSQL sin problemas por la licencia BSD En las comunidades se brinda soporte gratuito, utilizando la manera correcta En las comunidades participan programadores del mismo motor de la base de datos Lo puedes modificar a tus necesidades Si lo usas en Linux, BSD o *nix es inmune a los virus Requerimientos mnimos para instalacin

Lo que se puede hacer con PostgreSQL

Funcionalidades comunes de cualquier dbms profesional


Vistas Funciones (store procedures) Triggers y Reglas (integridad referencial) Transacciones planas (no soporta transacciones anidadas) Tipos de datos definidos por el usuario Herencia Funciones especiales para administrar concurrencia y bloqueos de usuarios Comparado a Mysql tiene mejor performance en Querys complejos Indices comunes e ndices funcionales Vistas materializadas (en implementacin pero estable) http://gborg.postgresql.org/project/matview/projdisplay.php Soporte de Esquemas en XML http://gborg.postgresql.org/project/dbutils/projdisplay.php Datos geogrficos (espaciales) http://postgis.refractions.net/ Logs de auditora http://gborg.postgresql.org/project/tablelog/projdisplay.php Olap y data estadstica http://gborg.postgresql.org/browse.php?101

Lo que se puede hacer con PostgreSQL

Las funciones (store procedures) pueden desarrollarse en varios lenguajes, cada lenguaje debe ser inscrito en la base de datos que lo usar.
Sql -> Ansi Sql92 y 99, no es muy funcional Pl/pgsql -> el mas utilizado y funcional, se compila por conexin al momento de invocarlo C -> C comn y corriente, se generan pequeos programas que invoca directamente el motor, son rpidos si el servidor es rpido Perl -> poco usado Python -> poco usado PHP -> se compila el motor con un parche especial que da esta funcionalidad, fciles de programar, son rpidos si el servidor es rpido, disponible para las ramas 7.4.x y 8.x y con las ramas de PHP 4.3.x y la 5.x http://plphp.commandprompt.com

Lo que se puede hacer con PostgreSQL

Tneles encriptados por SSL, incorporado en el motor

PgCluster un parche adicional que nos permite manejar : cluster de bases de datos, balanceo de carga y replicacin de servidores todo en uno, solo disponible para la versin 7.3.6. http://www.csra.co.jp/~mitani/jpug/pgcluster/en/index.html

Lo que se puede hacer con PostgreSQL

Comunicaciones usando el protocolo IPv6

Variedad de lenguajes con soporte nativo incluido para PostgreSQL : php, gambas, python, c, etc. Servicios adicionales probados con PostgreSQL
Autentificacin de Apache Web Server OpenLdap http://www.samse.fr/GPL/ldap_pg/HOWTO/ Autentificacin sasl para mta Postfix Variedad de software libre de aplicaciones especificas : foros, cms, erp, crm, galeras fotogrficas, etc.

Lo que se puede hacer con PostgreSQL

Backups en caliente Bsquedas case-insensitive


Select * from tabla where campo like '%hola%' Select * from tabla where campo ilike '%HoLa%'

Funciones con el mismo nombre pero diferente cantidad de parmetros son aceptadas Creacin de secuencias automticas como objetos dentro de la mismas base de datos
CREATE SEQUENCE public.inc INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 80 CACHE 1;

Lo que se puede hacer con PostgreSQL

El identificador nico de objetos (OID) puede ser utilizado como llave fornea ya que existe como tipo de datos. Limites de PostgreSQL (bsicamente dictaminados por el OS y el hardware en que instalen el motor)
Maximum Maximum Maximum Maximum Maximum Maximum Maximum

size for a database? unlimited (32 TB databases exist) size for a table? 32 TB size for a row? 1.6 TB size for a field? 1 GB number of rows in a table? unlimited number of columns in a table? 250-1600 number of indexes on a table? unlimited

Bsquedas con expresiones regulares Optimizacin de Querys con Algoritmos Genticos

Ejemplos de volmenes de carga en el Per

Americatel maneja sus logs de tarifacin con PostgreSQL (70gb aprox.) Camara de Comercio de Lima maneja servicios de portal y bsquedas de protestos con PostgreSQL (32gb aprox.) Prompyme atiende el portal de compras del estado con PostgreSQL 7.4.2 (10-15 millones de registros aprox.), el servidor es una PC clnica P-IV 2ghz con 1gbyte de ram y Hd de 80gb IDE Grupo Carolina maneja su sistema de Ordenes de Trabajo con PostgreSQL 7.4.2 ( 300 a 500 nuevas ordenes mensuales), el servidor es un desktop en Linux RedHat 9.0 P-III con 128mb de Ram atendiendo 8 clientes del sistema

Instalando PostgreSQL

La plataforma recomendada es BSD por el manejo dinmico de prioridades de procesos de I/O Fuentes en http://www.postgresql.org Existen binarios para RedHat, Debian, Suse, Mandrake, Conectiva, etc.

Ultima rama estable 7.4.x, nueva rama 8.x en beta (ambas disponibles para Windows) Sistema de archivos recomendado ext3 (journaling), no existe mucha diferencia entre usar FS non-journaling y jounaling en cuanto a performance Requerimientos no exigidos pero esenciales : ncurses y bison Funcionalidades especiales es requerido compilar

Pasos para instalar PostgreSQL

Compile los fuentes o instale los binarios Cree un usuario administrador del PostgreSQL en Linux Ingrese como el usuario administrador

Cree un directorio donde se crearan las bases de datos, el owner del directorio debe ser el usuario administrador Inicialice la base de datos : [ruta_bin]/initdb -D [ruta_db] Levante el motor: [ruta_db]/postmaster -D [ruta_db] Ya puede trabajar con PostgreSQL :)

A tomar en cuenta

El motor de PostgreSQL no se puede ejecutar como root en ambientes Linux, Bsd y *unix PostgreSQL se instala por defecto para usar el puerto 5432, esto es modificable Los directorios que se generan dentro del directorio de instalacin son los que contienen la data, no edite los archivos, la data no es entendible a simple vista. La configuracin del servidor reside en el mismo directorio donde se creo, este debe contener los siguientes archivos :
PG_VERSION pg_hba.conf pg_ident.conf postgresql postgresql.conf

-> versin de PostgreSQL que instalo -> configuracin de accesos -> puente entre usuarios *nix y usuarios de -> configuracin general del motor

Problemas comunes

Matar el servicio del PostgreSQL puede ocasionar perdida irreparable de la base de datos. Cadas del servidor mientras se procesan transacciones dejan creado el archivo postmaster.pid, al volver a levantarlo el servidor le indicara que debe borrar este archivo, en algunas ocasiones deja similares archivos en el directorio temporal de la distribucin que este usando. Las bsquedas son lentas a pesar que ser crean ndices especficos para estas si es que no se realiza un Vacuum Analyze para que el motor determine las estadsticas de la tabla.

PgAdminIII

http://www.pgadmin.org/pgadmin3/index.php?locale=es_ES

Multiplataforma Modificacin de datos en caliente Backups Restore Manipulacin de propiedades en caliente

PhpPgAdmin http://phppgadmin.sourceforge.net/

Administracin por WEB Soporte en espaol

Aqua Data Studio

http://www.aquafold.com/

Multiplataforma

Otros software para administracin

Webmin http://www.webmin.com/

PgAccess http://www.flex.ro/pgaccess/

Mas informacin en http://techdocs.postgresql.org/guides/GUITools

Umbrello

http://uml.sourceforge.net/index.php

Genera Ansi SQL a partir de un diagrama de clases Viene con KDE

DBDesigner4

http://www.fabforce.net/dbdesigner4/

Genera SQL para Mysql pero con un parche genera Sql para PostgreSQL http://www.tv.com .pl/stepbystep/ dbdesigner/ Multiplataforma

PostgreSQL vs MySQL

No existe un estudio imparcial de comparativas

PostgreSQL incorpora mucho antes tecnologa que MySQL recien esta incorporando (sub-consultas, integridad referencial, transacciones, programacin en el servidor, etc.) Algunas estadsticas no oficiales mencionan que a mayor volumen de datos PostgreSQL tiene mucho mejores tiempos de respuestas. La licencia de PostgreSQL es mas libre que la de MySQL.

MySQL es una base de datos menos propensa a corromperse en situaciones de desastre.

Vous aimerez peut-être aussi