You are on page 1of 140

ADMINISTRACIN DE BASES DE DATOS

Manual de Prcticas
Profesora: Gloria Concepcin Tenorio Seplveda

Presenta:
Arenas Gonzlez Rodrigo
Mendoza Roldan Fernando Irvin
Valencia Quiroz Orlando Alejandro

1
Contenido
Prctica 1: Compras .................................................................................................................... 4
Marco Terico ................................................................................................................................ 5
DML con PostgreSQL. ................................................................................................................. 16
Conclusin ................................................................................................................................... 23
Prctica 2: Instalacin de PostgreSQL ....................................................................................... 24
Marco Terico .............................................................................................................................. 25
Marco Terico .............................................................................................................................. 33
Conclusin ................................................................................................................................... 40
Prctica 3: Recibo de Honorarios. .............................................................................................. 41
Marco terico ............................................................................................................................... 42
Desarrollo Prctica 3: Recibo de Honorarios. ............................................................................. 45
Conclusin ................................................................................................................................... 48
Prctica 4: Solicitud de Reinscripcin. ....................................................................................... 49
Marco terico ............................................................................................................................... 50
Desarrollo Prctica 4: Solicitud de Reinscripcin. ..................................................................... 53
Conclusin ................................................................................................................................... 56
Practica 1: Telegrama ................................................................................................................ 58
Marco Terico. ............................................................................................................................. 59
Desarrollo Prctica 1: Telegramas.............................................................................................. 62
Conclusin ................................................................................................................................... 67
Prctica 2: Tabla de Respaldo .................................................................................................... 68
Marco Terico .............................................................................................................................. 69
Conclusin.................................................................................................................................... 78
Prctica 3: Bitcora.................................................................................................................... 79
Marco Terico .............................................................................................................................. 80
Conclusin ................................................................................................................................... 86
Prctica 4: Escuela. ................................................................................................................... 88
Marco terico ............................................................................................................................... 89
Desarrollo Prctica 4: Escuela. .................................................................................................. 92
Conclusin ................................................................................................................................. 100
Prctica 5: Medicamentos........................................................................................................ 101
Marco Terico ............................................................................................................................ 102
Desarrollo Prctica 5: Medicamentos....................................................................................... 106
Conclusin ................................................................................................................................. 109
Prctica 6: Generar 5000 registros e ndices ............................................................................. 110
Objetivos: ................................................................................................................................... 110
Marco Terico ............................................................................................................................ 111
Desarrollo Prctica 6: 5000 Registros. ..................................................................................... 115
Conclusin ................................................................................................................................. 122
Prctica 7: Calificaciones. ....................................................................................................... 123
Marco Terico ............................................................................................................................ 124
Conclusin ................................................................................................................................. 128
Transacciones ............................................................................................................................. 129
Usuarios ..................................................................................................................................... 135
Marco Terico. ........................................................................................................................... 136
Instrucciones:.................................................................................................................... 136
2
Desarrollo Prctica Usuarios ............................................................................................ 137
Conclusin ................................................................................................................................. 138

3
Prctica 1: Compras

DML con Oracle SQL Developer.

Objetivos:
Comprender los datos que existen y su relacin, para identificar como sern almacenados.
Realizar el modelo relacional del ejercicio propuesto con todos sus elementos.
Identificar las llaves primarias llaves forneas y enlazar de manera correcta a sus columnas de
referencia.
Aprender y analizar la creacin de base de datos y tablas atreves de cdigo ORACLE SQL
Developer.
Realizar al menos 3 inserciones de datos y mostrar en captura de pantalla.
realizar la creacin de funciones SEQUENCE y TRIGGER por medio de cdigo y entorno grfico.

Materiales:
Un ordenador con instalacin previa de:
Oracle 11g Express
Oracle SQL Developer
Oracle JDK

4
Marco Terico

Hoy en da el manejo de informacin y sobre todo el almacenamiento de datos es una parte muy importante
en cualquier mbito laboral. Para realizar estas dos acciones se utiliza una base de datos, pero, Qu es
una base de datos? Una base de datos es una coleccin de archivos relacionados que permite el manejo
de la informacin de alguna compaa. Cada uno de dichos archivos puede ser visto como una coleccin
de registros y cada registro est compuesto de una coleccin de campos (Prez Valds, 2007)

Esto se realiza a travs de un gestor de base de datos, Un Sistema Gestor de Bases de Datos (SGBD) o
DBMA (DataBase Management System) es una coleccin de programas cuyo objetivo es servir de interfaz
entre la base de datos, el usuario y las aplicaciones. Se compone de un lenguaje de definicin de datos,
de un lenguaje de manipulacin de datos y de un lenguaje de consulta. (Avila, s.f.)

Para el problema que se nos presenta ocuparemos el gestor ORACLE, Oracle es bsicamente una
herramienta cliente/servidor para la gestin de Bases de Datos. Donde desarrollaremos una base de datos
para una empresa la cual requiere almacenar la informacin de todas las compras que hace para su
reabastecimiento donde se registrara desde la solicitud, datos de los proveedores, facturas, y todos los
datos necesarios para un mejor control de compras.

5
Instrucciones:

Realizar el modelo relacional del problema solicitado.


Configurar Oracle 11g con nuestro servidor local (en caso de ser necesario).
Abrir la consola SQL Developer e introducir los cdigos que requerimos utilizar.

Ejercicio Sugerido:

En una empresa a nivel nacional se lleva el control de los bienes y servicios dentro del departamento de
Recursos Materiales. Se conoce lo siguiente:

El rea recibe las solicitudes de compras de las diferentes reas de la empresa.


Cada solicitud tiene un responsable quien es quien autoriza la solicitud
Quien realiza una solicitud (el responsable) puede pertenecer a un solo departamento en un
momento determinado.
De la solicitud se debe colocar la siguiente informacin: Nmero de la solicitud (consecutivo), fecha,
responsable (nombre y cdula), departamento, rubro presupuestal del cual se descargar la compra
(para ello existe un catlogo de partidas presupuestales), adems contiene un campo de
observaciones. En cada solicitud se pueden incluir uno o muchos bienes con la siguiente informacin:
identificador, nombre del bien, cantidad solicitada, unidad de medida del bien, valor unitario y valor
total. Cada solicitud tiene totales.
Cada bien es identificado por un cdigo universal que es nico. El bien puede ser suministro o
inmueble.
Cuando el rea de compras recibe la solicitud se agrupan para realizar una orden de compra
que maneja la siguiente informacin: Nmero de la orden de compra, nmero de identificacin y
nombre del proveedor al cual se le va a realizar la compra, fecha de la orden, monto total de la
orden, fecha de entrega. Cada orden puede incluir una o ms facturas.
La orden de compra es aprobada por el Director Financiero para que sea enviada al proveedor
elegido.

6
Modelo Relacional:

7
Desarrollo de Prctica 1 Compras con Oracle Developer.

Creacin de tablas:

Creamos la tabla departamentos con su respectiva llave fornea.

8
Se crea la tabla Tipo_Bienes con sus respectivos atributos.

Se crea la tabla bienes con su respectiva llave fornea.

9
Se agrega el cdigo correspondiente para hacer el enlace de la llave fornea entre la tabla Bienes y Tipos
de Bienes.

Se crea la tabla Empleado con su respectiva llave fornea Departamento.

10
Creamos la tabla Presupuestal con su respectiva llave primaria.

Realizamos cdigo para la creacin de la tabla Solicitud de Compras con sus respectivas llaves forneas
para sus enlaces.

11
Escribimos la sintaxis para crear la tabla Bienes-Solicitud-de-compras, con todos sus elementos
correspondientes.

Realizamos la tabla facturas con su respectiva llave primaria.

12
Indexamos y creamos la tabla Proveedores con sus campos.

Realizamos la sintaxis para la creacin de la tabla Orden-de-Compra y sus llaves forneas.

13
Creamos la tabla Detalla-de-Compra con los Id de sus campos forneos.

Creacin de Secuencias Y Trigger.

Creamos la secuencia y los trigger que se encargarn de autoincrementar el ID de cada tabla.

14
Insercin de Datos

Realizamos el cdigo para insertar datos en los campos de la tabla Tipo-de-bienes.

Insertamos datos en la tabla proveedores, este procedimiento se realizara para cada una de las tablas que
tenemos.
15
DML con PostgreSQL.

Objetivos Prctica 1: Compras:

El alumno conocer la interfaz principal de PostgreSQL.


Conocer las sentencias principales de DDL (Lenguaje de Definicin de Datos) de PostgreSQL.
Analizar las diferentes sentencias de DML (Lenguaje de Manipulacin de Datos).
Aplicar el Lenguaje SQL para la manipulacin de datos en PostgreSQL.

Material Prctica 1: Compras:

Una computadora con PostgreSQL instalado (pgAdmin III)


Un Modelo relacional de nuestra base de datos.
Los cdigos DML de PostgreSQL principales.

Instrucciones:
Realizar el modelo relacional del problema solicitado.
Configurar pgAdmin III con nuestro servidor local (en caso de ser necesario).
Abrir la consola SQL de pgAdmin III e introducir los cdigos que requerimos utilizar.

16
Desarrollo de Prctica 1 Compras con PostgreSQL.
Creacin de tablas:

Primeramente debemos crear la base de datos y para ellos vamos a dar clic derecho en Databases y
seleccionamos New Database

17
Escribimos el nombre de la base de datos. Y presionamos Ok para aceptar

Seleccionamos la base de datos que hemos creado y damos clic en Execute arbitrary SQL queries para
abrir la consola de PostgreSQL.

Abierta la consola vamos a escribir los comandos DML, para la creacin de una tabla vamos a usar el
comando CREATE TABLE, seguido del nombre de la tabla, y entre parntesis los atributos de nuestra
tabla entre comillas, para ejecutar una sentencia nos posicionamos en la barra de herramientas y
presionamos Execute Query

18
Debemos especificar qu tipo de dato es ese atributo

Para asegurar la integridad de la llave primaria vamos a usar CONSTRAINT y para crear la llave primaria
usamos PRIMARY KEY, en el OUTPUT PANE podemos ver cuando una sentencia se ejecut
correctamente o tiene algn error.

19
Creacin de Llaves Forneas.

Para crear una llave fornea usamos ALTER TABLE que nos permitir modificar una tabla ya creada,
posteriormente, vamos a ingresar ADD CONSTRAINT que nos permitir asegurar la integridad de la llave
fornea.

Se crear la llave fornea con el comando FOREING KEY seguido del nombre de la llave fornea que ya
20
previamente hemos creado en la tabla como un atributo.

Para que nuestras tablas queden con la opcin de CASCADA cuando se actualiza o elimina algn campo
de la tabla, vamos a usar ON UPDATE CASCADE (para la actualizacin), ON DELETE CASCADE (para
la eliminacin)

20
21
Insercin de Datos con PostgreSQL.

Para insertar datos vamos a usar el comando INSERT INTO y el nombre de la tabla a la que vamos a
insertar.

