Está en la página 1de 15

UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN

FACULTAD DE INGENIERA
ESCUELA PROFESIONAL DE INGENIERA EN
INFORMTICA Y SISTEMAS

PRCTICA LABORATORIO 01
Procedimientos Almacenados

CURSO: Base de Datos II


DOCENTE: Ing. Edgar Taya Acosta
Ing. Edith Alfaro
ESTUDIANTE: ROBERTO CARLOS PONGO CONDORI (2014-119002)
AO: TERCERO

TACNA PER

2016

INFORME DE LABORATORIO N I PROCEDIMIENTOS ALMACENADOS

NDICE
NDICE...................................................................................................................................................... 2
I.

OBJETIVOS...................................................................................................................................... 3

II.

FUNDAMENTO TERICO................................................................................................................ 3

III.

PROCEDIMIENTO........................................................................................................................ 5

CONCLUSIONES................................................................................................................................... 15
REFERENCIAS BIBLIOGRFICAS........................................................................................................ 15

INFORME DE LABORATORIO N I PROCEDIMIENTOS ALMACENADOS

INFORME DE LABORATORIO N I
PROCEDIMIENTOS ALMACENADOS
I.

OBJETIVOS

II.

Crear procedimientos almacenados con instrucciones de manipulacin de datos.


Usar parmetros de entrada y salida.

FUNDAMENTO TERICO
Usos tpicos para procedimientos almacenados incluyen la validacin de datos siendo integrados a
la estructura de base de datos (los procedimientos almacenados utilizados para este propsito a
menudo son llamados disparadores; triggers en ingls), o encapsular un proceso grande y
complejo.
Los procedimientos se asemejan a las construcciones de otros lenguajes de programacin, porque
pueden:
Aceptar parmetros de entrada y devolver varios valores en forma de parmetros de
salida al programa que realiza la llamada.
Contener instrucciones de programacin que realicen operaciones en la base de datos.
Entre otras, pueden contener llamadas a otros procedimientos.
Devolver un valor de estado a un programa que realiza una llamada para indicar si la
operacin se ha realizado correctamente o se han producido errores, y el motivo de estos.
VENTAJAS DE USAR PROCEDIMIENTOS ALMACENADOS
En la siguiente lista se describen algunas de las ventajas que brinda el uso de procedimientos.
Trfico de red reducido entre el cliente y el servidor
Los comandos de un procedimiento se ejecutan en un nico lote de cdigo. Esto puede reducir
significativamente el trfico de red entre el servidor y el cliente porque nicamente se enva a
travs de la red la llamada que va a ejecutar el procedimiento. Sin la encapsulacin de cdigo que
proporciona un procedimiento, cada una de las lneas de cdigo tendra que enviarse a travs de
la red.
Mayor seguridad
Varios usuarios y programas cliente pueden realizar operaciones en los objetos de base de datos
subyacentes a travs de un procedimiento, aunque los usuarios y los programas no tengan
permisos directos sobre esos objetos subyacentes. El procedimiento controla qu procesos y
actividades se llevan a cabo y protege los objetos de base de datos subyacentes. Esto elimina la
necesidad de conceder permisos en cada nivel de objetos y simplifica los niveles de seguridad.
La clusula EXECUTE AS puede especificarse en la instruccin CREATE PROCEDURE para
habilitar la suplantacin de otro usuario o para permitir que los usuarios o las aplicaciones puedan
realizar ciertas actividades en la base de datos sin necesidad de contar con permisos directos
sobre los objetos y comandos subyacentes. Por ejemplo, algunas acciones como TRUNCATE
TABLE no tienen permisos que se puedan conceder. Para poder ejecutar TRUNCATE TABLE, el
usuario debe tener permisos ALTER en la tabla especificada. Puede que la concesin de permisos
ALTER a un usuario en una tabla no sea lo ideal, pues en realidad el usuario tendr permisos muy
superiores a la posibilidad de truncar una tabla. Si se incorpora la instruccin TRUNCATE TABLE
en un mdulo y se especifica la ejecucin del mdulo como un usuario con permisos para
modificar la tabla, se pueden ampliar los permisos para truncar la tabla al usuario al que se
concedan permisos EXECUTE para el mdulo.

INFORME DE LABORATORIO N I PROCEDIMIENTOS ALMACENADOS

