Professional Documents
Culture Documents
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
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:
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:
6
Modelo Relacional:
7
Desarrollo de Prctica 1 Compras con Oracle Developer.
Creacin de tablas:
8
Se crea la tabla Tipo_Bienes con sus respectivos atributos.
9
Se agrega el cdigo correspondiente para hacer el enlace de la llave fornea entre la tabla Bienes y Tipos
de Bienes.
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.
12
Indexamos y creamos la tabla Proveedores con sus campos.
13
Creamos la tabla Detalla-de-Compra con los Id de sus campos forneos.
14
Insercin de Datos
Insertamos datos en la tabla proveedores, este procedimiento se realizara para cada una de las tablas que
tenemos.
15
DML con PostgreSQL.
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.
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
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.
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
$ make
ste se demora ms, ocupa ms el procesador, pero en unos minutitos debera haber terminado con la
frase:
Instalacin
La instalacin es igual de fcil. Lo nico que hay que hacer (por ahora) es escribir:
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.
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.
$ su -l postgres
/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:
Cabe recordar que estos comandos slo funcionan desde el usuario postgres as que siempre habr que
iniciar su sesin escribiendo antes:
$ su -l postgres
Ahora que est el servidor corriendo, podemos cerrar todas las ventanas.
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.
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 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 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
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.
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.
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
Integrantes:
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:
58
Marco Terico.
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)
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:
65
Opcin 3 instanciamos solamente las tablas que se relacionan sin hacer uso de alguna otra
funcin:
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:
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.
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:
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.
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.
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.
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:
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.
Condicin IF
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:
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:
83
Ahora hagamos una edicin, usaremos de referencia el campo observaciones, de vacantes lo
cambiamos a no vacantes.
84
Por ltimo realizaremos la eliminacin del registro creado.
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.
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
Integrantes:
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:
Disparadores Dinmicos
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:
Tabla Carreras:
1 Ing. Electromecnica 45
2 Ing. Electrnica 38
3 Ing. Industrial 37
Tabla Eliminados:
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.
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.
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.
96
Ejercicio C: Mostrar cuantos alumnos ingresaron antes del ao 2016. Su consulta siempre debe
estar vigente independientemente de los datos que contenga.
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.
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:
101
Marco Terico
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.
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
(Edgar, s.f.)
Instrucciones:
103
Ejercicio Sugerido.
Medicamentos
Presentacin Tipo
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.
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
PL/PgSQL
C.
C++.
PL/Perl.
plPHP.
PL/Python.
PL/Ruby.
PL/sh.
PL/Tcl.
PL/Scheme.
109
Prctica 6: Generar 5000 registros e ndices
Objetivos:
Materiales:
110
Marco Terico
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.
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.
112
Instrucciones:
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.
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 * 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 realiza consulta sin index y con un inner join en: 1:53 minutes
from cliente c
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:
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:
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.
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:
Ejercicio Sugerido.
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:
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.
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.
Instrucciones:
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/
Giber Ginest, M., & Prez Mora, O. (s.f). Base de Datos en PostgreSQL.
139
TECNOLGICO DE ESTUDIOS SUPERIORES DE CHALCO
HOJA DE EVIDENCIA DE EVALUACIN SUMATIVA
140