Disponible la versión Beta 3 de Postgres 9.1!

Desde la página oficial del Proyecto anuncian el lanzamiento de la versión Beta 3 de postgres 9.1 disponible para su descarga.

Beta release 9.1 Beta 3 is now available for download. We encourage developers and users to test this version. The release includes synchronous replication, writeable common table expressions, per-column collation, serializable snapshot isolation and many other features.

El anuncio oficial lo puedes leer desde aqui.

Download
PostgreSQL 9.1 Beta 3

Documentación
PostgreSQL 9.1 Beta 3 documentation

Fuente:
http://www.postgresql.org

Disponible la versión Beta 2 de Postgres 9.1!

Desde la página oficial del Proyecto Postgres anuncian el lanzamiento de Postgres 9.2 Beta 2 disponible para su descarga.

El anuncio oficial lo puedes leer desde aqui.

Download
PostgreSQL 9.1 Beta 2

Documentación
PostgreSQL 9.1 Beta 2 documentation

Fuente:
http://www.postgresql.org

Operadores lógicos en PostgreSQL

Los operadores lógicos disponibles en postgres son:

AND
OR
NOT

Véase las siguientes tablas:

a b a AND b a OR b
TRUE TRUE TRUE TRUE
TRUE FALSE FALSE TRUE
TRUE NULL NULL TRUE
FALSE FALSE FALSE FALSE
FALSE NULL FALSE NULL
NULL NULL NULL NULL
a NOT a
TRUE FALSE
FALSE TRUE
NULL NULL

Los operadores AND y OR son conmutativos, es decir, puedes intercambiar el operador de la izquierda y la derecha sin que este cambio afecte el resultado.

PostgreSQL 9.1 Beta ya disponible

Desde el sitio web oficial de PostgreSQL podemos encontrar el anuncio de este lanzamiento:

Beta release 9.1 Beta 1 is now available for download.

Links:

Release announcement
Download page
Beta testing information
Beta release notes
Beta documentation

¿Qué es PostgreSQL?

PostgreSQL es un potente sistema de base de datos objeto-relacional de código abierto. Cuenta con más de 15 años de desarrollo activo y una arquitectura probada que se ha ganado una sólida reputación de fiabilidad e integridad de datos. Se ejecuta en los principales sistemas operativos que existen en la actualidad como:

  • Linux
  • UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64)
  • Windows

Es totalmente compatible con ACID, tiene soporte completo para claves foráneas, uniones, vistas, disparadores y procedimientos almacenados (en varios lenguajes). Incluye la mayoría de los tipos de datos del SQL 2008, incluyendo INTEGER, numérico, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, y TIMESTAMP. También soporta almacenamiento de objetos binarios grandes, como imágenes, sonidos o vídeo. Cuenta con interfaces nativas de programación para C / C + +, Java,. Net, Perl, Python, Ruby, Tcl, ODBC, entre otros, y la documentación que actualmente existe es realmente excepcional.

Una base de datos de clase empresarial, PostgreSQL cuenta con características avanzadas tales como Multi-Version Control de concurrencia (MVCC), puntos en tiempo de recuperación, tablespaces, replicación asincrónica, transacciones anidadas (savepoints), respaldos online/hot, un sofisticado query planner/optimizer. Soporta el conjunto de caracteres internacional, codificaciones de caracteres multibyte, Unicode, mayúsculas y minúsculas.
Es altamente escalable, tanto en la enorme cantidad de datos que puede manejar y en el número de usuarios concurrentes que puede administrar. Hay sistemas activos en PostgreSQL en entornos de producción que manejan más de 4 terabytes de datos. Algunos límites y caracteristicas generales que se incluyen en PostgreSQL son:

Tamaño máximo de la Base de datos Ilimitado
Tamaño máximo de la tablas 32 TB
Tamaño máximo de la fila 1.6 TB
Tamaño máximo para cada campo 1 GB
Máximo de filas por tabla Ilimitado
Maximo de columnas por tabla 250-1600 dependiendo del tipo de columna
Máximo de indices por tabla Ilimitado

Altamente personalizable

En PostgreSQL puedes escribir procedimientos almacenados en más de una docena de lenguajes como:

  • Java
  • Perl
  • Python
  • Ruby
  • Tcl
  • C / C ++
  • PL / pgSQL (que es similar a PL / SQL de Oracle)

Incluye una biblioteca de funciones estándar con cientos de funciones integradas que van desde las operaciones matemáticas básicas, operaciones con strings para criptografía y compatibilidad con Oracle. Los disparadores (triggers) y procedimientos almacenados pueden ser escritos en C y se cargan en la base de datos como una biblioteca, lo cual permite una gran flexibilidad y ampliación de sus capacidades. Del mismo modo, PostgreSQL incluye un framework que permite a los desarrolladores definir y crear sus propios tipos de datos personalizados. Como resultado, una gran cantidad de tipos de datos avanzados se han creado que van desde los geométricos y espaciales para direcciones de red, incluso para los tipos de datos ISBN / ISSN (International Standard Book Number / Número Internacional Normalizado de Publicaciones Seriadas), los cuales pueden ser opcionalmente agregados al sistema.