Al llamar a un procedimiento a travs de la red, solo est visible la llamada que va a ejecutar el
procedimiento. Por lo tanto, los usuarios malintencionados no pueden ver los nombres de los
objetos de base de datos y tabla, incrustados en sus propias instrucciones Transact-SQL , ni
buscar datos crticos.
El uso de parmetros de procedimientos ayuda a protegerse contra ataques por inyeccin de
cdigo SQL. Dado que la entrada de parmetros se trata como un valor literal y no como cdigo
ejecutable, resulta ms difcil para un atacante insertar un comando en la instruccin TransactSQL del procedimiento y comprometer la seguridad.
Los procedimientos pueden cifrarse, lo que ayuda a ofuscar el cdigo fuente.
Reutilizacin del cdigo
El cdigo de cualquier operacin de base de datos redundante resulta un candidato perfecto para
la encapsulacin de procedimientos. De este modo, se elimina la necesidad de escribir de nuevo
el mismo cdigo, se reducen las inconsistencias de cdigo y se permite que cualquier usuario o
aplicacin que cuente con los permisos necesarios pueda acceder al cdigo y ejecutarlo.
Mantenimiento ms sencillo
Cuando las aplicaciones cliente llaman a procedimientos y mantienen las operaciones de base de
datos en la capa de datos, solo deben actualizarse los cambios de los procesos en la base de
datos subyacente. El nivel de aplicacin permanece independiente y no tiene que tener
conocimiento sobre los cambios realizados en los diseos, las relaciones o los procesos de la
base de datos.
Rendimiento mejorado
De forma predeterminada, un procedimiento se compila la primera vez que se ejecuta y crea un
plan de ejecucin que vuelve a usarse en posteriores ejecuciones. Como el procesador de
consultas no tiene que crear un nuevo plan, normalmente necesita menos tiempo para procesar el
procedimiento.
Si ha habido cambios importantes en las tablas o datos a los que se hace referencia en el
procedimiento, el plan precompilado podra hacer que el procedimiento se ejecutara con mayor
lentitud. En este caso, volver a crear el procedimiento y forzar un nuevo plan de ejecucin puede
mejorar el rendimiento.

ELEMENTOS DE LOS PROCEDIMIENTOS ALMACENADOS

Los procedimientos almacenados estn compuestos por algunos de estos elementos:


Parmetros de entrada (pueden esperar parmetros)
Parmetros de salida (pueden devolver resultados)
Declaracin de variables (puede usarse variables en su cuerpo)
Cuerpo del procedimiento (en su cuerpo se indican las acciones a realizar)
Tanto los parmetros de entrada como los de salida son opcionales. Podemos tener un
procedimiento que no tenga parmetros de entrada, pero s de salida y viceversa. Como todo
buen programador sabe, los parmetros de entrada sirven para pasarle datos al procedimiento
que necesita para llevar a cabo una accin determinada. Los parmetros de salida devuelven
al programa cliente que ejecut el procedimiento el resultado del mismo.

Cuando mltiples aplicaciones cliente se escriben en distintos lenguajes o funcionan en distintas


plataformas, pero necesitan realizar la misma operacin en la base de datos. Cuando la seguridad
es muy importante. Los bancos, por ejemplo, usan procedimientos almacenados para todas las
operaciones comunes.
Esto proporciona un entorno seguro y consistente, y los procedimientos pueden asegurar que
cada operacin se loguea apropiadamente. En tal entorno, las aplicaciones y los usuarios no

INFORME DE LABORATORIO N I PROCEDIMIENTOS ALMACENADOS

obtendran ningn acceso directo a las tablas de la base de datos, slo pueden ejecutar algunos
procedimientos almacenados.

III.

PRACTICA DIRIGIDA

A. Para iniciar la prctica cargar el administrador corporativo del SQL Server.


B. Realizar la conexin al servidor usando el inicio de sesin de un usuario distinto a sa (el cual
C.

debe ser creado previamente).


Restablecer la base de datos de prueba mediante la opcin restablecer.

PROCEDIMIENTOS ALMACENADOS DE INSERCIN, ACTUALIZACIN Y ELIMINACIN DE


REGISTROS
a) Generacin de cdigos numricos

Usando el Analizador de Consultas SQL, Implemente los siguientes procedimientos


almacenados en la base de datos de trabajo

El algoritmo aplicado, en su forma genrica es el siguiente:

Para verificar el funcionamiento de este cdigo, ejecute siguientes instrucciones

Y obtendremos como resultado:

Si ejecuta esta instruccin N veces, por qu no cambia el resultado de la consulta?


El resultado no cambiara, debido a que la ID que se muestra como resultado no ha sido
creada an, y aparece como la supuesta ID en caso que se ingresara un nuevo dato en la
tabla que se ha determinado en la ejecucin.

INFORME DE LABORATORIO N I PROCEDIMIENTOS ALMACENADOS

b) Generacin de Cdigo tipo Cadena

Usando el Analizador de Consultas SQL, Implemente los siguientes procedimientos


almacenados en la base de datos de trabajo

El algoritmo aplicado, en su forma genrica es el siguiente:

Para verificar el funcionamiento de este cdigo, ejecute siguientes instrucciones.

El formato de los cdigos generados ser similar a RJ0001, RJ0002, ER0001, , etc.
Se obtiene como resultado el siguiente mensaje:

Si ejecuta esta instruccin N veces, por qu no cambia el resultado de la consulta?


Pruebe a cambiar los datos de los parmetros Apellido y Nombre.

INFORME DE LABORATORIO N I PROCEDIMIENTOS ALMACENADOS

