Está en la página 1de 29

Instituto Tecnolgico Superior De Calkini En El Estado De Campeche

Ingeniera en Sistemas computacionales

Sexto Semestre

Administracin De Base De Datos

Alumnos: Elmer Daniel Hernndez Uicab Lizbeth Candelaria Berzunza Medina David Alejandro Prez Colli Oscar David Tzeek Tzeek Jorge Israel Pech Ek Edward Alfonso Chi Y otros

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 multihilospara garantizar la estabilidad del sistema. Un fallo en uno de los procesos no afectar el resto y el sistema continuar funcionand Aplicacin cliente: Esta es la aplicacin cliente que utiliza PostgreSQL como administrador de bases de datos. La conexin puede ocurrir via TCP/IP 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. Tambien 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 configuracion: 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

CARACTERSTICAS
Algunas de sus principales caractersticas son, entre otras:

ALTA CONCURRENCIA
Mediante un sistema denominado MVCC (Acceso concurrente multiversin, por sus siglas en ingls) PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visin consistente de lo ltimo a lo que se le hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas comn en otras bases, eliminando la necesidad del uso de bloqueos explcitos.....

AMPLIA VARIEDAD DE TIPOS NATIVOS


PostgreSQL provee nativamente soporte para: Nmeros de precisin arbitraria. Texto de largo ilimitado. Figuras geomtricas (con una variedad de funciones asociadas). Direcciones IP (IPv4 e IPv6). Bloques de direcciones estilo CIDR. Direcciones MAC. Arrays.

Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que pueden ser por completo indexables gracias a la infraestructura GiST de PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el proyecto PostGIS.

OTRAS CARACTERSTICAS
Claves ajenas tambin denominadas Llaves ajenas o Claves Forneas ( foreign keys). Disparadores (triggers): Un disparador o trigger se define como una accin especfica que se realiza de acuerdo a un evento, cuando ste ocurra dentro de la base de datos. En PostgreSQL esto significa la ejecucin de un procedimiento almacenado basado en una determinada accin sobre una tabla especfica. Ahora todos los disparadores se definen por seis caractersticas: o o o o o El nombre del disparador o trigger El momento en que el disparador debe arrancar El evento del disparador deber activarse sobre... La tabla donde el disparador se activar La frecuencia de la ejecucin

o o

La funcin que podra ser llamada La funcin no es correcta

Entonces combinando estas seis caractersticas, PostgreSQL le permitir crear una amplia funcionalidad a travs de su sistema de activacin de disparadores (triggers). Vistas. Integridad transaccional. Herencia de tablas. Tipos de datos y operaciones geomtricas. Soporte para transacciones distribuidas. Permite a PostgreSQL integrarse en un sistema distribuido formado por varios recursos (p.ej, una base de datos PostgreSQL, otra Oracle, una cola de mensajes IBM MQ JMS y un ERP SAP) gestionado por un servidor de aplicaciones donde el xito ("commit") de la transaccin globlal es el resultado del xito de las transacciones locales

FUNCIONES
Bloques de cdigo que se ejecutan en el servidor. Pueden ser escritos en varios lenguajes, con la potencia que cada uno de ellos da, desde las operaciones bsicas de programacin, tales como bifurcaciones y bucles, hasta las complejidades de la programacin orientada a objetos o la programacin funcional. Los disparadores (triggers en ingls) son funciones enlazadas a operaciones sobre los datos. Algunos de los lenguajes que se pueden usar son los siguientes: Un lenguaje propio llamado PL/PgSQL (similar al PL/SQL de oracle). C. C++. Java PL/Java web. PL/Perl. plPHP. PL/Python. PL/Ruby. PL/sh. PL/Tcl. PL/Scheme. Lenguaje para aplicaciones estadsticas R por medio de PL/R.

PostgreSQL soporta funciones que retornan "filas", donde la salida puede tratarse como un conjunto de valores que pueden ser tratados igual a una fila retornada por una consulta (query en ingls). Las funciones pueden ser definidas para ejecutarse con los derechos del usuario ejecutor o con los derechos de un usuario previamente definido. El concepto de funciones, en otros DBMS, son muchas veces referidas como "procedimientos almacenados" (stored procedures en ingls).

VENTAJAS
Ampliamente popular - Ideal para tecnologias Web. Fcil de Administrar. Su sintaxis SQL es estndar y fcil de aprender. Footprint bajo de memoria, bastante poderoso con una configuracin adecuada. Multiplataforma. Capacidades de replicacin de datos. Soporte empresarial disponible.

DESVENTAJAS
En comparacin con MySQL es ms lento en inserciones y actualizaciones, ya que cuenta con cabeceras de interseccin que no tiene MySQL. Soporte en lnea: Hay foros oficiales, pero no hay una ayuda obligatoria. Consume ms recursos que MySQL. La sintaxtis de algunos de sus comandos o sentencias no es nada intuitiva.

INSTALACION DE POSTGREE PARA WINDOWS 7


