Академический Документы
Профессиональный Документы
Культура Документы
POSTGRESQL
Fecha: 2014/05/12
NDICE
1. INTRODUCCIN ........................................................................................................ 3
1.1. Breve descripcin del trabajo a realizar ..............................................................................3
1.2. Lenguajes de Programacin/Tecnologas utilizados ..........................................................3
1.3. Descripcin de cada elemento desarrollado .......................................................................3
2. SOBRE POSTGRESQL .............................................................................................. 4
2.1. Qu es PostgreSQL? ........................................................................................................4
2.2. Caractersticas ....................................................................................................................5
2.2.1. Caractersticas Generales ........................................................................................5
2.2.2. Caractersticas Programacin / Desarrollo ...............................................................6
2.2.3. Caractersticas SQL ..................................................................................................6
2.2.4. Caractersticas versiones PostgreSQL .....................................................................7
2.2.5. Algunos de los lmites de PostgreSQL .....................................................................7
3. HISTORIA ................................................................................................................... 7
3.1. Ingres 1977-1985 - "El comienzo" .......................................................................................7
3.2. Postgres 1986-1994 - Despus (post) de Ingres ................................................................8
3.3. Postgres95 1994-1995 - Nueva vida en el mundo opensource ..........................................8
3.4. PostgreSQL 1996-actualidad - Proyecto PostgreSQL ........................................................9
4. CICLO DE VIDA (EOL) Y SOPORTE ....................................................................... 10
5. INSTALACIN BSICA PostgreSQL 9.3.4 EN UBUNTU 12.04 ............................. 11
6. ALGUNOS CONCEPTOS A TENER ENCUTA PARA TRABRAJAR CON
POSTGRESQL ......................................................................................................... 12
6.1. Jerarqua de PostgreSQL..................................................................................................12
6.2. Transacciones ...................................................................................................................12
6.3. PSQL .................................................................................................................................12
6.4. pgAdmin III ........................................................................................................................13
6.5. Tablespace ........................................................................................................................14
6.6. Tabla DUAL .......................................................................................................................14
7. MAQUETA DCC ....................................................................................................... 15
7.1. Tabla DUAL .......................................................................................................................15
7.2. Tipos de datos utilizados ...................................................................................................15
8. REFERENCIAS Y ENLACES DE INTERS ............................................................. 16
2 de 16
1. INTRODUCCIN
SQL
PL/pgSQL (similar al PL/SQL de Oracle)
Vistas
Enlaces de bases de datos
Vistas Materializadas
Replicacin de Vistas Materializadas (completas e incrementales)
Usuarios
Roles
Jobs
Contextos
3 de 16
2. SOBRE POSTGRESQL
La informacin de este punto se puede obtener en:
http://www.postgresql.org.es/sobre_postgresql
2.1. Qu es PostgreSQL?
4 de 16
Aplicacin cliente: Esta es la aplicacin cliente que utiliza PostgreSQL
como administrador de bases de datos. La conexin puede ocurrir via
TCP/IP o 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. Tambin 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 configuracin: 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.
2.2. Caractersticas
2.2.1.Caractersticas Generales
SLSC. Maqueta DCC PostgreSQL.
5 de 16
Regionalizacin por columna.
Multi-Version Concurrency Control (MVCC).
Multiples mtodos de autentificacin.
Acceso encriptado va 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.
2.2.3.Caractersticas SQL
Consultas recursivas.
Funciones 'Windows'.
Joins.
Vistas (views).
Disparadores (triggers) comunes, por columna, condicionales.
Reglas (Rules).
Herencia de tablas (Inheritance).
Eventos LISTEN/NOTIFY.
6 de 16
2.2.4.Caractersticas versiones PostgreSQL
http://www.postgresql.org/about/featurematrix
Lmite Valor
Mximo tamao base de dato Ilimitado (Depende de tu sistema de almacenamiento)
Mximo tamao de tabla 32 TB
Mximo tamao de fila 1.6 TB
Mximo tamao de campo 1 GB
Mximo nmero de filas por tabla Ilimitado
Mximo nmero de columnas por tabla 250 - 1600 (dependiendo del tipo)
Mximo nmero de ndices por tabla Ilimitado
3. HISTORIA
IBM haba estado trabajando desde 1973 con los primeros conceptos, ideas y
teoras 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.
SLSC. Maqueta DCC PostgreSQL.
7 de 16
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 versin 6.0).
8 de 16
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.
No tenemos que olvidar tampoco que existen muchas empresas que tambin
colaboran con dinero y/o con tiempo/personas en mejorar PostgreSQL. Muchos
desarrolladores y nuevas caractersticas estn muchas veces patrocinadas por
empresas privadas.
En este grfico podis ver cuando las diferentes versiones de PostgreSQL han
visto la luz y las principales caractersticas 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 lnea de cdigo,
funciones y complejidad del mismo ha ido aumentando ao a ao. En el siguiente
grfico temis una grfica con la evolucin del nmero de lneas de cdigo en cada
versin de PostgreSQL.
9 de 16
Los datos de este grfico estn generados con CLOC. Contabilizamos como lneas
de cdigo a todas las lneas de cdigo en diferentes lenguajes, ms comentarios,
menos lneas en blanco. Los ficheros HTML y CSS no se cuentan como cdigo.
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 - $53,3
1.875horas/ao)
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
10 de 16
8.4 8.4.13 Si Jul 2009 Jul 2014
8.3 8.3.20 Si Feb 2008 Feb 2013
8.2 8.2.23 No Dic 2006 Dic 2011
8.1 8.1.23 No Nov 2005 Nov 2010
8.0 8.0.26 No Ene 2005 Oct 2010
7.4 7.4.30 No Nov 2003 Oct 2010
7.3 7.3.21 No Nov 2002 Nov 2007
7.2 7.2.8 No Feb 2002 Feb 2007
7.1 7.1.3 No Abr 2001 Abr 2006
7.0 7.0.3 No May 2000 May 2005
6.5 6.5.3 No Jun 1999 Jun 2004
6.4 6.4.2 No Oct 1998 Oct 2003
6.3 6.3.2 No Mar 1998 Mar 2003
Para realizar una instalacin bsica de PostgreSQL 9.3.4 en Ubuntu 12.04, realizar
los siguientes pasos:
export PGUSER=postgres
# variable de entorno con el nombre de la mquina servidor de bbdd
#export PGHOST=127.0.0.1
# variable de entorno con el pueto del servidor de bbdd
#export PGPORT=5432
11 de 16
6. ALGUNOS CONCEPTOS A TENER ENCUTA PARA
TRABRAJAR CON POSTGRESQL
1. Mquina Hardware
2. Instancia Servidor PostgreSQL
3. Base de Datos
4. Esquema
5. Objetos (Tablas, ndices, procedimientos,)
6.2. Transacciones
http://pgsqltutorial.readthedocs.org/en/latest/part_iii/transactions.html
file:///opt/PostgreSQL/9.3/doc/postgresql/html/tutorial-transactions.html
6.3. PSQL
El interfaz del cliente de lnea de comandos que viene con la instalacin por
defecto de PostgreSQL es PSQL. La ruta en la que se instala por defecto en
Ubuntu es: :/opt/PostgreSQL/9.3/bin/psql
Para conectar a una base de datos PosgreSQL con PSQL la sintaxis sera:
psql nombre_bbdd nombre_usuario
SLSC. Maqueta DCC PostgreSQL.
Para ejecutar sentencias en PSQL todas tienen que terminar con ;, ejemplo:
select now();
12 de 16
6.4. pgAdmin III
La interfaz grfica que instala por defecto PostgreSQL 9.3.4 se llama pgAdmin III.
Desde ella podremos gestionar la mayora de elementos y objetos de PostgreSQL.
13 de 16
6.5. Tablespace
14 de 16
Esta tabla fue creada en PostgreSQL como un objeto para aliviar los problemas de
portabilidad. Esto permite que el cdigo permanezca un tanto compatible con
Oracle SQL, sin molestar el analizador de PostgreSQL.
7. MAQUETA DCC
PostgreSQL Oracle
BOOLEAN = bool BOOLEAN
TIMESTAMP[(P)][WITHOUT TIMEZONE] DATE
15 de 16
(Existe un tipo DATE pero slo almacena la
fecha sin hora)
NUMERIC = decimal NUMBER
NUMERIC(1) = decimal(1) NUMBER(1)
NUMERIC(2) = decimal(2) NUMBER(2)
NUMERIC(10) = decimal(10) NUMBER(10)
NUMERIC(38) = decimal(38) NUMBER(38)
CHARACTER VARYING(6) = varchar(6) VARCHAR2(6)
CHARACTER VARYING(8) = varchar(8) VARCHAR2(8)
CHARACTER VARYING(10) = varchar(10) VARCHAR2(10)
CHARACTER VARYING(12) = varchar(12) VARCHAR2(12)
CHARACTER VARYING(32) = varchar(32) VARCHAR2(32)
CHARACTER VARYING(50) = varchar(50) VARCHAR2(50)
CHARACTER VARYING(100) = varchar(100) VARCHAR2(100)
CHARACTER VARYING(200) = varchar(200) VARCHAR2(200)
CHARACTER VARYING(255) = varchar(255) VARCHAR2(255)
CHARACTER VARYING(500) = varchar(500) VARCHAR2(500)
CHARACTER VARYING(2048) = VARCHAR2(2048)
varchar(2048)
CHARACTER VARYING(4000) = VARCHAR2(4000)
varchar(4000)
TEXT LONG
TEXT CLOB
Junto con este documento se adjuntan dos ficheros, utilizados como base para
elaborar la tabla anterior: SLCS_TiposDeDatosPostgreSQL8.4.4.pdf y
SLCS_TiposDatosOracle11g.pdf.
16 de 16