You are on page 1of 5

Práctica

Observaciones 1.- OBJETIVO

7

SUBTEMA:

PROCEDIMIENTOS ALMACENADOS

El estudiante consultará evaluará las ventajas y aplicación del lenguaje procedural en el DBMS

2.- MARCO TEORICO Un procedimiento almacenado es un conjunto de comandos SQL que pueden almacenarse en el servidor. Una vez que se hace, los clientes no necesitan relanzar los comandos individuales pero pueden en su lugar referirse al procedimiento almacenado. Algunas situaciones en que los procedimientos almacenados pueden ser particularmente útiles:   Cuando múltiples aplicaciones cliente se escriben en distintos lenguajes o funcionan en distintas plataformas, pero necesitan realizar la misma operación en la base de datos. Cuando la seguridad es muy importante. Los bancos, por ejemplo, usan procedimientos almacenados para todas las oparaciones comunes. Esto proporciona un entorno seguro y consistente, y los procedimientos pueden asegurar que cada operación se loguea apropiadamente. En tal entorno, las aplicaciones y los usuarios no obtendrían ningún acceso directo a las tablas de la base de datos, sólo pueden ejectuar algunos procedimientos almacenados.

Los procedimientos almacenados pueden mejorar el rendimiento ya que se necesita enviar menos información entre el servidor y el cliente. El intercambio que hay es que aumenta la carga del servidor de la base de datos ya que la mayoría del trabajo se realiza en la parte del servidor y no en el cliente. Considere esto si muchas máquinas cliente (como servidores Web) se sirven a sólo uno o pocos servidores de bases de datos. Los procedimientos almacenados le permiten tener bibliotecas o funciones en el servidor de base de datos. Esta característica es compartida por los lenguajes de programación modernos que permiten este diseño interno, por ejemplo, usando clases. Usando estas características del lenguaje de programación cliente es beneficioso para el programador incluso fuera del entorno de la base de datos.

3.- MATERIAL, EQUIPO O REACTIVO 7. Server2Go en USB 8. Servidor de MySql 4.- PROCEDIMIENTO 7. Tener mínimo 300 MB libres en la USB  Cargue el archivo Server2Go de la USB. Para cargar el servidor portable. o Se mostrará la página Server2Go – Selfconfigurating WAMP Stack, revise la página completa para cerciorarse que no hay ningún problema con la carga del servidor.  Busque el símbolo del sistema y selecciónelo  Cambié a la unidad de la USB y entre al directorio Server2Go\Server\MySql\Bin  Una vez en este directorio escriba mysql –u root –p y presione enter. 1. Crear un sistema de Base de Datos que tendrá dos tablas, una con ventas y la otra con comisiones. En la primera se almacenarán cada venta que se realiza en un Nombres del equipo Juan Carlos García Méndez Rubén Pérez Lara Fanny Sánchez de la Cruz

end if. CREATE TABLE ventas ( `vendedor` int(11).`sp_comisiones`$$ CREATE PROCEDURE `test`. d) Haga una llamada al procedimiento creado anteriormente e) Visualice nuevamente la información de todas las tablas Nombres del equipo Juan Carlos García Méndez Rubén Pérez Lara Fanny Sánchez de la Cruz . else insert into comisiones (vendedor.2). SET micomision = micomision + (suma * 0.comercio. END$$ DELIMITER . select IFNULL(sum(importe). SET micomision = micomision + (suma * 0. DECLARE suma INT.0) into suma from ventas where producto = 1 and vendedor = mivendedor. micomision). DECLARE existe BOOL. a) Inserte 5 tuplas en la tabla ventas b) Verifique las tablas tiene en su base de datos c) Muestre los datos de todas las tablas. calcularemos los porcentajes para cada tipo de producto vendido y luego lo añadiremos/actualizaremos en la tabla de comisiones.`sp_comisiones` (IN mivendedor INT) BEGIN DECLARE micomision INT DEFAULT 0. y es importante para los vendedores el que se sepa en cada momento qué comisiones lleva ganadas 2. y en la segunda las comisiones que le corresponden a cada vendedor en el momento.0) into suma from ventas where producto = 3 and vendedor = mivendedor.1). comision) values (mivendedor. select count(1)>0 into existe from comisiones where vendedor = mivendedor.15). select IFNULL(sum(importe). `producto` int(11). if existe then UPDATE comisiones set comision = comision+micomision where vendedor = mivendedor. `comision` float ) Las comisiones se calculan de una forma especial. Para calcular qué comisión le corresponde a un vendedor.0) into suma from ventas where producto = 2 and vendedor = mivendedor. Todo se realizará en un procedimiento almacenado DELIMITER $$ DROP PROCEDURE IF EXISTS `test`. SET micomision = micomision + (suma * 0. `importe` float ) CREATE TABLE comisiones ( `vendedor` int(11). select IFNULL(sum(importe). le corresponde un porcentaje de las ventas según el tipo de producto.

5.APARATOS E INSTRUMENTOS a) Computadora 6. ACTIVIDADES.. g) Toda la información será guardada en su USB. PRACTICA A RESOLVER ***Creación de la BD y las tablas*** ***Procedimiento*** Nombres del equipo Juan Carlos García Méndez Rubén Pérez Lara Fanny Sánchez de la Cruz . 7. mostrando los datos resultantes.f) Anote sus conclusiones. DATOS Y RESULTADOS Irá realizando cada uno de las actividades anteriores e irá capturando las pantallas del servidor cada que realice una instrucción.