Así como hay muchos lenguajes de procedimientos soportados en PostgreSQL, también existen muchas librerias de interfaces, lo que permite que varios lenguajes sean tanto compilados e interpretados a la interfaz con PostgreSQL. Hay interfaces para Java (JDBC), ODBC, Perl, Python, Ruby, C, C + +, PHP, Lisp, Scheme, y Qt sólo por mencionar algunos.

Lo mejor de todo, el código fuente de PostgreSQL está disponible bajo una licencia de código abierto: la licencia de PostgreSQL. Esta licencia le da la libertad para usar, modificar y distribuir PostgreSQL en cualquier forma que guste ya sea de código abierto o cerrado. Como tal, PostgreSQL no es sólo un sistema de base de datos de gran alcance capaz de usarse en las empresas, es todo una plataforma de desarrollo sobre la cual puedes desarrollar todo tipo de software que requieren un RDBMS de grandes capacidades.

Su sitio web oficial es: PostgreSQL

Fuente:
http://www.postgresql.org/about/

Funciones con strings en PostgreSQL

Funcion Retorna Ejemplo Resultado
string || string text 'Post' || 'greSQL' PostgreSQL
string || non-string or non-string || string text 'Value: ' || 42 Value: 42
bit_length(string) int bit_length('jose') 32
char_length(string) ó character_length(string) int char_length('jose') 4
lower(string) text lower('TOM') tom
octet_length(string) int octet_length('jose') 4
overlay(string placing string from int [for int]) text overlay('Txxxxas' placing 'hom' from 2 for 4) Thomas
position(substring in string) int position('om' in 'Thomas') 3
substring(string [from int] [for int]) text substring('Thomas' from 2 for 3) hom
substring(string from pattern) text substring('Thomas' from '...$') mas
substring(string from pattern for escape) text substring('Thomas' from '%#"o_a#"_' for '#') oma
trim([leading | trailing | both] [characters] from string) text trim(both 'x' from 'xTomxx') Tom
upper(string) text upper('tom') TOM

Fuente:
http://www.postgresql.org/docs/9.0/static/functions-string.html

Modificar la estructura de una tabla en PostgreSQL

Estas son algunas sentencias SQL las cuales nos permiten modificar la estructura de una tabla, para todos los ejemplos el nombre de la tabla será empleados:

Cambiar el nombre a una columna:

ALTER TABLE empleados RENAME COLUMN nombre_actual TO nombre_nuevo

Borrar una columna

ALTER TABLE empleados DROP COLUMN nombre_columna

Agregar columna

ALTER TABLE empleados ADD COLUMN nombre_columna BOOLEAN DEFAULT true

Eliminarle a una columna la restriccion de no aceptar valores nulos

ALTER TABLE empleados ALTER COLUMN nombre_columna DROP NOT NULL

Modificar la columna para que apartir de ahora no acepte valores nulos

ALTER TABLE empledos ALTER COLUMN nombre_columna SET NOT NULL

Modificar el tipo de dato a una columna

ALTER TABLE empleados ALTER COLUMN nombre_columna TYPE smallint

Eliminar una Foreign-key constraint

ALTER TABLE empleados DROP CONSTRAINT nombre_foreign_key_fkey

Agregar una foreign-key

ALTER TABLE empleados ADD FOREIGN KEY(nombre_columna) REFERENCES nomina(nombre_columna)

Eliminar el valor que tiene por default una columna

ALTER TABLE empleados ALTER COLUMN nombre_columna DROP default

Agregar un valor por default a una columna

ALTER TABLE empleados ALTER COLUMN nombre_columna SET DEFAULT 125

Obtener el tamaño de la DB en PostgreSQL

A veces necesitamos saber el espacio en disco duro que ocupa nuestra base de datos, para obtener ésta información desde la terminal interactiva de psql escribimos la siguiente sentencia SQL:

select datname as db, pg_size_pretty(pg_database_size(datname)) as size FROM pg_database where datname = 'data_base_name'

Nos devuelve una tupla con los datos siguientes:
– El nombre de la base de datos.
– El espacio en disco duro que ocupa la DB.

Instalación de PostgreSQL en Slackware

PostgreSQL es un sistema administrador de base de datos objeto-relacional (ORDBMS) de código abierto liberado bajo la licencia BSD, desarrollado en la Universidad de California por Berkeley Computer Science Departament, es capaz de correr en distintas plataformas operativas como UNIX, FreeBSD, Linux, Mac OS X y MS Windows (NT/2000/2003 servers).

Este material intenta ser una guía de referencia de como llevar a cabo la instalación desde el código fuente de este administrador de base de datos, cabe mencionar que la instalacion se realizó sobre Slackware 12.2 y la versión 8.4.2 de PostgreSQL.

Antes de comenzar, te recomiendo que revises los requerimientos previos a la instalacion, esta información la puedes encontrar en esta dirección:

http://www.postgresql.org/docs/8.4/static/install-requirements.html

Pasos previos a la instalación.

Abrimos una terminal y nos logueamos como root.

Primeramente creamos la cuenta para el superusuario de PostgreSQL, normalmente usamos el nombre “postgres”, éste deberá ser un usuario normal de sistema.