Para asignar los valores que se van a insertar dentro de la tabla previamente seleccionada, usaremos el
comando VALUES y entre parntesis los valores que se introducirn en la tabla, es importante que estos
valores estn entre comillas simples separados por una coma.

22
Conclusin

La prctica abarca la metodologa necesaria para modular bases de datos, contiene una valiosa
informacin que facilita al usuario el desarrollo en cualquier sistema operativo y gestor de bases de datos.
Los ejercicios propuestos estn diseados para reforzar los conocimientos adquiridos durante el curso
pasado Taller de bases de datos.

Cabe destacar que usamos Oracle SQL Developer ya que le proporciona al desarrollador (DBA) una amplia
gama de herramientas, funciones, para modelar una base de datos, siempre apoyndonos en una serie de
pasos bien definidos, llevando a la prctica los lineamientos tericos para identificar los atributos y las
relaciones explcitas entre las entidades.

Adems mostramos la interfaz de usuario y los comandos DML bsicos de un SGBD que est ganando
terrero y presenta cosas muy prometedoras en el mundo de las Data Bases, PostgreSQL quien nace en
los 80s se ha incrustado en el mercado como uno de los mejores SGBD, pues sus diferentes herramientas
son superiores a sistemas ms complejos como MySQL.

23
Prctica 2: Instalacin de PostgreSQL

Instalacin en MACOSX.

Objetivos:
Realizar una instalacin limpia del gestor de base de datos PostgreSQL en MACOSX.
Conocer los pasos de instalacin en las diferentes plataformas.
Conocer la interfaz principal de PostgreSQL.
Hacer una conexin al servidor PostgreSQL en el operativo MAC OSX.

Materiales
Un ordenador con los siguientes requerimientos mnimos:
8mb en RAM.
30mb de espacio en disco duro para el cdigo fuente.
5mb de espacio en el disco duro para la instalacin del cdigo fuente.
1mb extra para las bases de datos bsicas.
Sistema operativo Windows 7 o posterior.

24
Marco Terico

En un cambio sin previo aviso Apple ha intercambiado la base de datos construida en MySQL instalado en
las versiones de servidor OS X anteriores y lo reemplaz con PostgreSQL en Lion. Este giro de los
acontecimientos, por supuesto, tiene todo un gorjeo la comunidad PostgreSQL. Probablemente ninguno
ms de EnterpriseDB, la compaa que ofrece una versin con soporte comercial y de servicios en torno a
la popular licencia BSD base de datos de cdigo abierto.

Karen Padir, vicepresidente de Producto y Marketing y Sean Doherty, vicepresidente de desarrollo de


negocios en EnterpriseDB, quedaron sorprendidos, con el movimiento de Apple y lo ven con una seal de
que PostgreSQL se est convirtiendo en la opcin preferida de las bases de datos de cdigo abierto.

EnterpriseDB y otros partidarios de PostgreSQL dicen que la base de datos ha recorrido un largo camino
en los ltimos aos. No slo es tan buena como MySQL pero en muchos aspectos que cuentan es superior
a MySQL.En cualquier caso EnterpriseDB espera ver un aumento de nuevos clientes y usuarios de
PostgreSQL como resultado del interruptor.

Por supuesto, para ser justos, algunas cosas deben ser mencionadas. En primer lugar es que la cuota de
mercado de los servidores de Apple es insignificante en el mejor de los casos. La mayora de los estudios
de la cuota de mercado de servidores ni siquiera se acerca a la lista de Apple. En segundo lugar, este
movimiento junto con varios otros por Apple parece mostrar que tal vez Apple tiene otros motivos.

MySQL no fue el nico componente "ausentes" de Lion Server en comparacin con Snow Leopard
Server. La nueva versin - que redujo el precio de $ 500 a $ 50 - tambin ha abandonado el soporte
nativo para Tomcat, Axis, acceso mvil y la propia QuickTime Streaming Server de Apple. Para muchos
usuarios, es difcil decir si Apple es simplemente moviendo la responsabilidad de mantener este tipo de
programas hasta a la fecha de vuelta a los desarrolladores y usuarios (como lo ha hecho con Java y
ahora MySQL) con el fin de permitir a los usuarios ms libertad en la eleccin versiones o ramas - o si
est saliendo lentamente del mercado de servidores en conjunto. (Shimel, 2011)

25
Instalacin.

Primero:

1 Se recomienda a todos descargar la ltima versin ms conocida por estos das como iPhone SDK
desde la pgina de Apple. O instalar las Developer Tools (que vienen en el disco de instalacin) si
usas Tiger o versin superior.

2 Descargar la ltima versin de PostgreSQL desde postgresql.org (los .md5 son las firmas digitales,
no los archivos que queremos). De preferencia, en el escritorio.

3 Hacer doble click en el archivo recin descargado para que se descomprima y ya tenemos la
carpeta para compilar.

Compilar PostgreSQL

1 Abrimos el Terminal (Aplicaciones > Utilidades > Terminal)

2 Escribimos el comando $ cd luego espacio, arrastramos y soltamos la carpeta recin


descomprimida en la ventana del Terminal para que quede la ruta escrita en la misma lnea. Enter
(o return). Debera quedar algo como: $ cd /Users/Mayd/Desktop/postgresql-8.3.1

Configurar

Antes de comenzar a compilar, hay que generar los Makefiles. Esto se hace ejecutando el script incluido
configure con parmetros opcionales. El comando y los parmetros que eleg fueron los siguientes:

./configure --enable-thread-safety \

--without-docdir \

--with-perl \

--with-gssapi \

--with-pam \

--with-bonjour \

--with-openssl

No us --prefix= porque no tengo problemas en que Postgres se instale en /usr/local. Tampoco --exec-
prefix= porque no necesito que sea independiente de la plataforma, es para instalarlo aqu mismo.

En general no recomiendo personalizar las carpetas donde Postgres va a instalar sus archivos, para tener
una instalacin de lo ms normal y conocida que permitan pedir ayuda para arreglar problemas sin
complicaciones. Leopard, como UNIX, viene con readline instalado, as que no hay muchas

26
complicaciones. El --without-docdir es para que no instale la documentacin en ingls, pero lo puedes
obviar sin problemas.

El --enable-dtrace suena tentador, pero no es necesario ya que no vamos a analizar el proceso de


compilacin y, segn el archivo README, ahora slo tiene soporte para Solaris (un muy buen sistema
operativo para desarrolladores).

Al presionar return se demora un poco porque est revisando las libreras, el sistema, etc. Debera aparecer
una lista de checking y unas config.status. Todo normal.

Make

Estamos listos con el cdigo fuente, ahora falta compilar. Comando:

$ make

ste se demora ms, ocupa ms el procesador, pero en unos minutitos debera haber terminado con la
frase:

All of PostgreSQL successfully made. Ready to install.

Ya. Est listo para instalar.

Instalacin

La instalacin es igual de fcil. Lo nico que hay que hacer (por ahora) es escribir:

$ sudo make install

Lo tpico. Si pide la password, la escribimos y listo. La contrasea no aparecer en pantalla.

PostgreSQL installation complete.

Eso es todo. PostgreSQL est instalado en /usr/local/pgsql/

pgAdmin III

Antes de seguir, sera bueno instalar la ltima versin del software pgAdmin III cuya instalacin es tan fcil
como la mayora de las instalaciones de Mac OS X: arrastrar un archivo a la carpeta de Aplicaciones.

Crear la base de datos

Al igual que en Windows, se estila crear un usuario dedicado para que PostgreSQL administre los datos.
Ms bien es un requisito. En mi caso voy a guardar los datos en la carpeta /usr/local/pgsql/data como viene
por defecto, pero esto cambia segn la necesidad y configuracin personal de cada usuario. Para crear la
carpeta ah, utilizo el famoso comando:

$ mkdir /usr/local/pgsql/data

27
Despus hay que crear el usuario. Y como no me molesta tener un usuario ms en la pantalla de inicio de
sesin (si tienes el inicio de sesin automtico, ni lo vas a ver), lo creo normalmente desde Preferencias
del Sistema > Cuentas > +

Si te molesta el usuario en la ventana de inicio de sesin, lo puedes esconder con la plist correspondiente.

Bueno, ahora que existe el usuario postgres, hacemos que la carpeta /usr/local/pgsql/data pertenezcan a
este nuevo usuario.

$ sudo chown postgres /usr/local/pgsql/data

Para inicializar la base de datos, debemos entrar a la cuenta de postgres con

$ su -l postgres

Y la inicializamos por primera vez con el script:

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

Al finalizar, aparecern dos lneas muy importantes, ya que estos comandos se usarn para iniciar el
servidor de postgresql para que funcione. En mi caso iniciar el servidor de PostgreSQL con:

28
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

Y lo terminar con:

/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile stop

Cabe recordar que estos comandos slo funcionan desde el usuario postgres as que siempre habr que
iniciar su sesin escribiendo antes:

$ su -l postgres

$ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

Ahora que est el servidor corriendo, podemos cerrar todas las ventanas.

Crear los usuarios

La forma ms fcil de crear los usuarios es abrir el software pgAdmin3, presionar el ENCHUFE para crear
un nuevo servidor dentro del programa con los datos conocidos:

Una vez conectado, creamos un nuevo usuario desde Editar > Nuevo Objeto > Nueva rol de Login...

29
Aqu se pueden usar nuestros propios datos que se usarn para conectarnos desde los cdigos que
podamos estar escribiendo.

Ya podemos crear una nueva base de datos.

Para el nuevo usuario recin creado, recomiendo utilizar la codificacin de caracteres UTF-8 como estndar
si vamos a usar caracteres que no estn en el idioma ingls, como la con tilde.

30
Si nos desconectamos (con el mismo ENCHUFE), por seguridad deberamos ir a Propiedades

... Y cambiar el nombre de la base de datos (BD de Mantenimiento) y el usuario dueo de esa base datos
que recin configuramos.

Cuando nos volvamos a conectar, nos va a volver a pedir la contrasea del usuario nuevo.

31
Y una vez conectados a la base de datos local, deberamos tener un PostgreSQL completo funcionando
en nuestro Mac.

32
Marco Terico

En la actualidad muchos SGBD (Sistemas Gestores de Base de Datos) compiten arduamente por ocupar
un lugar en el mercado de las bases de datos, no obstante cada da es ms difcil la batalla y es necesario
conocer todas las ventajas y desventajas que nos ofrece cada SGBD. Muchas veces los ms conocidos
no son la mejor opcin para nuestras necesidades, aun as, es necesario conocerlos.

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. (Giber Ginest & Prez Mora, s.f, p.5)