La tabla de comisiones se actualizo con el parámetro que metimos cuando llamamos al Nombres del equipo Juan Carlos García Méndez Rubén Pérez Lara Fanny Sánchez de la Cruz . “En esta práctica tuvimos la oportunidad de poner en práctica los conocimientos teóricos que aprendimos en clases pasadas. sobre procedimientos.a) Inserte 5 tuplas en la tabla ventas b) Verifique las tablas tiene en su base de datos c) Muestre los datos de todas las tablas d) Haga una llamada al procedimiento creado anteriormente e) Visualice nuevamente la información de todas las tablas f) Anote sus conclusiones.

com www. Fundamentos de Base de Datos. http://www. Abraham.mysql. Como pudimos ver en las diferentes etapas de este ejercicio. Debemos practicar más sobre su uso. los procedimientos tienen una sintaxis y función especial en las bases de datos. Mc Graw Hill..” g) Toda la información será guardada en su USB.server2go. Ed.net Nombres del equipo Juan Carlos García Méndez Rubén Pérez Lara Fanny Sánchez de la Cruz .BIBLIOGRAFÍA     Silberschatz.procedimiento.conclase.com MySql con clase http://www. 8.

7.:34/0./.3908     !#%#$ '#  70..1  34908:8..6:070.89../08.948708:9./.3897:.8.7.7: .43./.F3/0 #:-F3!F70././47.0:3.748.3/4.3907470807E.O3/0.3/4.3/448/...   %'$ % $#$&% $  7E70.9..3.J..0/0. ..-.0/20394   42-708/006:54 :.31472..8     !74.O3807E:.038:&$    !#% $$%#&% $ .33$E3.../47 .85.59:7.  425:9.O3 24897..8/0807.39.7/.:84308    %4/.

7.039..2.-.4 . 42-708/006:54 :.7E20974 6:0 209248 .89.. 45479:3/.89.803.03:0.7: .:84308   3 089.89.248 .9./.F3/0 #:-F3!F70. /0 .O3/094/..9.-.9:.80/0/.  .43.7.0/0.-. 48 . 9:.J.808 5.248 .8  ./. .8  84-70 574.8..8.3..0/20394.748.574.20390.9.8.48 6:0 .2.70.4284308 80 .8  1  34908:8.43 0 5.39074720390  0  '8:./ /0 54307 03 57E.:.. '0716:0.  :0897048/...89030038:-.948/094/.3/4 ..-.8   /  .:3.948   .5703/248 03 .-.31472.  3807909:5. 9. 57E..434..33$E3./4.203948 90O7.0/203948  .

7/.0/20394890303:3.81:3.03.7.72E884-708::84     %4/..8-.80/0.948 0-0248 57.O30850.2 :3/.  995..5.07 03 .31472.808/0/.9 -7..839.948 / ..9.0/20394  424 5:/248 .8 /10703908 09./....O3807E:.4  48 574.8 /0 0890 007.038:&$      #  O O O O $-078..574.203948/0.

.

.80995.42 $6.43. 286 .074 .42  807.

.

7.748.7. . .F3/0 #:-F3!F70.33$E3.80 309   42-708/006:54 :.43.7: .J..3.0/0.