Está en la página 1de 14

Repblica Bolivariana de Venezuela

Ministerio del Poder Popular para la Educacin Universitaria


Universidad Politcnica Territorial de Paria
Luis Mariano Rivero
Carpano. Edo Sucre















Profesor:
Ing. Luis Cortesita Integrantes:
Enmanuel Encalada 17.957.121
Hibet Rojas B. 24.511.487
Joselyn Valcenilla 25.098.681
Andres Campos 21.010.125


Junio, 2014
INTRODUCCION



PostgreSQL es un gestor de bases de datos orientadas a objetos (SGBDOO o ORDBMS en
sus siglas en ingls) muy conocido y usado en entornos de software libre porque cumple los
estndares SQL92 y SQL99, y tambin por el conjunto de funcionalidades avanzadas que
soporta, lo que lo sita al mismo o a un mejor nivel que muchos SGBD comerciales. Un
servidor de base de datos es un programa que provee servicios de base de datos a otros
programas u otras computadoras


El origen de PostgreSQL se sita en el gestor de bases de datos POSTGRES desarrollado
en la Universidad de Berkeley y que se abandon en favor de PostgreSQL a partir de 1994.
PostgreSQL se distribuye bajo licencia BSD, lo que permite su uso, redistribucin,
modificacin con la nica restriccin de mantener el copyright del software a sus autores,
en concreto el PostgreSQL Global Development Group y la Universidad de California.
PostgreSQL puede funcionar en mltiples plataformas (en general, en todas las modernas
basadas en Unix) y, a partir de la prxima versin 8.0 (actualmente en su segunda beta),
tambin en Windows de forma nativa. Para las versiones anteriores existen versiones
binarias para este sistema operativo, pero no tienen respaldo oficial.





















CONCLUCION


PostgreSQL implementa las caractersticas necesarias para competir con cualquier otra base
de datos comercial, con la ventaja de tener una licencia de libre distribucin BSD.
La migracin de bases de datos alojadas en productos comerciales a PostgreSQL se facilita
gracias a que soporta ampliamente el estndar SQL. PostgreSQL cuenta con una serie de
caractersticas atractivas como son la herencia de tablas (clases), un rico conjunto de tipos
de datos que incluyen arreglos, BLOB, tipos geomtricos y de direcciones de red.
PostgreSQL incluye tambin el procesa- miento de transacciones, integridad referencial y
procedimientos almacenados. En concreto, hay procedimientos documentados para migrar
los procedimientos almacenados desarrollados en lenguajes propietarios de bases de datos
comerciales (PL/SQL) a PL/PGSQL.
Por si esto fuera poco PostgreSQL es extensible. Es posible agregar nuevos tipos de datos y
funciones al servidor que se comporten como los ya incorporados. Tambin es posible
insertar nuevos lenguajes de programacin del lado del servidor para la creacin de
procedimientos almacenados. Todas estas ventajas hacen que muchos programadores lo
elijan para el desarrollo de aplicaciones en todos los niveles.






















Servidor de Base de Datos?

Un servidor de base de datos es un programa que provee servicios de base de datos a otros
programas u otras computadoras, como es definido por el modelo cliente-servidor. Tambin puede
hacer referencia a aquellas computadoras (servidores) dedicadas a ejecutar esos programas,
prestando el servicio.
Los sistemas de administracin de base de datos (SGBD) generalmente proveen funcionalidades
para servidores de base de datos, en cambio otros (como por ejemplo, MySQL) solamente proveen
construccin y acceso a la base de datos.
Tipos de servidores por servicios:
Servidor de aplicaciones
Servidor de archivos
Servidor de audio/video
Servidor de backup
Servidor de base de datos
Servidor de chat
Servidor de correo
Servidor de fax
Servidor FTP
Servidor groupware
Servidor IRC
Servidor de impresin
Servidor de juego
Servidor de listas de correo
Servidor de news
Servidor proxy
Servidor de telefona
Servidor telnet
Servidor web
Qu es PostgreSQL?
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. El proyecto PostgreSQL tal y como lo
conocemos hoy en da empez en 1996, aunque las bases y el trabajo en la que se asienta
tienen sus comienzos en la dcada de los 70.
Es compatible con una gran parte del estndar SQL y ofrece muchas caractersticas
modernas:
consultas complejas
las claves externas
disparadores
vistas actualizables
integridad transaccional
control de concurrencia multiversin
Tambin, PostgreSQL puede ampliarse por el usuario de muchas maneras, por ejemplo
mediante la adicin de nuevos
tipos de datos
funciones
operadores
funciones de agregado
mtodos de ndice
lenguas de procedimiento