Los SGBD de carcter libre, por lo general, son muy carentes en muchos aspectos, y no obstante tienen
muy poca documentacin especializada, incluso se puede afirmar que la documentacin existente est mal
fundamentada o simplemente des-actualizada, pero, no en el caso de PostgreSQL que ha trascendido a
travs de los tiempos como un SGBD muy estable en cualquier S.O e incluso con mayor optimizacin en
S.O de carcter openSource (libres) tales como Ubuntu, Fedora, OpenSuse, Red Hat y muchas
distribuciones mas, adems, PostgreSQL ha ganado terreno en el mercado gracias a la integridad con la
que maneja los datos, si bien la documetacin actual est carente, muchos blogs dedicados a ste
SGDB nos dan una solucin bastante viable y rpida.

33
Instalacin PostgreSQL en Windows

Paso 1: Primero nos dirigimos al siguiente enlace:


HTTP://WWW.POSTGRESQL.ORG/DOWNLOAD/WINDOWS/

Paso 2: Situados en la pgina buscamos el link para descargar el instalador de Windows. Existen dos tipos
de descarga, uno contiene el instalador Bsico y en otro un archivo comprimido para usuarios o instalacin
avanzada. Dar clic en Download.

Paso 3: Al dar clic en descargar nos direcciona a un nuevo enlace en donde tendremos que seleccionar el
archivo, seleccionamos el que es compatible con nuestro sistema operativo y con su arquitectura. En este
caso es una arquitectura a 64bits en Windows 10.

34
Paso 4: Al finalizar la descarga abrimos en archivo y procedemos a instalar conforme indica el cuadro de
dialogo.

Paso 5: En el proceso nos pedir que digitemos una contrasea para el sper usuario lo que se conoce
como ROOT en los manejadores de bases de datos como ORACLE y MYSQL. Es importante hacer una
contrasea segura.

35
Paso 6: Comienza la instalacin!!!

Paso 7: Finalizamos la instalacin.

Paso 8: Elegimos el tipo de instalacin que se realiz en este caso es: POSTGRESQL 9.5(X64) ON PORT
5432.

36
Paso 9: Este punto es importante, PostgreSQL nos pide instalar componentes extra, que por el momento
no son necesarias. Damos Clic en Cancelar.

Paso 10: Iniciamos PostgreSQL, buscamos la aplicacin desde nuestros programas en el ordenador y con
eso concluimos la instalacin.

37
Paso 11: Conectamos nuestro DGDB PostgreSQL, en la barra de herramientas del lado izquierdo,
pulsamos botn secundario en el servidor postgresql y damos clic en conectar, aparecer un cuadro de
dilogo donde se pide la contrasea que pusimos en el proceso de instalacin.

38
Paso 12: Una vez realizado este paso nuestro DGDB estar conectado y listo para crear bases de datos.

39
Conclusin

La instalacin de postgresql comprende una serie de pasos que pueden ser sencillos si se realizan de la
manera correcta, intentamos hacerlos de forma explcita, detallando todos y cada uno de estos para las
diferentes plataformas propuestas.

En MAC OSX aprendimos a instalar PostgreSQL de manera sencilla en la mquina local desde el cdigo
fuente. Ahora slo falta aprender a hacer que se inicie automticamente cada vez que se enciende el
computador o crear un alias que inicie la base de datos con un simple doble click y sin escribir los
complicados comandos:

su -l postgres

/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

Tambin es conveniente agregar el directorio /usr/local/pgsql/bin/ al PATH

Es necesario aclarar que postgresql tiene un catlogo de componentes extras que facilitan e incrementan
la funcionalidad de este manejador de bases de datos. Cada componente se adapta a las necesidades del
DBA haciendo de postgresql un manejador con amplia gama de posibilidades.

Los recursos necesarios para la instalacin son mnimos, esto hace que el manejador sea ligero, sin
sacrificar su rendimiento.

Recomendamos al usuario, usar PostgreSQL por la facilidad de uso y su amable entorno de desarrollo.

40
Prctica 3: Recibo de Honorarios.

Objetivos:
Comprender los datos que existen y su relacin, para identificar como sern almacenados.
El alumno conocer la interfaz principal de PostgreSQL.
Conocer las sentencias principales de DDL (Lenguaje de Definicin de Datos) de PostgreSQL.
Analizar las diferentes sentencias de DML (Lenguaje de Manipulacin de Datos).
Aplicar el Lenguaje SQL para la manipulacin de datos en PostgreSQL.

Materiales:
Una computadora con PostgreSQL instalado (pgAdmin III)
Un Modelo relacional de nuestra base de datos.
Los cdigos DML de PostgreSQL principales.

41
Marco terico

PostgreSQL tiene un tipo de dato especial que define una secuencia de valores que se irn
incrementando de manera automtica con forme son agregados datos a una tabla, y por lo tanto
constituye una buena forma de crear claves primarias, al igual que el tipo AUTO_INCREMENT en
MySQL.
Al definir un tipo serial, hemos creado implcitamente una secuencia independiente de la tabla.

PostgreSQL respondera esta instruccin con dos mensajes:

En el primero avisa que se ha creado una secuencia de nombre factura_folio_seq.

En el segundo avisa de la creacin de un ndice nico en la tabla utilizando la columna folio.

Instrucciones:
Realizar el modelo relacional del problema solicitado.
Configurar pgAdmin III con nuestro servidor local (en caso de ser necesario).
Abrir la consola SQL de pgAdmin III e introducir los cdigos que requerimos utilizar.

42
Ejercicio sugerido:

43
Modelo Relacional

44
Desarrollo Prctica 3: Recibo de Honorarios.

Creacin de tablas:

Se crea la tabla recibo_honorario con sus respectivas llaves forneas. Nombres de entidades y campos se
colocan entre comillas.

Sintaxis del cdigo para crear nuestra tabla empresa con sus campos.

45
Se crea la tabla recibo_concepto aadiendo sus campos y sus llaves forneas.

Utilizamos el comando Alter table para alterar nuestra tabla lo cual indicaremos que campos son llaves
forneas. Y el add constraint para agregar un constraint para a asegurar la base.

46
Despus del comando foreing key indicaremos el nombre de nuestra llave fornea y a que tabla
corresponde.

47
Conclusin

En la prctica podemos encontrar los comandos bsicos y necesarios para la creacin de base de datos
en PostgreSQL, y como podemos observar la sintaxis es muy parecida a otros gestores de base de datos
como ORACLE.

Algunos de los nombres para indicar el tipo de caracteres a usar son diferentes, pero la sintaxis y el orden
son casi los mismos, al igual que la sintaxis para referenciar nuestras foreign keys. Como podemos
observar si hay algn conocimiento previo sobre un gestor de base de datos estas practicas no deberan
de ser muy complicadas.
El ejercicio sugerido refuerza de muy buena manera el entendimiento para crear un modelo relacional y
como tal una base de datos, ya que el problema viene directo de un formato como tal y no de simples
instrucciones como lo hemos realizado.

48
Prctica 4: Solicitud de Reinscripcin.

Objetivos:
Comprender los datos que existen y su relacin, para identificar como sern almacenados.
El alumno conocer la interfaz principal de PostgreSQL.
Conocer las sentencias principales de DDL (Lenguaje de Definicin de Datos) de PostgreSQL.
Analizar las diferentes sentencias de DML (Lenguaje de Manipulacin de Datos).
Aplicar el Lenguaje SQL para la manipulacin de datos en PostgreSQL.

Materiales:
Una computadora con PostgreSQL instalado (pgAdmin III)
Un Modelo relacional de nuestra base de datos.
Los cdigos DML de PostgreSQL principales

49
Marco terico

Formularios

Los formularios se conocen a veces como "pantallas de entrada de datos". Son las interfaces que se utilizan
para trabajar con los datos y, a menudo, contienen botones de comando que ejecutan diversos comandos.
Se puede crear una base de datos sin usar formularios, editando los datos de las hojas de las tablas. No
obstante, casi todos los usuarios de bases de datos prefieren usar formularios para ver, escribir y editar
datos en las tablas.

Los formularios proporcionan un formato fcil de utilizar para trabajar con los datos. Adems, se les
puede agregar elementos funcionales, como botones de comando. Puede programar los botones para
determinar qu datos aparecen en el formulario, abrir otros formularios o informes, o realizar otras tareas
diversas. Por ejemplo, podra crear un formulario denominado "Formulario de cliente" para trabajar con
datos de clientes. El formulario de cliente podra tener un botn para abrir un formulario de pedido en el
que se pudiese escribir un pedido nuevo del cliente. (Unknow, s.f)

Los formularios tambin permiten controlar la manera en que otros usuarios interactan con los datos de
la base de datos. Por ejemplo, puede crear un formulario que muestre nicamente ciertos campos y que
permita la ejecucin de determinadas operaciones solamente. As, se favorece la proteccin de los datos
y se facilita la entrada correcta de datos.
Consultas

Las consultas son las que verdaderamente hacen el trabajo en una base de datos. Pueden realizar
numerosas funciones diferentes. Su funcin ms comn es recuperar datos especficos de las tablas. Los
datos que desea ver suelen estar distribuidos por varias tablas y, gracias a las consultas, puede verlos en
una sola hoja de datos. Adems, puesto que normalmente no desea ver todos los registros a la vez, las
consultas le permiten agregar criterios para "filtrar" los datos hasta obtener solo los registros que desee.
Las consultas a menudo sirven de origen de registros para formularios e informes.

Algunas consultas son "actualizables", lo que significa que es posible editar los datos de las tablas base
mediante la hoja de datos de la consulta. Si trabaja con una consulta actualizable, recuerde que los cambios
se producen tambin en las tablas, no solo en la hoja de datos de la consulta.

Hay dos tipos bsicos de consultas: las de seleccin y las de accin. Una consulta de seleccin
simplemente recupera los datos y hace que estn disponibles para su uso. Los resultados de la consulta
pueden verse en la pantalla, imprimirse o copiarse al portapapeles. O se pueden utilizar como origen de
registros para un formulario o un informe.

Una consulta de accin, como su nombre indica, realiza una tarea con los datos. Las consultas de accin
pueden servir para crear tablas nuevas, agregar datos a tablas existentes, actualizar datos o eliminar datos.

50
Instrucciones:
Realizar el modelo relacional del problema solicitado.
Configurar pgAdmin III con nuestro servidor local (en caso de ser necesario).
Abrir la consola SQL de pgAdmin III e introducir los cdigos que requerimos utilizar.
Crear las tablas requeridas de nuestro modelo relacional.

Ejercicio sugerido:

51
Modelo Relacional

52
Desarrollo Prctica 4: Solicitud de Reinscripcin.

Creacin de tablas:

Se crea la tabla alumnos con todos sus campos correspondientes cada uno con describiendo el tipo de
dato que se va a ingresar.

Sintaxis para la creacin de la tabla SolicitudCarga indicando su respectiva llave primaria.

53
Creacin de la tabla SolicitudMateria incluyendo en sus campos las llaves forneas a las que se enlaza.

Referenciamos nuestra tabla SolicitudMateria con su llave fornea por medio del comando Alter
Table.

54
Relacionamos con sus respectivas llaves forneas a la tabla SolicitudCarga. Para cada llave fornea se
realizara su propia sintaxis.

55
Conclusin

Es importante saber que PostgreSQL no es un SGBD que sali de la noche a la maana, ha tenido una
trascendencia y bastante camino recorrido. Y que a pesar de no ser muy usado y reconocido frente a otros
como Oracle y MySQL, se ha ganado el respeto de muchos DBA.

Siendo un SGBD con el UML estandarizado ha ganado terreno en el mercado gracias a la manera de que
cuida la integridad de datos y de la manera de generar las consultas.

En esta prctica resaltamos la importancia de como un formulario comn puede estar en una base de datos
muy completa, y PostgreSQL nos ayuda a que menos datos sean perdidos.

56
Administracin de Base de Datos.
Manual Unidad 2

Ya no estamos en la era de la informacin. Estamos en la era de la gestin


de la informacin.
-Chris Hardwick.

Integrantes:

Arenas Gonzlez Rodrigo


Mendoza Roldn Fernando Irvin
Pacheco Jurez Mara Guadalupe
Valencia Quiroz Orlando Alejandro

57
Practica 1: Telegrama

Objetivos:

Comprender la estructura bsica del mtodo FUNCTION en sus formas INSERT, DELETE
y UPDATE.
Aprender la sintaxis correcta de los Mtodos Function y Triggers.
Realizar dos tablas ejemplo y crear los Triggers para la insercin, eliminacin y
actualizacin en una tabla de respaldo.

Materiales:

Una computadora con PostgreSQL instalado (pgAdmin III)


Un Modelo relacional de nuestra base de datos.
Los cdigos DML de PostgreSQL principales

58
Marco Terico.

]Quin usa PostgreSQL?

PostgreSQL est en todas partes. Para ilustrar esto, hemos resaltado un puado de los cientos, si
no son miles, de usos de PostgreSQL que entran en contacto con el hombre comn mientras
lleva a cabo su vida diaria.

Un da en la vida de PostgreSQL

Revisa el correo. Servicios de escaneo de virus basado en servidor ofrecidos por McAfee,
Trend Micro, Comodo, Project Honey Pot y otras empresas ms reservadas usan
PostgreSQL.
07:30 Escucha msica en LastFM, un usuario de PostgreSQL a largo plazo.
09:00 Llama por Skype. Skype usa PostgreSQL para almacenar toda la actividad de chat
y de llamadas por Skype. La llamada se enruta a travs de un servicio VOIP externo, que
se ejecuta en Asterisk, que tambin usa PostgreSQL.
10:30 Aborda un vuelo hacia Boston. La Autoridad de Aviacin Federal migr de Oracle a
PostgreSQL para dar seguimiento a informacin crtica sobre el diseo de todos los
aeropuertos en los Estados Unidos. La FFA exige que todos los nuevos proyectos SIG de
base de datos en la organizacin lo usen.
13:00 Investiga sobre el cncer de colon en una web de caridad que usa un dominio .org.
El sitio web ejecuta Django sobre PostgreSQL. El dominio .org es administrado por Afillias
que tambin usa PostgreSQL. La medicacin descrita es de parte de Genetech, productor
de Avastin y otros medicamentos, que usa PostgreSQL para integrar y extraer datos
bioinformticos como parte del proceso de descubrimiento de frmacos.
14:00 Se toma un tiempo para salir a correr, usa la aplicacin Runkeeper de Fitness
Keeper. Fitness Keeper usa PostgreSQL para almacenar todas las mtricas de las rutas y
rendimiento de los corredores.
18:00 Se relaja jugando juegos en lnea en Hi5, un sitio social de juegos que usa
PostgreSQL. Con 46.1 millones de visitantes globales, es el 6to sitio web con ms trfico.
(Desconocido, s.f)

El lenguaje estructurado de consultas (SQL) es un lenguaje de base de datos normalizado, utilizado


por la gran mayora de los servidores de bases de datos que manejan bases de datos relacionales
u objeto-relacionales. Es un lenguaje declarativo en el que las rdenes especifican cual debe ser el
resultado y no la manera de conseguirlo (como ocurre en los lenguajes procedimentales). Al ser
declarativo es muy sistemtico, sencillo y con una curva de aprendizaje muy agradable ya que sus
palabras clave permiten escribir las rdenes como si fueran frases en las que se especifica (en ingls)
que es lo que queremos obtener.

En una base de datos relacional, los resultados de la consulta van a ser datos individuales, tuplas o
tablas generados a partir de consultas en las que se establecen una serie de condiciones basadas
en valores numricos. (univeridad de murcia, s.f)

59
Instrucciones:
Realizar el modelo relacional del problema solicitado.
Configurar pgAdmin III con nuestro servidor local (en caso de ser necesario).
Abrir la consola SQL de pgAdmin III e introducir los cdigos que requerimos utilizar.
Crear las tablas requeridas de nuestro modelo relacional.
Establecer llaves forneas y primarias.
Realizar una insercin para cada tabla.

Ejercicio Sugerido.

60
Modelo Relacional:

61
Desarrollo Prctica 1: Telegramas.

Creacin de tablas:

Se crea cada una de las tablas correspondientes, identificando sus llaves primarias y forneas.

Se utiliza el comando Alter Table para relacionar las tablas las cuales sus llaves primarias
estarn en como atributos en otras tablas.

Insercin de datos:

62
Se insertan datos en las tablas con el comando insert into, despus en la sintaxis se escribe la
tabla deseada y los valores que sern insertados.

Como se puede observar una vez ejecutado la orden, si nuestra sintaxis est bien se puede
mostrar los resultados en la parte de abajo.

63
Consulta 1:

Las consultas en PostgreSQL no varan mucho a otros SGBD, puesto que estn regidas por un
lenguaje normalizado, por lo tanto, para realizar una consulta es necesario usar el comando
SELECT seguido de los datos a consultar, FROM que es la tabla donde extraeremos los datos,
WHERE que son los parmetros para realizar la consulta.
Consulta 2:

Para esta consulta es necesario usar los INNER JOIN para poder extraer los datos de dos tablas
diferentes tablas.

64
Consulta 3:

Opcin 1 usando una sub-consulta:

select nombre_rec, codigo_p, id_solicitud from solicitud inner

join receptor on solicitud.receptor=receptor.id_receptor

where codigo_p=(select cod_pos from municipio where estado=1);

Opcin 2 usando NATURAL JOIN:

SELECT id_receptor, nombre_rec,codigo_p from solicitud

NATURAL JOIN receptor

NATURAL JOIN municipio

NATURAL JOIN estado

WHERE estado = 1 and codigo_p=56640 group by id_receptor;

65
Opcin 3 instanciamos solamente las tablas que se relacionan sin hacer uso de alguna otra
funcin:

select nombre_rec, codigo_p,nombre_mun from receptor,municipio

where receptor.codigo_p=municipio.cod_pos and nombre_mun = 'CHALCO';

66
Conclusin

El manejo de datos en PostgreSQL es muy simple, fcil adems de intuitivo, en las consultas
realizadas y explicadas anteriormente se puede observar una similitud de sintaxis con otros sistemas
gestores de bases de datos (SGBD).

Adems, ofrece una gran extensin de herramientas y una compatibilidad con varias plataformas,
las cuales son muy usadas en empresas de gran prestigio. PostgreSQL es un SGBD muy
estandarizado el cual ha hecho que su desarrollo en el mercado y su implementacin en sistemas
de gran magnitud sea muy concurrente.

Por otro lado, su crecimiento como OpenSOURCE lo ha llevado a ser utilizado por grandes
compaas tanto de ciencia como de tecnologa tales como Affymetrix, American Chemical Society,
Instituto de Biologie et Chimie des Protines entre otros magnates empresariales.

67
Prctica 2: Tabla de Respaldo

Objetivos:

Comprender la estructura bsica del mtodo FUNCTION en sus formas INSERT, DELETE
y UPDATE.
Aprender la sintaxis correcta de los Mtodos Function y Triggers.
Realizar dos tablas ejemplo y crear los Triggers para la insercin, eliminacin y actualizacin
en una tabla de respaldo.
Analizar la importancia de una tabla de respaldo.

Materiales:

Una computadora con PostgreSQL instalado (pgAdmin III)


Un Modelo relacional de nuestra base de datos.
Los cdigos DML de PostgreSQL principales

68
Marco Terico

Los Triggers o Disparadores son objetos que se asocian con tablas y se almacenan en la base de
datos. Su nombre se deriva por el comportamiento que presentan en su funcionamiento, ya que se
ejecutan cuando sucede algn evento sobre las tablas a las que se encuentra asociado. Los eventos
que hacen que se ejecute un trigger son las operaciones de insercin (INSERT), borrado (DELETE)
o actualizacin (UPDATE), ya que modifican los datos de una tabla.

La utilidad principal de un trigger es mejorar la administracin de la base de datos, ya que no


requieren que un usuario los ejecute. Por lo tanto, son empleados para implementar las REGLAS
DE NEGOCIO (tipo especial de integridad) de una base de datos. Una Regla de Negocio es
cualquier restriccin, requerimiento, necesidad o actividad especial que debe ser verificada al
momento de intentar agregar, borrar o actualizar la informacin de una base de datos. Un trigger
puede prevenir errores en los datos, modificar valores de una vista, sincronizar tablas, entre otros.

Existen 2 tipos de triggers:

Row Triggers (o Disparadores de fila): son aquellas que se ejecutaran cada vez que se llama al
disparador desde la tabla asociada al trigger
Statement Triggers (o Disparadores de secuencia): son aquellos que sin importar la cantidad de
veces que se cumpla con la condicin, su ejecucin es nica.

69
Instrucciones:

Realizar el modelo relacional del problema solicitado.


Configurar pgAdmin III con nuestro servidor local (en caso de ser necesario).
Abrir la consola SQL de pgAdmin III e introducir los cdigos que requerimos utilizar.
Crear las tablas requeridas de nuestro modelo relacional.
Realizar Trigger de insercin, actualizacin y eliminacin de datos.

Ejercicio sugerido:

Realizar dos tablas: productos y productos respaldos. En donde productos ser nuestra tabla
principal y productos respaldos ser la tabla en la que guardaremos los movimientos, funcionar
como una tabla de respaldo o backup.

70
Modelo Relacional

71
Desarrollo Prctica 2:

Creacin de tablas: Realizamos nuestras tablas por cdigo en nuestro Sql Queries.

Como se muestra en las imagen nuestra tablas han sido creadas y de describen sus atributos.

Una vez creadas nuestras tablas, ahora si podemos comenzar a programar nuestras funciones,
comenzaremos con la funcin INSERTAR.

72
|

La sintaxis es sencilla cuando se conocen las condiciones bsicas de una insercin de datos, a esta
condicin le agregaremos antes del nombre de los campos la palabra reservada NEW que indica a
postresql que nuestro dato es insertado por primera vez. La diferencia muy notable es que despus
del INSERT INTO nombre tabla no se mandan a llamar los campos a los que se insertarn datos,
es decir en una insercin normal sera: INSERT INTO nombre tabla (campo1,campo2)
values(dato1,dato2); omitimos el llamado de los campos y directamente llenamos los valores
anteponiendo New.

Para finalizar ejecutamos nuestra funcin con el Trigger que ser el que dispara las instrucciones
programadas.

Ahora realizaremos nuestra funcin y Trigger actualizar.

73
La sintaxis de esta funcin corresponde a la instruccin update que se usa regularmente, es
necesario adaptarla de cierta forma para que PostgreSQL la reconozca como una funcin, a partir de la
palabra reservada SET es cuando los cambios hacen efecto, anteponemos una vez ms la palabra
reservada new y despus el nombre del campo: new.clave. hasta finalizar nuestros campos, enseguida
viene la condicin WHERE es aqu donde indicamos que nuestra primary key es igual a la antigua
primary key: clave=old.clave. La ejecucin de la funcin se hace mediante el trigger, este se configura de
igual manera que el de insercin solo que despus del after en lugar de poner insert ocuparemos la
palabra reservada UPDATE.

Para finalizar la prctica realizaremos nuestra funcin DELETE, esta tiene la misma estructura que el
DELETE convencional, analizaremos los cambios que se adaptan a la funcin.

Esta es la sintaxis ms corta de las tres funciones realizadas, pero no deja de ser importante, el
cambio que vamos a notar es el que viene despus de la condicin WHERE, se usara nuestro campo
primario y se igualara al campo primario antiguo, quedando de la siguiente manera:
campo_primario=old.campo_primario.

El Trigger se programa de la misma forma, despus del AFTER se cambia por DELETE, para indicar que
haga la eliminacin del dato.

74
Ahora vamos a ver funcionando el primer Trigger que es el de insercin.

Verificamos en tabla respaldos y encontramos que el mismo dato se insert automticamente.

Ahora modificaremos ese mismo dato, cambiando la palabra mac por MacBook.

75
Verificamos y la actualizacin se hizo correctamente.

76
Por ltimo vamos a borrar ese dato insertado el que contiene los datos del producto de Apple.

Primero en la tabla productos y despus automticamente en la tabla productos respaldos.

Verificamos en nuestra tabla respaldo y el registro tambin ha sido borrado.

77
Conclusin

Sus datos son valiosos. Tomar tiempo y esfuerzo -si fuese necesario- re-crearlos, y esto cuesta
dinero o al menos esfuerzo extra del personal. Algunas veces los datos no pueden ser re-creados,
si por ejemplo son el resultado de algunos experimentos. Debido a que los datos elaborados son una
inversin, debe protegerlos y tomar medidas para evitar prdidas.

Existen bsicamente cuatro razones por la que puede perder datos: fallas de hardware, errores en
el software, mala o equivocada accin humana o desastres naturales. Aunque si bien el hardware
moderno tiende a ser confiable, puede llegar a daarse aparentemente de manera espontnea. La
pieza ms crtica para almacenar datos es el disco rgido, ya que se encuentra compuesto de
pequesimos campos magnticos que deben mantenerse intactos en un mundo lleno de
interferencias electromagnticas. El software moderno no tiende a ser confiable; un programa slido
como una roca es una excepcin, no una regla. Las personas son completamente no confiables,
suelen confundirse o equivocarse, o pueden ser maliciosos y destruir los datos de forma adrede. La
naturaleza no puede ser malvada, pero podra llegar a realizar estragos. Resumiendo: en
computacin, es un pequeo milagro que algo trabaje del todo bien.

78
Prctica 3: Bitcora

Objetivos:

Comprender la estructura bsica del mtodo FUNCTION en sus formas INSERT, DELETE
y UPDATE.
Aprender la sintaxis correcta de los Mtodos Function y Triggers.
Utilizar las condiciones IF, ELSE y ELIF para la creacin de funciones.
Conocer para que se utilizar el operador TG_OP.
Realizar dos tablas ejemplo y crear los Triggers para la insercin, eliminacin y actualizacin
en una tabla de respaldo.

Materiales:

Una computadora con PostgreSQL instalado (pgAdmin III)


Un Modelo relacional de nuestra base de datos.
Los cdigos DML de PostgreSQL principales

79
Marco Terico

Funciones

Para la prctica tambin se utilizaron funciones, una funcin en PostgreSQL es una rutina creada
para tomar unos parmetros, procesarlos y retornar en una salida.

Se diferencian de los procedimientos en las siguientes caractersticas:


Solamente pueden tener parmetros de entrada y no parmetros de salida out o inout.
Deben retornar en un valor con algn tipo de dato definido.
Pueden usarse en el contexto de una sentencia Sql.
Solo retornan un valor individual, no un conjunto de registros.

Condicin IF

La sentencia IF te permite ejecutar una secuencia de declaraciones de forma condicional, es decir,


si la secuencia se ejecuta o no en tus PL-SQL Packages en Oracle depende del valor de una
condicin. El valor de una condicin debe ser verdadero (TRUE) para que sea ejecutado o falso
(FALSE) para que no se ejecute.

La sentencia IF se puede usar de tres formas: IF-THEN, IF-THEN-ELSE and IF-THEN-ELSIF.


Revisemos algunos ejemplos prcticos para que entiendas mejor como se debe utilizar la
sentencia IF en tus PL-SQL Packages en Oracle.

Tipos de Datos

TIMESTAMP [(fracciones_de_segundos)]
Admite fracciones de 0 a 9 dgitos, aunque por defecto son 6.
Dependiendo de la precisin el tamao vara de 7 a 11 bytes.
El formato lo determina de manera implcita el parmetro NLS_TERRITORY y
explcitamente el parmetro NLS_DATE_FORMAT
Contempla fracciones de segundo, pero no zona horaria.

Instrucciones:

Realizar el modelo relacional del problema solicitado.


Configurar pgAdmin III con nuestro servidor local (en caso de ser necesario).
Abrir la consola SQL de pgAdmin III e introducir los cdigos que requerimos utilizar.
Crear las tablas requeridas de nuestro modelo relacional.
Realizar Trigger de insercin que sirva como bitcora al guardar los cambios realizados en
la tabla principal.

80
Ejercicio sugerido:

Realizar dos tablas: departamento y bitcora. En donde departamentos ser nuestra tabla principal
y bitcora ser la tabla en la que guardaremos los movimientos.

Modelo Relacional

81
Desarrollo Prctica 3: Bitcora.

Creacin de tablas: Realizamos nuestras tablas por cdigo en nuestro Sql Queries.

Cabe mencionar que nuestra tabla bitcora contiene los mismos campos que la tabla departamentos,
pero tenemos que agregar los campos siguientes: OPERACIN: que es donde se guardar la accin
realizada es decir, actualizacin, eliminacin e insercin de datos. STAMP: aqu es donde
guardaremos la hora en la que se realiza la accin, con su valor timestamp. Y al ultim agregamos
campo Usuario, aqu es donde se registra el usuario que hizo los movimientos.

Una vez realizado la creacin de las tablas y sus caractersticas realizaremos la funcin principal donde
vamos hacer uso de condiciones y operadores antes mencionados. Quedando de la siguiente manera

82
En donde TG_OP es un tipo de dato text que indica una cadena texto con el valor INSERT,
UPDATE y DELETE, asi queTG_OP funcionar como la variable que define la accin, ejemplo: al
insertar sera (TG_OP= insert ) ante poniendo la condicin IF.

Si todo sale bien, los registros, ediciones y eliminaciones de datos quedaran registrados en la tabla
bitcora, veamos algunas inserciones:

Vemos como la insercin se ve reflejada en la tabla bitcora:

Los registros son exitosos.

83
Ahora hagamos una edicin, usaremos de referencia el campo observaciones, de vacantes lo
cambiamos a no vacantes.

Si todo sale bien el registro deber verse reflejado indicando el movimiento:

La edicin e insercin han sido exitosas.

84
Por ltimo realizaremos la eliminacin del registro creado.

Este proceso deber reflejarse en la tabla bitcora.

La eliminacin e insercin del movimiento se realiz con xito.

Se debe mencionar que la tabla bitcora arroja el usuario, hora y fecha de los movimientos
realizados, adems describe el movimiento, es decir: INSERT, ACTUALIZ O ELIMIN.

85
Conclusin

La decisin ms importante al pensar en hacer una bitcora la seleccin del medio a utilizar.
Necesita considerar el costo, confiabilidad, velocidad, disponibilidad y usabilidad.

El costo es importante, porque preferentemente desea contar con mayor capacidad de


almacenamiento para las bitcoras que necesita para los datos existentes. Un medio barato es
usualmente casi una obligacin.

La confiabilidad es un tem de extrema importancia, ya que una bitcora daada puede hacer llorar
a un gigante. Un medio para una bitcora ser capaz de mantener los datos en perfecto estado
durante aos. Adems, la forma en que se utiliza el medio afecta a su confiabilidad.

86
Administracin de Base de Datos.
Manual Unidad 3

Ya no estamos en la era de la informacin. Estamos en la era de la gestin


de la informacin.
-Chris Hardwick.

Integrantes:

Arenas Gonzlez Rodrigo


Mendoza Roldn Fernando Irvin
Pacheco Jurez Maria Guadalupe
Valencia Quiroz Orlando Alejandro

87
Prctica 4: Escuela.

Objetivos:
1. Comprender la estructura bsica del mtodo FUNCTION en sus formas INSERT,
DELETE y UPDATE.
2. Aprender la sintaxis correcta de los Mtodos Funcin y Triggers.
3. Realizar dos tablas ejemplo y crear los Triggers para la insercin, eliminacin y actualizacin
en una tabla donde se muestren registros eliminados.
4. Analizar la importancia de una tabla de respaldo o de eliminacin.

Materiales:
Una computadora con PostgreSQL instalado (pgAdmin III)
Un Modelo relacional de nuestra base de datos.
Los cdigos DML de PostgreSQL principales.

88
Marco terico

Funciones

La forma ms fcil de implementar funciones es utilizar el lenguaje SQL. Una funcin SQL nos
permite dar un nombre a uno o varios comandos sql. Luego la sintaxis para implementar una
funcin SQL:

create or replace function [nombre de la funcin]([parmetros])

returns [tipo de dato que retorna]


as[comando sql]

language sql (PostgreSQL, s.f.)

Disparadores Dinmicos

Qu es un trigger dinmico?, es aquel trigger que la metadata de en cual tabla/campo va a


operar es pasado de manera dinmica (parmetros) a la funcin de trigger (trigger function). La
utilidad de esto es simplemente poder re-utilizar una nica funcin trigger para diversas acciones
a ser tomadas de acuerdo a los parmetros recibidos.

Y para qu sirve?, bueno, imaginen un sistema dnde cada operacin debe ser por ejemplo,
agregada a una tabla auditora, o por ejemplo, que una operacin en una tabla, causa una
operacin en otra tabla, que aunque el cdigo sea casi el mismo, depende de la tabla que dispara
el trigger, qu tabla va a operar. (Wordpress, s.f.)

Instrucciones:
Realizar el modelo relacional del problema solicitado.
Configurar pgAdmin III con nuestro servidor local (en caso de ser necesario).
Abrir la consola SQL de pgAdmin III e introducir los cdigos que requerimos utilizar.

89
Ejercicio sugerido:

A partir de las siguientes tablas que pertenecen a la base de datos Escuela, realizar lo que se solicita en
los incisos:

Tabla Alumnos:

Clave Nombre A_paterno A_materno Carrera F_ingreso

A01004353 Jorge Torres Rosales 1 07/01/2016

A01004354 Isaac lvarez Jimnez 3 01/08/2015

A01004355 Pedro Ruiz Sols 2 07/01/2015

Tabla Carreras:

Clave Nombre Alumno_Inscrito

1 Ing. Electromecnica 45

2 Ing. Electrnica 38

3 Ing. Industrial 37

Tabla Eliminados:

Clave Nombre Carrera

1 Jorge 1

2 Isaac 3

3 Pedro 2

A. Existe una regla de negocios que determina que cada que borra un registro en la tabla Alumnos,
se agrega un registro en la tabla Eliminados (solo los datos que se muestran en la tabla).
B. Existe una regla de negocio que determina que cada vez que se da de alta un registro en la tabla
alumnos se aumenta un nmero en la columna alumnos inscritos en la tabla carreras de acuerdo
a la carrera elegida.
C. Mostrar cuantos alumnos ingresaron antes del ao 2016. Su consulta siempre debe estar vigente
independientemente de los datos que contenga.
D. Realizar las tablas y los registros a travs de cdigo.

90
Modelo Relacional:

91
Desarrollo Prctica 4: Escuela.

Ejercicio A: Existe una regla de negocios que determina que cada que borra un registro en la tabla
Alumnos, se agrega un registro en la tabla Eliminados (solo los datos que se muestran en la
tabla).

Creamos principalmente la funcin antes que nada, indicando un mtodo, e indicando que se inserte en
la tabla Eliminados en sus campos Nombre y Carrera un valor que ya se encuentra en los mismos
campos de otra tabla para esto utilizamos l .old, y en el trigger indicamos que los valores sern de la
tabla Alumnos y antes de borrar un registro en ella ese mismo registro se insertara en la tabla Eliminados
pero solo los campos seleccionados.

Procedemos a eliminar un registro de la tabla Alumnos.

92
El registro se elimin con xito.

En nuestra tabla Eliminados observamos que ya se cuenta con un registro que anteriormente se elimin
de la tabla Alumnos,

93
Al momento que eliminamos el registro anterior, se activa el trigger ejecutando la funcin y observamos
que el registro eliminado de la tabla Alumnos se ha insertado con xito. Lo cual significa que la sintaxis
del trigger est correcta.

Ejercicio B: Existe una regla de negocio que determina que cada vez que se da de alta un registro
en la tabla alumnos se aumenta un nmero en la columna alumnos inscritos en la tabla carreras
de acuerdo a la carrera elegida.

En nuestra tabla Carreras tenemos predefinidas los registros con un campo llamado clave que es nuestra
llave primaria.

En la imagen podemos observar que ya existen 2 inscripciones en la carrera: Ing. En Electromecnica.

Creamos nuestro nuestra funcin y trigger de la siguiente manera:

94
Comprobamos que nuestra funcin y trigger corren de manera correcta insertando ms registros en
nuestra tabla alumnos.

95
Inserciones ExitosaS.

El siguiente paso es ver si efectivamente al insertar ms alumnos en distintas carreras, la funcin hace lo
que le fue programado.

En la imagen podemos comprobar que efectivamente tenemos 3 Alumnos inscritos en Ing. En


Electromecnica, 1 en Ing. Electrnica y 2 en Ing. Industrial.

La funcin y trigger son exitosos y vigentes.

96
Ejercicio C: Mostrar cuantos alumnos ingresaron antes del ao 2016. Su consulta siempre debe
estar vigente independientemente de los datos que contenga.

Forma 1 Usando fecha completa:

Usaremos SELECT para generar la consulta, de la misma manera, usaremos WHERE para
establecer la condicin de la consulta, en este caso, la fecha mnima es nuestra condicionante.

Forma 2 Usando ao solamente

Para generar la consulta, pero, esta vez usando solamente el ao, es necesario usar EXTRACT que
nos ayudar a seleccionar un dato especifico, en seguida usaremos YEAR para indicar que usaremos el
AO como condicionante y debemos especificar de qu columna se extraer este dato y para ello
usaremos FROM. Esto nos ayuda a generar una consulta ms precisa a diferencia de la primera
opcin.

97
Ejercicio D: Realizar las tablas y los registros a travs de cdigo.

Se crean las tablas por medio de cdigo, enlazando a travs de una llave fornea la tabla Carreras con
Alumnos. La tabla Eliminados no se enlazara con ninguna otra ya que solo servir como un registro de
los alumnos eliminados.

Se insertan datos a travs de cdigo utilizando Insert Into para indicar tabla y campos, y el Values
para indicar que registros o valores se insertaran, tambin se insertan datos en la tabla Eliminados ya
que en este ejercicio se toma como si fuera una tabla normal

98
Observamos que las sintaxis de nuestros cdigos de creacin e insercin de tablas y datos esta correcta
ya que las tablas estn creadas y los registros insertados de forma correcta.

99
Conclusin

En los ejercicios anteriores podemos observar que existen diferentes formas de crear la sintaxis de un
procedimiento, dependiendo del movimiento en las base de datos que se requiera realizar, como tambin
diferentes formas de dispralo. Y aunque los triggers sean de una sintaxis muy simple tiene una gran
complejidad. Los triggers hacen que la comprensin de un sistema sea complicada causan que su
mantenimiento sea ms difcil de lo normal al permanecer ocultos en el esquema la base de datos. En
realidad, los triggers son subrutinas que son llamadas una y otra vez cuyo cdigo debe revisarse de igual
manera que se revisan paquetes y procedimientos almacenados.

100
Prctica 5: Medicamentos

Objetivos

Comprender la estructura bsica del mtodo FUNCTION en sus formas INSERT, DELETE y
UPDATE.
Aprender la sintaxis correcta de los Mtodos Function y Triggers.
Realizar dos tablas ejemplo y crear los Triggers para la insercin, eliminacin y actualizacin en
una tabla de respaldo.

Materiales:

Una computadora con PostgreSQL instalado (pgAdmin III)


Un Modelo relacional de nuestra base de datos.
Los cdigos DML de PostgreSQL principales

101
Marco Terico

Una de las funcionalidades disponibles en PostgreSQL son los denominados


disparadores (triggers). En este artculo vamos a introducirnos en el mundo de los
disparadores, como funcionan y cmo podemos empezar a utilizarlos.

Un disparador no es otra cosa que una accin definida en una tabla de nuestra base de datos
y ejecutada automticamente por una funcin programada por nosotros. Esta accin se
activar, segn la definamos, cuando realicemos un INSERT, un UPDATE o un DELETE en
la susodicha tabla.
Un disparador se puede definir de las siguientes maneras:
Para que ocurra ANTES de cualquier INSERT,UPDATE o DELETE.
Para que ocurra DESPUES de cualquier INSERT,UPDATE o DELETE.
Para que se ejecute una sola vez por comando SQL (statement-level trigger).
Para que se ejecute por cada lnea afectada por un comando SQL (row-level trigger).

Esta es la definicin del comando SQL que se puede utilizar para definir un disparador en
una tabla.

CREATE TRIGGER nombre { BEFORE | AFTER } { INSERT | UPDATE | DELETE [ OR ... ] }


ON tabla [ FOR [ EACH ] { ROW | STATEMENT } ]
EXECUTE PROCEDURE nombre de funcion ( argumentos )

Antes de definir el disparador tendremos que definir el procedimiento almacenado que se


ejecutar cuando nuestro disparador se active.

Un procedimiento almacenado en PostgreSQL se puede escribir en mltiples lenguajes de


programacin. En una instalacin por defecto de PostgreSQL podremos tener disponibles los
siguientes lenguajes: PL/pgSQL, PL/Perl, PL/Tcl y PL/Python.

Podemos definir e instalar un procedimiento en PL/pgSQL de la siguiente manera:

102
CREATE [ OR REPLACE ] FUNCTION
nombre_funcion([ [ argmodo ] [ argnombre ] argtipo [, ...] ])
RETURNS tipo AS $$

[ DECLARE ]
[ declaraciones de variables ]

BEGIN
codigo

END;
$$ LANGUAGE plpgsql
| IMMUTABLE | STABLE | VOLATILE
| CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT

| [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER


| COST execution_cost
| ROWS result_rows
| SET configuration_parameter { TO value | = value | FROM CURRENT }
;

(Edgar, s.f.)

Instrucciones:

Realizar el modelo relacional del problema solicitado.


Configurar pgAdmin III con nuestro servidor local (en caso de ser necesario).
Abrir la consola SQL de pgAdmin III e introducir los cdigos que requerimos utilizar.
Crear las tablas requeridas de nuestro modelo relacional.
Establecer llaves forneas y primarias.
Realizar 3 inserciones para cada tabla.

103
Ejercicio Sugerido.

Realizar 3 tablas: Medicamentos, Tipos de medicamentos y presentacin. La tabla padre ser


medicamentos. Realizar un trigger y una funcin que inserte en el campo observaciones sin receta en
caso de ser tipo de medicamento 1 y 10% de descuento en el campo descuentos en caso de ser
presentacin 3.

Medicamentos

Id Nombre comercial Tipo Observaciones Presentacin Descuento

Presentacin Tipo

Id Nombre Id Nombre comercial

104
Modelo Relacional:

105
Desarrollo Prctica 5: Medicamentos.
Creacin de tablas:

Se crea cada una de las tablas correspondientes, identificando sus llaves primarias y forneas.

Insercin de datos:

Se insertan datos en las tablas comenzando con las tablas hijas en este caso PRESENTACIN y TIPO.

Una vez realizado este paso creamos la funcin y trigger que dispara las condiciones que insertarn los
datos de manera automtica.

106
Se usan las condiciones IF y los operadores lgicos IGUAL QUE y DIFERENTE QUE en la sentencias
para que las condiciones realicen sus objetivos para los que fueron programados.

Primera insercin de datos:

El disparador colocar CON RECETA ya que la columna TIPO es igual a 1 y en la columna DESCUENTO
10 porque la columna PRESENTACIN es igual a 3.

107
El resultado es el siguiente:

Ahora si la misma insercin requiere una actualizacin debe ejecutar las condiciones programadas, es
decir si la columna TIPO es diferente de 1 debe colocar No requiere receta.

La funcin y trigger se ejecuta correctamente, haciendo las inserciones programadas con las condiciones
establecidas.

108
Conclusin

En POSTGRESQL a diferencia de otros motores de bases de datos, no existe una distincin


explicita entre una funcin y un procedimiento almacenado. En POSTGRESQL solo existen
funciones, claro que estas pueden ser usadas a modo de una funcin o de un procedimiento
almacenado. Adems de esta diferencia con otros motores de bases de datos, es importante
mencionar que POSTGRESQL nos ofrece ms de un lenguaje para crear nuestros procedimientos
almacenados, pudiendo elegir entre los siguientes lenguajes: (Edgar, s.f.)

PL/PgSQL

C.

C++.

Java PL/Java web.

PL/Perl.

plPHP.

PL/Python.

PL/Ruby.

PL/sh.

PL/Tcl.

PL/Scheme.

109
Prctica 6: Generar 5000 registros e ndices

Objetivos:

Comprender el concepto de ndices y la utilizacin para el manejo rpido de funciones, consultas


y otros procedimientos.
Aprender la sintaxis correcta para indexar utilizando index.
Realizar cuatro tablas ejemplo e indexar columnas para comparar la velocidad de respuesta del
GBD PostgreSQL al realizar una funcin, consulta, o cualquier otra operacin.
Realizar al menos 3 pruebas de estrs, medir, comparar la velocidad de las sentencias en
determinadas circunstancias.

Materiales:

Una computadora con PostgreSQL instalado (pgAdmin III)


Un Modelo relacional de nuestra base de datos.
Los cdigos DML de PostgreSQL principales

110
Marco Terico

Para asegurar y garantizar el correcto funcionamiento del sistema se realizaron ciertas


pruebas que fueron escogidas para determinar si el sistema cumple con los
requerimientos propuestos inicialmente y con su funcin principal, brindar un servicio a
un grupo de usuarios de manera eficiente y sin fallas o retrasos. Es importante
mencionar que el rendimiento del sistema est estrictamente ligado con el hardware de la
computadora que realizar la funcin de servidor, ya que ste determina el desempeo del
mismo.

Otra de las razones por las que se realizan las pruebas es para comprobar si existe un
error o algn retraso importante que pueda afectar el funcionamiento del sistema, ya que se
requiere que sea rpido, confiable y estable. Adems todo debe ser transparente para el
usuario, en caso de que exista un error grave en el sistema se le debe informar al usuario la
situacin del mismo, por ejemplo en el caso de que la base de datos no se encuentre
disponible se le har saber al usuario desplegndole una pgina amigable con el error,
indicndole los pasos o sugerencias que puede realizar, todo esto con el fin de
considerar algunos escenarios que puedan surgir y estar preparados para este tipo de
situaciones.

Una prueba de stress es aquella que forsa al sistema al mximo punto para poder medir
sus capacidades y las condiciones en las cuales trabaja realizando una cantidad definida
de peticiones y procesos. (Catarina, s.f.)

ndices.

Un ndice es una estructura de disco asociada con una tabla o una vista que acelera la
recuperacin de filas de la tabla o de la vista. Un ndice contiene claves generadas a partir de una o
varias columnas de la tabla o la vista. Dichas claves estn almacenadas en una estructura
(rbol b) que permite que SQL Server busque de forma rpida y eficiente la fila o filas asociadas a
los valores de cada clave.
Una tabla o una vista pueden contener los siguientes tipos de ndices:

Agrupado

o Los ndices agrupados ordenan y almacenan las filas de los datos de la tabla o vista
de acuerdo con los valores de la clave del ndice. Son columnas incluidas en la
definicin del ndice. Slo puede haber un ndice clster por cada tabla, porque las
filas de datos slo pueden estar ordenadas de una forma.
o La nica ocasin en la que las filas de datos de una tabla estn ordenadas es
cuando la tabla contiene un ndice clster.

No agrupado

o Los ndices no agrupados tienen una estructura separada de las filas de datos. Un
ndice no agrupado contiene los valores de clave de ndice no agrupado y cada
111
entrada de valor de clave tiene un puntero a la fila de datos que contiene el valor
clave.
o El puntero de una fila de ndice no agrupado hacia una fila de datos se
denomina localizador de fila. La estructura del localizador de filas depende de si
las pginas de datos estn almacenadas en un montn o en una tabla agrupada. Si
estn en un montn, el localizador de filas es un puntero hacia la fila. Si estn
en una tabla agrupada, el localizador de fila es la clave de ndice agrupada.

Tanto los ndices agrupados como los no agrupados pueden ser nicos. Esto significa que dos
filas no pueden tener el mismo valor para la clave de ndice. De lo contrario, el ndice no es nico
y varias filas pueden compartir el mismo valor de clave. Los ndices se mantienen
automticamente para una tabla o vista cuando se modifican los datos de la tabla.

ndices y restricciones

Los ndices se crean automticamente cuando las restricciones PRIMARY KEY y UNIQUE se
definen en las columnas de tabla. Por ejemplo, cuando cree una tabla e identifique una
determinada columna como la clave primaria, Motor de base de datos crea automticamente una
restriccin PRIMARY KEY y un ndice en esa columna.

Cmo utiliza los ndices el optimizador de consultas

Los ndices bien diseados pueden reducir las operaciones de E/S de disco y consumen menos
recursos del sistema, con lo que mejoran el rendimiento de la consulta. Los ndices pueden ser tiles
para diversas consultas que contienen instrucciones SELECT, UPDATE, DELETE o MERGE.
Cuando se ejecuta la consulta, el optimizador de consultas evala cada mtodo disponible para
recuperar datos y selecciona el mtodo ms eficiente. El mtodo puede ser un recorrido de la
tabla o puede ser recorrer uno o ms ndices si existen.

Al realizar un recorrido de la tabla, el optimizador de consultas leer todas las filas de la tabla y
extraer las filas que cumplen con los criterios de la consulta. Un recorrido de la tabla genera
muchas operaciones de E/S de disco y puede consumir recursos. No obstante, puede ser el
mtodo ms eficaz si, por ejemplo, el conjunto de resultados de la consulta es un porcentaje
elevado de filas de la tabla.

Cuando el optimizador de consultas utiliza un ndice, busca en las columnas de clave de ndice,
busca la ubicacin de almacenamiento de las filas que necesita la consulta y extrae las filas
coincidentes de esa ubicacin. Generalmente, la bsqueda del ndice es mucho ms rpida que
la bsqueda de la tabla porque, a diferencia de la tabla, un ndice frecuentemente contiene muy
pocas columnas por fila y las filas estn ordenadas.

El optimizador de consultas normalmente selecciona el mtodo ms eficaz cuando ejecuta


consultas. No obstante, si no hay ndices disponibles, el optimizador de consultas debe utilizar un
recorrido de la tabla. Su tarea consiste en disear y crear los ndices ms apropiados para su
entorno de forma que el optimizador de consultas disponga de una seleccin de ndices eficaces
entre los que elegir.

112
Instrucciones:

Realizar el modelo relacional del problema solicitado.


Configurar pgAdmin III con nuestro servidor local (en caso de ser necesario).
Abrir la consola SQL de pgAdmin III e introducir los cdigos que requerimos utilizar.
Crear las tablas requeridas de nuestro modelo relacional.
Establecer llaves forneas y primarias.
Realizar un monto de 5000 inserciones (Mnimo) para cada tabla.
Comparar la velocidad de las sentencias programadas antes y despus de la creacin de ndices.

Ejercicio Sugerido.

Realizar 4 tablas: Bodega, Cliente, Producto, Venta, donde a cada tabla se le har una insercin de datos
de gran escala utilizando algn mtodo de la practica 6. Se indexar ciertas columnas de cada tabla y se
realizarn pruebas mediante consultas y procedimientos para comparar la velocidad en PostgreSQL
entre columnas indexadas y no indexadas.

113
Modelo Relacional:

114
Desarrollo Prctica 6: 5000 Registros.

Para poder generar los registros de manera rpida usaremos un generador de datos en este caso ser
generatedata (http://www.generatedata.com/?lang=es)

Introducimos los atributos de nuestra tabla y en seguida seleccionamos que tipo de dato ser el atributo,
es importante que los nombres y los tipos de datos coincidan con los atributos de nuestra tabla.

115
Ahora nos dirigimos a tipos de exportacin y escogemos la opcin SQL ac es donde vamos a
colocar el nombre de nuestra tabla que llevar los registros y de la pestaa Tipo de base de Datos
seleccionamos Postgres marcamos la casilla de Solicitar la Descarga y procedemos a Generar el
archivo SQL que ser descargado.

Continuamos abriendo el documento en nuestro SQL queries de postgres y lo ejecutamos.

116
Desarrollo Prctica 6: Index.
Comenzaremos con la creacin de las tablas hijas: clientes, producto y bodega.

Continuamos con la creacin de la tabla venta que es llamada tambin padre ya que est ligada a las
tablas antes creadas.

Una vez creadas las tablas con sus respectivas claves primarias y forneas procedemos a realizar un
mtodo, este nos hace la funcin para insertar 1,000,000 de registros en la tabla venta, para esto nos
apoyamos de un ciclo FOR y la funcin RANDOM, que nos insertarn registro aleatorios para realizar las
correspondientes pruebas de estrs.

117
El siguiente paso es medir el tiempo de ejecucin al ingresar 100,000,000.

select ingresardatos(); -- ingreso 1000000 en 1:23 minutos

SELECT * FROM tareacursor.bodega;; -- busco todos los datos de bodega en 36.8 secs

De la misma manera creamos una funcin que nos permita ingresar 50,000 datos en la tabla venta.

118
Se insertan de manera randmica 50,000 registros usando: select ingresarventa();

Se ingresan 50.000 ventas y se crean cursores en: 6:10 minutes

Se realiza consulta select * from venta; en 1:14 minutes

Se realiza consulta sin index y con un inner join en: 1:53 minutes

select v.id,c.nombre as "Cliente",v.fecha as "Fecha Venta",p.descripcion

as "Producto",v.total as "Total",b.descripcion as "Bodega"

from cliente c

inner join venta v on c.id=v.idcliente

inner join producto p on v.idproducto=p.id


119
inner join bodega b on b.id=v.idbodega where v.fecha between '2012-01-01' and '2015-12-29';

Creamos un Index en donde nos direccionamos a la fecha en la tabla venta: create index idx_fecha on
venta(fecha);

Se realiza la consulta anterior con inner join el resultado es el siguiente: 01:52 minutes

120
Se realiza la misma consulta ahora usando un where y con el INDEX creado:

select v.id,c.nombre as "Cliente",v.fecha as "Fecha Venta",p.descripcion

as "Producto",v.total as "Total",b.descripcion as "Bodega"

from cliente c,venta v, producto p, bodega b

where c.id=v.idcliente and v.idproducto=p.id and b.id=v.idbodega

and v.fecha between '2012-01-01' and '2012-12-29' order by id;

El resultado es el siguiente, se realiza consulta en 42.1secs:

121
Conclusin

Los ndices, pueden llegar a ser una herramienta muy til ya que aceleran la recuperacin y visualizacin
de los datos. Prcticamente funciona de manera muy semejante a un catlogo para libros dentro de una
biblioteca. Si se busca un libro segn el nombre de su autor entonces se realiza una consulta en el
catlogo de autores (o en su defecto, dentro de la seccin bsqueda por autores del programa en
cuestin) y es ubicado rpidamente el lugar donde se encuentra el libro. Por smil, los ndices son las
herramientas que se utilizan para esto dentro de las bases de datos: Localizar registros rpidamente.

122
Prctica 7: Calificaciones.

Objetivos:

Comprender la estructura bsica del mtodo FUNCTION en sus formas INSERT, DELETE y
UPDATE.
Aprender la sintaxis correcta de los Mtodos Function y Triggers.
Realizar dos tablas ejemplo y crear los Triggers para la insercin, eliminacin y actualizacin en
una tabla de respaldo.

Materiales:

Una computadora con PostgreSQL instalado (pgAdmin III)


Un Modelo relacional de nuestra base de datos.
Los cdigos DML de PostgreSQL principales

123
Marco Terico

La importancia de los triggers en la programacin dentro del lenguaje SQL ha ido aumentando de
manera vertiginosa desde su insercin en el ao de 1999 por parte de IBM, principalmente por la
seguridad que resulta de usar estos procedimientos para tratar la informacin almacenada en una
base de datos. Las nuevas tecnologas utilizadas para realizar ciertas transacciones y el uso de
los triggers para controlar dichas transacciones garantizan la integridad y seguridad de dicha
operacin.

Las ventajas de usar los Disparadores:

La entrada en vigor automtica de restricciones de los datos, hace que los usuarios
entren slo valores vlidos.
El mantenimiento de la aplicacin se reduce, los cambios a un disparador se refleja
automticamente en todas las aplicaciones que tienen que ver con la tabla sin la
necesidad de recompilar o relinquear.
Logs automticos de cambios a las tablas. Una aplicacin puede guardar un registro
corriente de cambios, creando un disparador que se active siempre que una tabla
se modifique.
La notificacin automtica de cambios a la Base de Datos con alertas de evento en
los disparadores.

Los Disparadores tienen dos palabras clave, OLD y NEW que se refieren a los valores que
tienen las columnas antes y despus de la modificacin. Los INSERT permiten NEW, los
DELETE slo OLD y los UPDATE ambas. (Unknow, s.f.)

124
Instrucciones:

Realizar el modelo relacional del problema solicitado.


Configurar pgAdmin III con nuestro servidor local (en caso de ser necesario).
Abrir la consola SQL de pgAdmin III e introducir los cdigos que requerimos utilizar.
Crear las tablas requeridas de nuestro modelo relacional.
Realizar la funcin y el trigger correspondiente

Ejercicio Sugerido.

Realizar una tabla que contenga los siguientes atributos:

ID
Matricula
Materia
Calificacin
Nivel de Desempeo

Realizar un trigger o disparador que cada vez que el usuario inserte o actualice una calificacin ponga
una leyenda en el nivel de desempeo quedando de la siguiente manera este campo:

Menos que 7: Insuficiente


Entre 7 y 7.4: Suficiente
Entre 7.5 y 8.4: Bueno
Entre 8.5 y 9.4: Notable
Entre 9.5 y 10: Excelente

Modelo Relacional:

125
Desarrollo Prctica 7: Calificaciones.

Creamos la funcin que es la que se va a encargar de poner las leyendas correspondientes en el campo
apropiado, para ello, usaremos las condicionales IF

Ahora crearemos el Trigger que ejecutar la funcin de manera correcta, en este caso despus de una
insercin o actualizacin.

126
Podemos comprobar que el trigger y la funcin se ejecutan de manera correcta cuando se insertan
datos.

De igual manera el trigger y la funcin se ejecutan de manera correcta cuando se actualiza el campo
de calificaciones, poniendo la leyenda correspondiente a la calificacin.

127
Conclusin

Despus de un estudio y anlisis de las distintas fuentes de informacin que hacen referencia al uso
e importancia de los Triggers dentro del lenguaje de programacin SQL, se ha llegado a la conclusin
que dichos procesos jerarquizan el nivel de integridad y seguridad requerido para la manipulacin de
la informacin dentro de los Sistemas Gestores de Bases de Datos. El uso constante de las nuevas
tecnologas y los distintos algoritmos usados para la alteracin de la informacin almacenada dentro
de una base de datos hace necesario establecer procesos que permitan tener un control sobre la
informacin. El uso de esta potente herramienta (Los Triggers) brinda la posibilidad de que
programador pueda realizar procesos que garanticen que dicha informacin ser tratada de manera
adecuada.

128
Transacciones

Agregamos un par de registros, cada uno dentro de una transaccin en el primer registro el COMMIT
(confirmacin) se realiza de forma automtica al terminar la transaccin con el comando END.

En el segundo registro utilizamos el comando COMMIT de forma explcita para hacer los cambios
permanentes.

129
Ahora insertamos un nuevo registro y eliminamos un par pero en vez de confirmar la transaccin con
COMMIT deshacemos los cambios y regresamos los registros a su estado original, utilizando ROLLBACK.

130
131
Mejor explicado sentencia lnea por lnea.

Insertando datos.

Seleccionamos los datos para corroborar los cambios.

132
Como se ve al ejecutar la sentencia rollback me regresa al nmero de registros que haba antes de las
inserciones dentro de la transaccin.

133
Finaliza la Prctica con xito.

134
Usuarios

Objetivos:
Comprender la estructura bsica del mtodo Grant y Revoke en sus sintaxis ms simples.
Realizar dos usuarios ejemplo y crear los Grant y Revoke para la insercin, eliminacin y
actualizacin en una tabla de respaldo.
Aprender la sintaxis correcta de los Mtodos Grant y Revoke.

Materiales:
Una computadora con PostgreSQL instalado (pgAdmin III)
Un Modelo relacional de nuestra base de datos.
Los cdigos DML de PostgreSQL principales

135
Marco Terico.

Utilizando los comandos GRANT y REVOKE en PostgreSQL


El post acerca de los comandos GRANT y REVOKE, estos comandos adicionalmente cuentan con las
opciones de:
ALL PRIVILEGES -Otorga todos los privilegios al usuario sobre un particular objeto.
PUBLIC -En vez de asignar los privilegios a cada usuario (uno por uno) , se utiliza esta palabra para asignar
los privilegios a cada uno de los usuarios autentificados en la base de datos, incluso a aquellos que no han
sido creados.
Adems para el comando GRANT tenemos la opcin de:
WITH GRANT OPTION-Cuando se crea un objeto en la base de datos, el creador de ese objeto es el nico
que puede otorgar privilegios al objeto para que otros usuarios lo utilicen, con esta opcin el propietario del
objeto permite que otros usuarios puedan asignar privilegios a un objeto de su propiedad.
Para retirar todos los privilegios ejecuto como el usuario postgres el siguiente comando:
REVOKE ALL PRIVILEGES ON Tabla FROM base de datos;

Instrucciones:

Realizar el modelo relacional del problema solicitado.


Configurar pgAdmin III con nuestro servidor local (en caso de ser necesario).
Abrir la consola SQL de pgAdmin III e introducir los cdigos que requerimos utilizar.
Crear las tablas requeridas de nuestro modelo relacional.
Establecer llaves forneas y primarias.
Realizar 3 inserciones para cada tabla.

Ejercicio Sugerido.
Crear usuarios y modificar sus datos utilizando los comandos Grant y Revoke

136
Desarrollo Prctica Usuarios

137
Conclusin

Los comandos Grant y Revoke nos dan paso a la seguridad de datos al mostrarnos los primeros pasos para
bloquear y dar acceso a otros usuarios a mover y editar funciones para la mejor administracin de base de
datos.
Con esto podemos concluir que postgres tiene varias ventajas, las cuales unas de ellas son:
-Seguridad en trminos generales
-Integridad en BD: restricciones en el dominio
-Integridad referencial
-Afirmaciones (Assertions)
-Disparadores (Triggers)
-Autorizaciones
-Conexin a DBMS
-Transacciones y respaldos

138
Bibliografa
Avila, K. (s.f.). CANVSI. Obtenido de http://www.cavsi.com/preguntasrespuestas/que-es-un-sistema-
gestor-de-bases-de-datos-o-sgbd/

conceptos basico sobre base de datos. (s.f.). Obtenido de http://support.office.com:


https://support.office.com/es-es/article/Conceptos-b%C3%A1sicos-sobre-bases-de-datos-
a849ac16-07c7-4a31-9948-3c8c94a7c204

Giber Ginest, M., & Prez Mora, O. (s.f). Base de Datos en PostgreSQL.

Prez Valds, D. (26 de Octubre de 2007). Maestros del Web. Obtenido de


http://www.maestrosdelweb.com/que-son-las-bases-de-datos/

Shimel, A. (04 de Agosto de 2011). NETWORK WORLD. Obtenido de


http://www.networkworld.com/article/2220344/opensource-subnet/apple-ditches-mysql-in-
favor-of-postgresql.html

Unknow. (s.f). Microsoft Suport. Obtenido de https://support.office.com/es-es/article/Conceptos-


b%C3%A1sicos-sobre-bases-de-datos-a849ac16-07c7-4a31-9948-3c8c94a7c204
Desconocido. (s.f). 2ndQuadrant. Obtenido de http://2ndquadrant.com/es/postgresql/quien-usa-
postgresql/

univeridad de murcia. (s.f). Obtenido de http://www.um.es/geograf/sigmur/sigpdf/postgresql.pd


Catarina. (s.f.). Catarina. Obtenido de Catarina:
http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/sanchez_r_ma/capitulo5.pdf

Edgar. (s.f.). El Blog de Edgar. Obtenido de http://edgartec.com/procedimientos-almacenados-en-


postgresql/

PostgreSQL. (s.f.). PostgreSQL. Obtenido de http://www.postgresql.org.es/node/297 Unknow.

(s.f.). Wordpress. Obtenido de Wordpress-Disparadores:


https://zdes.wordpress.com/2009/01/29/disparadores-o-triggers-en-una-base-de-datos/

Wordpress. (s.f.). Obtenido de Wordpress-Triggers Dinamicos:


https://phenobarbital.wordpress.com/2014/09/06/postgresql-crear-triggers-dinamicos-con-
postgresql/

139
TECNOLGICO DE ESTUDIOS SUPERIORES DE CHALCO
HOJA DE EVIDENCIA DE EVALUACIN SUMATIVA

Carrera: ING. EN SISTEMAS COMPUTACIONALES Asignatura: Administracin de Bases de Datos


Nombre del(a) alumno(a): Actividad correspondiente a: 3ra Unidad
Grupo: 4 6 0 2 Fecha: martes 21 de Junio 2016
Nombre del profesor: Ing. Gloria Concepcin Tenorio S.
Resultado: ( ) Firma del Alumno:

140

You might also like