No cambio debido a que los datos ingresados, correspondientes al Nombre y Apellido, son
los mismos, por lo que el resultado no cambiar. Pero si es que se cambian los datos,
Nombre y Apellido, por ejemplo Jose, Pongo. El nuevo cdigo ser: JP0001
PROCEDIMIENTOS DE INSERCIN DE REGISTROS AUTOMATIZADO
a) Insercin de Datos forma 1:

Usando el Analizador de Consultas SQL, Implemente los siguientes procedimientos


almacenados en la base de datos de trabajo.

El algoritmo aplicado, en su forma genrica es el siguiente:

A continuacin, ejecute las siguientes rutinas de insercin de registros

Qu sucede cuando las instrucciones se tratan de ejecutar repetidamente?, por qu?


Revise el contenido de la tabla Cliente, para ello ejecute SELECT * FROM Cliente
Si el cliente ya se hallaba en dicha tabla, obtendremos como respuesta un mensaje de
error, y sobre todo debido a que al dato que se ingresar se le otorgar un numero de

INFORME DE LABORATORIO N I PROCEDIMIENTOS ALMACENADOS

registro que por ende es clave primaria, y una de sus propiedades es que debe ser nica,
es por ello que no deben existir dos claves primerias iguales.
b) Insercin de datos forma 2:

Usando el Analizador de Consultas SQL, Implemente los siguientes procedimientos


almacenados en la base de datos de trabajo
Para hacerlo, primeramente, deber crear una tabla de prueba donde se insertar los
datos mediante esta segunda forma, solo para efectos de comprobacin del cdigo. Para
ello deben:
1. Adicionar una nueva tabla
2. Crear las siguientes columnas:
a. Cod2_empleado(varchar(6). No Null)
b. Apellidos2(varchar(20), Null)
c. Nombres2(varchar(10), Null)
d. Cargo2(varchar(30), Null)
e. Direccion2(char(45), Null)
3. Guardar la nueva tabla como Empleado2

El algoritmo aplicado, en su forma genrica es el siguiente:

A continuacin, ejecute las siguientes rutinas de insercin de registros

INFORME DE LABORATORIO N I PROCEDIMIENTOS ALMACENADOS

En caso de que se ejecute el cdigo repetidas veces, obtendremos el siguiente resultado

Qu sucede cuando las instrucciones se tratan de ejecutar repetidamente?, por qu?


Revise el contenido de la tabla Empleado2, para ello ejecute SELECT * FROM
Empleado2
Se da el mismo caso que la insercin de la forma 1, en caso de que se ingresen datos,
Apellidos y Nombres, repetidos, obtendremos un mensaje de error en caso de que el dato
ya se encuentre en la tabla, caso contrario ser aadido.
PROCEDIMIENTOS DE ACTUALIZACION DE REGISTROS

Usando el Analizador de Consultas SQL, Implemente los siguientes procedimientos


almacenados en la base de datos de trabajo

El algoritmo aplicado, en su forma genrica es el siguiente:

INFORME DE LABORATORIO N I PROCEDIMIENTOS ALMACENADOS

A continuacin, ejecute las siguientes rutinas de modificacin de registros

Obteniendo como resultado el siguiente mensaje:

PROCEDIMIENTOS DE ELIMINACION DE REGISTROS

Usando el Analizador de Consultas SQL, Implemente los siguientes procedimientos


almacenados en la base de datos de trabajo

A continuacin, ejecute las siguientes rutinas de Eliminacin de registros

10

INFORME DE LABORATORIO N I PROCEDIMIENTOS ALMACENADOS

TAREA
Tomando como base de Datos: Movies

Procedimiento que crea un nuevo ID entero.

Y obtenemos como resultado:

Procedimiento que crea una ID cadena

11

INFORME DE LABORATORIO N I PROCEDIMIENTOS ALMACENADOS

Y se obtiene como resultado:

Creacin de un procedimiento de insercin de datos

Y obtenemos como resultado, en caso de que el Actor ya se encuentre en el registro, nos


indicar con un ERROR, caso contrario ser aadido.

12

INFORME DE LABORATORIO N I PROCEDIMIENTOS ALMACENADOS

Procedimiento, insercin de datos de datos de la segunda forma:

Y tenemos como respuesta:

Procedimiento, de actualizacin o modificacin de datos.

13

INFORME DE LABORATORIO N I PROCEDIMIENTOS ALMACENADOS

Y como resultado obtenemos:

Como ltimo procedimiento, eliminacin de un determinado dato

14

INFORME DE LABORATORIO N I PROCEDIMIENTOS ALMACENADOS

Y como resultado:

CONCLUSIONES

Se cre procedimientos almacenados de insercin, modificacin y eliminacin

Se aprendi a utilizar parmetros de entrada y salida.

REFERENCIAS BIBLIOGRFICAS

Ramez Elmasri, Shamkant B. Navathe (2007) Fundamentos de sistemas de bases de datos

Abraham Silberschatz, Henry F. Korth, S. Sudarshan (2006) Fundamentos de bases de datos:


Editorial Mac Graw Hill

15

También podría gustarte