MODO DE INSTALACIN:

A partir de la versin 8.4 de PostgreSQL, la empresa EnterpriseDB ha puesto a disposicin
de la comunidad un instalador fcil (lo que ellos denominan 'one click' installer). Este
programa instalador est disponible para Linux, Windows y MacOS X y est pensado para
hacerle la vida ms fcil al usuario que quiere empezar a utilizar PostgreSQL e instalarlo de
manera fcil y rpida. Este instalador provee por defecto, la versin libre de la comunidad
del servidor PostgreSQL, los programas clientes por defecto y el cliente grfico
PgAdminIII.
Lo primero que tenemos que hacer es descargar la versin del programa de instalacin que
corresponda con nuestro sistema.
Una vez descargado lo tendremos que ejecutar como administrador en nuestro
sistema.'root' en linux y 'usuario administrador' en Windows.
En Linux ejecutamos estos comandos:
root@linux:/tmp# chmod +x postgresql-8.4.1-1-linux.bin
root@linux:/tmp# ./postgresql-8.4.1-1-linux.bin

En Windows XP, basta con pulsar en el fichero exe que nos hemos descargado para
empezar a ejecutar este programa de instalacin.
La primera pantalla que se nos muestra es la bienvenida al instalador de PostgreSQL. A
partir de ahora tendremos que pulsar "Next" cada vez que queramos avanzar al siguiente
paso.
En el siguiente paso tendremos que definir el directorio donde vamos a instalar todos los
programas que vienen con esta versin de PostgreSQL. En nuestro caso, utilizaremos el
valor por defecto que el programa nos sugiere. /opt/PostgreSQL/8.4 en linux y c:\\Program
Files\PostgreSQL\8.4 en Windows XP.
Una vez que hemos escrito el directorio que queremos utilizar para instalar el programa,
pasamos al siguiente paso. En este paso tenemos que definir el directorio de datos en donde
se crearn nuestras bases de datos. De nuevo, en nuestro caso utilizaremos el valor por
defecto que el programa nos sugiere. /opt/PostgreSQL/8.4/data en linux yc:\\Program
Files\PostgreSQL\8.4\data en Windows XP.
Pasamos al siguiente paso. En este paso tenemos que definir una clave de acceso para el
usuario administrador de nuestra base de datos PostgreSQL. No olvidar esta clave, si no
quereis tener problemas ms adelante. En Windows XP la clave definida en este paso ser
tambien la clave que se utilizar para la cuenta de servicio 'postgres' que se crear durante
la instalacin. Si esta cuenta ya existe, tendremos que utilizar la clave que dicha cuenta
tiene asignada.
Ms adelante podremos cambiar, si queremos, la clave del usuario administrador (postgres)
de la base de datos. Esta clave es totalmente independiente de la clave de la cuenta de
servicio 'postgres' en el sistema operativo.
Pasamos al siguiente paso. En este paso tendremos que especificar el puerto que
PostgreSQL utilizar para escuchar por conexiones. En nuestro caso dejamos el valor por
defecto, 5432.
Una vez que hemos terminado con los pasos bsicos, el programa entra en la seccin de
opciones avanzadas. En este paso tenemos que decidir que 'locale' queremos utilizar y si
queremos instalar PL/pgSQL en la base de datos template1. Si no sabeis que responder, os
recomiendo elegir "Locale: C" e instalar PL/pgSQL en template1. (template1 es una base
de datos por defecto en PostgreSQL que se puede utilizar como plantilla cuando creamos
bases de datos. Todo lo que se instala/crea en template1, estar disponible en todas las
bases de datos que usen template1 como plantilla).
Una vez que hemos terminado con todos los pasos de configuracin, el programa nos
informa que est listo para empezar a instalar e inicializar nuestra instalacin.
Pulsamos por ltima vez "Next" y esperamos a que el programa termine de instalar todo.
Una vez terminada la instalacin, podremos salir del instalador pulsando "Finish". En este
ltimo paso el instalador nos da la opcin de arrancar automticamente un programa
llamado "Stack Builder". Este programa puede ser usado para instalar diversos programas
adicionales, tanto programas libres como algunos distribuidos por EnterpriseDB. En este
artculo no vamos a ver nada relacionado con "Stack Builder" y por eso borramos la
eleccin de arrancarlo automticamente antes de pulsar "Finish".

ESTRUCTURA INTERNA DE PostgreSQL:

PostgreSQL tiene una arquitectura que involucra muchos estilos, en su nivel ms alto es un
esquema clsico cliente-servidor, mientras que el acceso a la data es un esquema en capas.

PostgreSQL se maneja por medio de clster (instancias) para lo cual posee un directorio en
donde se almacenan los archivos de configuracin del mismo, la data que se genera y otros
archivos relevantes. El directorio por defecto es PGDATA. Dentro del directorio PGDATA
se encuentra el directorio PGDATA/Base y es el directorio por defecto en donde se
almacenan todos los objetos de una base de datos (tablas, ndices, funciones, etc.).
Adems cada objeto se distingue mediante el OID (el cual es un entero de 4 bytes sin signo)
o mediante filenode. En el caso de las tablas y los ndices poseen tres archivos asociados
los cuales son: el mapa de espacio libre, el mapa de visibilidad y por ltimo el de
inicializacin.

COMO FUNCIONA UN QUERY:

(Structured Query Language) es un lenguaje de programacin diseado para almacenar,
manipular y recuperar datos almacenados en bases de datos relacionales. La primera
encarnacin de SQL apareci en 1974, cuando un grupo de IBM desarroll el primer
prototipo de una base de datos relacional. Relational Software (luego se convirti en
Oracle) lanz la primera base de datos relacional comercial.
Existen estndares para SQL. Sin embargo, el SQL que puede utilizarse en cada uno de las
principales RDBMS actuales viene en distintas formas. Esto se debe a dos razones: 1) el
estndar SQL es bastante complejo, y no es prctico implementar el estndar completo, y 2)
cada proveedor de base de datos necesita una forma de diferenciar su producto de otros. En
esta gua de referencia, dichas diferencias se sealarn cuando sea apropiado.
Una consulta simple:
select firstname
from friend
where age = 33;
Cmo hace la base de datos para interpretar esto?


CONFIGURACION BASICA POSTGRESQL:
La configuracin se puede realizar por medio de archivos los cuales son:
Archivo postgresql.conf: Es el principal archivo de configuracin que determina
como funciona PostgreSQL.
Los parmetros modificados dentro de postgresql.conf fueron los siguientes:
listen_addresses= '*' checkpoint_segment = 10 max_connections = 22
checkpoint_timeout = 900 superuser_reserved_connections = 2
effective_cache_size (8KB)= 580MB shared_buffers (8KB)= 512MB
log_line_prefix = '%t:%r:%u@%d[%p]: ' work_mem (KB)= 5MB timestamp,
hostIP, user, database, PID mantenience_work_mem = 256MB log_statement =
'DDL' synchronous_commit = on Autovacuum = on wal_buffers = -1

Archivo pg_hba.conf El archivo hba (host based authentication: autenticacion
basada en host) le dice al servidor PostgreSQL como autenticar usuarios, basado en
una combinacin de su localizacin, tipo de autenticacin y la base de datos que
desea acceder. Ahora veremos cmo permitir conexiones remotas, primero
recordemos que listen_adress permita IP que nosotros sabes q son remotas, luego
abrimos pg_hba.conf y agremos la siguiente linea. host all all 0.0.0.0/0 md5.

Archivo pg_ident.conf: Este fichero se utiliza para definir la informacin necesaria
en el caso que utilicemos un acceso del tipo ident en pg_hba.conf .

Crear usuarios
La sintaxis para CREATE USER es:
CREATE USER nombre_usuario
[ WITH [ SYSID uid ]
[ PASSWORD 'password' ] ]
[ CREATEDB | NOCREATEDB ]
[ CREATEUSER | NOCREATEUSER ]
[ IN GROUP groupname [, ...] ]
[ VALID UNTIL 'abstime' ]
Descripcin cada una de las partes de la sintaxis de CREATE USER:

SYSID uid
Especifica que el ID que va a definirse debe establecerse al valor de uid.
Si se omite, un razonable y nico valor numrico por defecto es escogido.

PASSWORD 'password'

Establece la nueva contrasea del usuario. Si no se especifica, la contrasea por
defecto es NULL.

CREATEDB | NOCREATEDB

Usando la palabra clave CREATEDB se le garantiza al nuevo usuario el privilegio
de crear nuevas bases de datos, as como el de destruir las de su propiedad. Usando
NOCREATEDB se deniega este permiso (que es lo que ocurre por defecto).

CREATEUSER | NOCREATEUSER

Certifica el privilegio de crear nuevos usuarios. Si un usuario tiene los privilegios de
crear a otros usuarios tendr adems todos los privilegios, en todas las bases de
datos (incluyendo los permisos para crear una base de datos, aunque se haya
especificado NOCREATEDB).
NOCREATEUSER explcitamente fuerza a la situacin por defecto, que deniega el
privilegio.

IN GROUP nombre_grupo [, ...]

Aade al nuevo usuario al grupo llamado nombre_grupo. Pueden ser especificados
mltiples nombres de grupo, separndolos mediante comas. El o los grupos deben
existir para que funcione la condicin.

VALID UNTIL 'abstime'

Establece que la contrasea del usuario expirar el abstime, el cual debe ser un
formato reconocible de fecha/hora (timestamp). Tras esa fecha, la contrasea se
resetea, y la expiracin se hace efectiva.
VALID UNTIL 'infinity'
Establece validez permanente para la contrasea del usuario.
EXPORTAR UNA BASE DE DATOS.
Ya sea para generar una copia de respaldo (backup) como para importar en otro
servidor, es posible utilizar la herramienta pg_dump, la cual vuelca una base de
datos como una secuencia de instrucciones SQL en formato de texto plano (al igual
que la herramienta mysqldump de MySQL). Por ejemplo, si se desea exportar la
base de datos "mibd" al archivo "pg_mibd.sql" utilizando el usuario "postgres",
Ejecutar:
# pg_dump -U postgres -f pg_mibd.sql mibd
O
# pg_dump -U postgres mibd > pg_mibd.sql

Si en cambio se desean exportar todas las bases de datos de un servidor
PostgreSQL, utilizar la herramienta pg_dumpall:
Ejecutar:

# pg_dumpall -U postgres > pg_todo.sql


ARCHIVO DE CONFIGURACIN DE PostgreQSL:

Abort: Aborta la transaccin en curso
Modificar Grupo:
MODIFICAR GRUPO nombre AADIR USUARIO nombre de usuario [, ...
]MODIFICAR GRUPO nombre ELIMINAR USUARIO nombre de usuario [,
... ]
CREATE TABLE: Crea una nueva tabla
CREATE [ TEMPORARY | TEMP ] TABLE table (
column type
[ NULL | NOT NULL ] [ UNIQUE ] [ DEFAULT value ]
[column_constraint_clause | PRIMARY KEY } [ ... ] ]
[, ... ]
[, PRIMARY KEY ( column [, ...] ) ]
[, CHECK ( condition ) ]
[, table_constraint_clause ]
) [ INHERITS ( inherited_table [, ...] ) ]
Modificar Tabla:
MODIFICAR TABLA tabla [ * ]
AADIR [ COLUMNA ] columna tipo
MODIFICAR TABLA tabla [ * ]
MODIFICAR [ COLUMNA ] columna { SET DEFAULT valor | DROP
DEFAULT }
MODIFICAR TABLA tabla [ * ]
RENOMBRAR [ COLUMNA ] columna A nueva columna
MODIFICAR TABLA tabla
RENOMBRAR A nueva tabla
Modificar usurario:
MODIFICAR USUARIO nombre de usuario[ WITH PASSWORD palabra
clave ][ CREATEDB | NOCREATEDB ][CREATEUSER |
NOCREATEUSER][ VALID UNTIL abstime ]
BEGIN: comienza una transaccin en modo encadenado BEGIN [ WORK |
TRANSACTION ]
CLUSTER:
CLUSTER indexname ON table
COMMIT: Realiza la transaccin actual.
COMMIT [ WORK | TRANSACTION ]
COPY: Copia datos entre ficheros y tablas.
COPY [ BINARY ] table [ WITH OIDS ]FROM { filename | stdin }[ [USING]
DELIMITERS delimiter ][ WITH NULL AS null string ]COPY [ BINARY ]
table [ WITH OIDS ]TO { filename | stdout }[ [USING] DELIMITERS
delimiter ][ WITH NULL AS null string ]
CREATE AGGREGATE: Define una nueva funcin de agregado
CREATE AGGREGATE name [ AS ] ( BASETYPE = data_type [ , SFUNC1 =
sfunc1, STYPE1 = sfunc1_return_type ][ , SFUNC2 = sfunc2, STYPE2 =
sfunc2_return_type ][ , FINALFUNC = ffunc ][ , INITCOND1 = initial_condition1
][ , INITCOND2 = initial_condition2 ] )

CREATE DATABASE: Crea una nueva base de datos.
CREATE DATABASE name [ WITH LOCATION = dbpath ]
CREATE FUNCTION: Crea una nueva funcin.
CREATE FUNCTION name ( [ ftype [, ...] ] )
RETURNS rtype
[ WITH ( attribute [, ...] ) ]
AS obj_file , link_symbol
LANGUAGE C
CREATE INDEX: Crear un ndice secundario.
CREATE [ UNIQUE ] INDEX nombre_indice ON tabla
[ USING nombre_acceso ] ( columna [ nombre_operador] [, ...] )
CREATE [ UNIQUE ] INDEX nombre_indice ON tabla [ USING nombre_acceso ]
( nombre_funcion( r">columnale> [, ... ])
nombre_operador )
CREATE TRIGGER: Crea un nuevo disparador
CREATE TRIGGER name
{ BEFORE | AFTER } { event
[OR ...] } ON table
FOR EACH { ROW | STATEMENT } EXECUTE PROCEDURE
ER">funcBLE>
( arguments )
DELETE: Borrar filas de una tabla
DELETE FROM table [ WHERE condition ]
DROP AGGREGATE: Elimina la definicin de una funcin agregada
DROP AGGREGATE name type
DROP DATABASE: Elimina una base de datos existente
DROP DATABASE name
DROP TABLE: Eliminar tablas de una base de datos
DROP TABLE nombre [, ...]
DROP TRIGGER: Eliminar la definicin de un disparador
DROP TRIGGER nombre ON tabla
























BIBLIOGRAFIA

Documentacin de PostgreSQL de la distribucin:

http://www.alegsa.com.ar/Dic/servidor%20de%20base%20de%20datos.php
http://www.postgresql.org.es/sobre_postgresql
http://www.slideshare.net/bjhp90/arquitectura-e-implementacin-de-postgresql-93
http://www.1keydata.com/es/sql/
https://wiki.postgresql.org/images/4/43/Postgresql_como_funciona_una_dbms_por_dentro.
pdf
http://www.linuxito.com/programacion/333-como-exportar-y-restaurar-bases-de-datos-
postgres