Abriremos un navegador web y accederemos a la URL: http://www.postgresql.org/download/windows En nuestro caso descargaremos la versin an no estable 9.0.0 RC1 para Windows de 32 bits (Win x86-32):

Una vez descargado el archivo de instalacin de PostgreSQL (postgresql-9.0.0-rc1windows.exe de 45,5 MB) pulsaremos con el botn derecho del ratn sobre l y seleccionaremos "Ejecutar como administrador":

Si tenemos activado el control de cuentas de usuario nos mostrar una advertencia con el texto "Desea permitir que este programa realice cambios en el equipo?", pulsaremos "S" para continuar con la instalacin de PostgreSQL:

Se iniciar el asistente para instalar PostgreSQL, pulsaremos "Siguiente":

Indicaremos la carpeta de instalacin de PostgreSQL, donde se guardarn los ejecutables, libreras y ficheros de configuracin de PostgreSQL:

Indicaremos tambin la carpeta donde se guardarn los datos por defecto de PostgreSQL:

Introduciremos la contrasea para el superusuario "postgres" que ser con el que iniciemos sesin para administrar la base de datos:

Introduciremos el puerto de escucha para la conexin con el servidor PostgreSQL, por defecto el 5432:

Seleccionaremos la configuracin regional:

Pulsaremos "Siguiente" para iniciar la instalacin definitiva del servidor PostgreSQL en Microsoft Windows 7:

Se iniciar el asistente para instalar el motor de base de datos PostgreSQL, que crear las carpetas oportunas, copiar los ficheros necesarios y crear el servicio Windows para iniciar de forma automtica el motor de base de datos:

Una vez finalizada la instalacin el asistente nos dar la posibilidad de ejecutar Stack Builder, aplicacin que nos permitir instalar otros componentes y herramientas para PostgreSQL:

Si hemos marcado la opcin de Stack Builder, se iniciar, seleccionaremos "PostgreSQL 9.0 on port 5432" y pulsaremos "Next":

Seleccionaremos las aplicaciones, componentes y herramientas a instalar y pulsaremos "Next" (en nuestro caso cancelaremos Stack Builder pues no instalaremos ms componentes):

El asistente para instalar el servodpr PostgreSQL habr creado un servicio que estar iniciado y en tipo de inicio automtico llamado "postgresql-9.0":

Y habr creado la carpeta en archivos de programa "PosgreSQL" con las subcarpetas:

Y la carpeta de datos:

Con esto habremos convertido nuestro equipo Microsoft Windows 7 en un servidor de base de datos PostgreSQL. Si queremos que los equipos de nuestra red tengan acceso al servidor PostgreSQL y tenemos algn cortafuegos (firewall) deberemos abrir el puerto 5432. Y si queremos que se tenga acceso desde Internet al servidor PostgreSQL deberemos redireccionar (mapear) el puerto 5432 en el router o cortafuegos de nuestra empresa.

Administracin de PostgreSQL, creacin de usuarios (roles), catlogos Crear roles de login (usuarios) en PostgreSQL
Para el acceso a la administracin del motor de base de datos PostgreSQL accederemos al botn "Iniciar" - "PostgreSQL 9.0" - "pgAdmin III":

Desplegaremos "Server Groups", dentro desplegaremos "Servidores" y dentro de ste pulsaremos con el botn derecho del ratn sobre "PostgreSQL 9.0 (localhost:5432), en el men emergente seleccionaremos "Conectar":

Introduciremos la contrasea para el superusuario postgres (la contrasea introducida en la instalacin):

Si todo es correcto nos conectaremos al servidor PostgreSQL, desde pgAdmin podremos configurar y administrar el servidor de PostgreSQL:

Para crear un rol de login pulsaremos con el botn derecho del ratn sobre "Roles de Login", seleccionaremos "Nueva Rol de Login":

En la pestaa "Propiedades" introduciremos los siguientes datos: Nombre del Rol: nombre del usuario, en nuestro caso "ajpdsoft". Contrasea: contrasea para este usuario (rol). La cuenta caduca: si queremso que la cuenta de usuario caduque en una fecha la estableceremos en este campo.

En la pestaa "Privilegios de Rol" podremos indicar si este usuario ser superusuario, si puede crear objetos de la base de datos y si puede crear roles:

Pulsaremos "OK" en la ventana anterior para crear el rol de login. El script SQL para crear un usuario (rol) en PostgreSQL, script que podremos ver en la pestaa "SQL", antes de pulsar en "OK" en la ventana anterior:
CREATE ROLE ajpdsoft LOGIN ENCRYPTED PASSWORD 'md55f8e1f359c12dafag3h3hfjbxxxb857' VALID UNTIL 'infinity';

Crear tablespace para guardar los datos de una base de datos en PostgreSQL
Antes de crear una base de datos, podemos crear el tablespace donde guardaremos los datos de la misma, si bien se pueden utilizar los tablespaces por defecto de PostgreSQL (pg_default y pg_global) es recomendable crear tablespaces separados. Para crear un tablespace accederemos a la administracin pgAdmin, sobre "Tablespaces" pulsaremos con el botn derecho y seleccionaremos "Nuevo Tablespace":

En la pestaa "Propiedades" introduciremos los siguientes datos: Nombre: nombre que identificar el tablespace, en nuestro caso "tb_ajpdsoft". Locacin: ubicacin de los datos del tablespace, en nuestro caso:

C:datos_postgresqltb_ajpdsoft

Propietario: seleccionaremos el usuario creado anteriormente "ajpdsoft".

Pulsaremos "OK" para crear el tablespace:

Nota: la carpeta de destino de existir, de lo contrario mostrar un error como este: --------------------------pgAdmin III --------------------------Ha ocurrido un error: ERROR: directory "C:/datos_postgresql/tb_ajpdsoft" does not exist --------------------------Aceptar

--------------------------El script SQL que crear el tablespace en PostgreSQL (si lo hicisemos sin el modo grfico de pgAdmin
CREATE TABLESPACE tb_ajpdsoft OWNER ajpdsoft LOCATION E'C:datos_postgresql b_ajpdsoft';

Inicialmente, PostgreSQL crear una subcarpeta dentro de la carpeta indicada para el tablespace con un nombre como este: PG_9.0_201008051

Crear base de datos para guardar tablas y vistas en PostgreSQL


Para crear una nueva base de datos en PostgreSQL abriremos pgAdmin, pulsaremos con el botn derecho del ratn sobre "Bases de datos", seleccionaremos "Nueva Base de Datos":

En la pestaa "Propiedades" introduciremos los siguientes datos: Nombre: nombre de la base de datos, en nuestro caso "bdajpdsoft". Propietario: seleccionaremos el usuario creado anteriormente "ajpdsoft". Codificado: seleccionaremos UTF8. Tablespace: seleccionaremos el tablespace creado anteriormente "tb_ajpdsoft". Colacin: seleccionaremos "Spanish_Spain.1252". Tipo carcter: seleccionaremos "Spanish_Spain.1252".

Pulsaremos "OK" para crear la base de datos:

El script SQL para crear una base de datos postgreSQL desde la lnea de comandos:
CREATE DATABASE bdajpdsoft WITH ENCODING='UTF8' OWNER=ajpdsoft LC_COLLATE='Spanish_Spain.1252' LC_CTYPE='Spanish_Spain.1252' CONNECTION LIMIT=-1 TABLESPACE=tb_ajpdsoft;

Crear un esquema y una tabla de ejemplo en PostgreSQL


Para crear un esquema en la base de datos creada anteriomente, la desplegaremos en pgAdmin, en "Esquemas" de esta base de datos pulsaremos con el botn derecho y seleccionaremos "Nuevo Esquema":

En la pestaa "Propiedades" indicaremos el nombre para el esquema, por ejemplo "ajpdsoft" y el usuario (login de inicio) propietario, en nuestro caso "ajpdsoft". Pulsaremos "OK" para crear el esquema:

El script SQL para crear el esquema en PostgreSQL:


CREATE SCHEMA ajpdsoft AUTHORIZATION ajpdsoft;

Para crear una tabla dentro del esquema "ajpdsoft" (que a su vez est dentro de la base de datos "bdajpdsoft") pulsaremos con el botn derecho del ratn sobre "Tablas" (dentro del esquema) y seleccionaremos "Nueva Tabla":

Introduciremos el nombre de la tabla, por ejemplo "facturas", el propietario "ajpdsoft", el Tablespace "tb_ajpdsoft":

En la pestaa "Columnas" pulsaremos "Aadir":

Introduciremos el nombre de la columna, por ejemplo "codigo", el tipo de datos (para el autoincremento en PostgreSQL seleccionaremos "serial"), puesto que esta columna ser clave primaria marcaremos "No Nulo":

De la misma forma, aadiremos el resto de las columnas para la tabla "facturas": fecha (de tipo "date"), codigocliente (de tipo "integer"), numero (de tipo "character(40)"), importe (de tipo "money") y observacion (de tipo "text"):

En la pestaa "Restricciones", para aadir una clave primaria para la tabla, seleccionaremos "Clave Primaria" y pulsaremos "Aadir":

En "Nombre", introduciremos el nombre para la clave primaria, por ejemplo: cp_codigo:

En la pestaa "Columnas" seleccionaremos "codigo" y pulsaremos "Aadir":

Pulsaremos "OK" para crear la clave primaria para el campo "codigo":

Y ya tendremos creada la tabla "facturas" de PostgreSQL:

El script SQL para crear una tabla en PostgreSQL: CREATE TABLE ajpdsoft.facturas ( codigo serial NOT NULL, fecha date, codigocliente integer, numero character(40), importe money, observacion text, CONSTRAINT cp_codigo PRIMARY KEY (codigo) ) WITH ( OIDS = FALSE ) TABLESPACE tb_ajpdsoft; ALTER TABLE ajpdsoft.facturas OWNER TO ajpdsoft;

También podría gustarte