Para lo cual escribimos el siguiente comando:

# adduser postgres

Ingresamos toda la información que nos solicita la consola.

Ahora creamos el directorio donde vamos a descargar, desempaquetar y descomprimir las fuentes, para efectos de este manual será debajo de /usr/src/pgsql, ésta ubicación no es obligatoria, por lo que la ruta la dejamos a tu consideración.

# mkdir /usr/src/pgsql

Hacemos dueño de este directorio al usuario postgres

# chwon postgres:users /usr/src/pgsql

Como siguiente paso creamos el directorio donde realizaremos la instalación del Servidor, para nuestro caso será debajo de /usr/local/pgsql

La ubicación del directorio de instalación puedes personalizarlo de acuerdo a tus necesidades, por lo que si quieres utilizar alguna otra en especifico deberas crear el directorio en la ruta de tu elección.

# mkdir /usr/local/pgsql

Hacemos dueño de este directorio al usuario postgres

# chown postgres:users /usr/local/pgsql

Abandonamos la cuenta de root:

# exit

Nos logueamos con la cuenta del usuario “postgres”, a partir de aqui toda la configuración e instalación se realizará desde esta cuenta.

Ingresamos al directorio donde descargaremos las fuentes:

$ cd /usr/src/pgsql

Ahora conseguimos las fuentes del PostgreSQL, las cuales puedes obtener desde la dirección FTP ftp://ftp.postgresql.org/pub/source/v8.4.2/postgresql-8.4.2.tar.gz.

$ wget ftp://ftp.postgresql.org/pub/source/v8.4.2/postgresql-8.4.2.tar.gz

Desempaquetamos y descomprimimos el tarball:

$ tar -xzvf postgresql-8.4.2.tar.gz

Lo anterior nos crea un directorio llamado postgresql-8.4.2, nos movemos a éste para iniciar la configuración, compilación e instalación:

Configuración.

Realizamos la configuracion utilizando el script configure:

$ ./configure --prefix=/usr/local/pgsql --with-perl --with-tcl --with-python --with-openssl

Donde prefix es el directorio de instalación, para nuestro caso es el directorio /usr/local/pgsql.

Nota: Para este ejemplo, en el script configure estamos ocupando sólo algunos de los parametros de configuración, si deseas utilizar otros, puedes visualizar la lista completa ejecutando el comando ./configure --help, la documentación que describe en forma más detallada cada una de estas opciones la puedes encontrar en la siguiente URL:

http://www.postgresql.org/docs/8.4/static/install-procedure.html

Compilación.

Procedemos a realizar la compilación:

$ make

Cuando la compilacion se lleva a cabo exitósamente, toda la salida que nos presenta la consola en su última linea debe indicar el siguiente mensaje:

All of PostgreSQL successfully made. Ready to install.

Instalación.

Una ves concluida la compilación de los paquetes, pasamos a la instalación con el siguiente comando:

$ make install

Si la instalación se realiza en forma correcta, el proceso le muestra en la ultima linea de la consola el siguiente mensaje:

PostgreSQL installation complete.

Con esto hemos completado el proceso de la instalación.

Ya para finalizar debemos iniciar el “cluster” de las bases de datos y de esta forma empezar a utilizar el Servidor PostgreSQL:

$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data -E LATIN1 --locale=es_MX

The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale es_MX.
The default text search configuration will be set to "spanish".

creating directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 28MB
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

./postgres -D /usr/local/pgsql/data
or
./pg_ctl -D /usr/local/pgsql/data -l logfile start

Iniciando el servidor.

Bien, ahora solo nos queda iniciar el servidor de PostgreSQL, de esta forma vamos a verificar que todo este funcionando correctamente, escribimos el siguiente comando:

$ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l error_postgres.log start

Listo! Ya debemos tener corriendo el Servidor en nuestro sistema .

Para visualizar la lista de DB que tenemos instaladas ejecutamos el siguiente comando:

$ /usr/local/pgsql/bin/psql -l

List of databases
Name | Owner | Encoding | Collation | Ctype | Access privileges
-----------+----------+----------+-----------+-------+-----------------------
postgres | postgres | LATIN1 | es_MX | es_MX |
template0 | postgres | LATIN1 | es_MX | es_MX | =c/postgres
: postgres=CTc/postgres
template1 | postgres | LATIN1 | es_MX | es_MX | =c/postgres
: postgres=CTc/postgres

Accesando a una base de datos.

Para poder acceder a una base de datos, PostgreSQL cuenta con un programa que te permite interactuar con los datos, es una terminal llamada psql, en la cual podemos ejecutar comandos SQL.
Por ejemplo si queremos acceder a una base de datos llamada facturas escribimos:

$ psql facturas

De esta manera el comando psql invoca la terminal y le pasamos como parámetro el nombre de la DB.

Espero que esta información te haya sido de gran ayuda, si tienes algunas sugerencias para mejorar este procedimiento de instalación no dudes en dejar tus comentarios.

Fuente: http://www.postgresql.org/docs/8.4/static/index.html

A %d blogueros les gusta esto: