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