procedimientos almacenados.docx

22
Universidad José Carlos Mariátegui Facultad de ingenierías Carrera Profesional de Ingeniería de Sistemas e Informática Curso : Base de Datos II Docente : ING. Melina Alferez Garcia Alumno : Flores Taype Aron Jorge Flores Chambi Sergio

Upload: asternight

Post on 30-Jan-2016

234 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Procedimientos Almacenados.docx

Universidad José Carlos Mariátegui

Facultad de ingenierías

Carrera Profesional de Ingeniería de Sistemas e Informática

Curso : Base de Datos II

Docente : ING. Melina Alferez

Garcia

Alumno : Flores Taype Aron Jorge

Flores Chambi Sergio

Año : 2015

Page 2: Procedimientos Almacenados.docx

Procedimientos Almacenados

SQL Server ofreces dos alternativas para asegurar la integridad de datos

Integridad Declarativa: Es mediante el uso de restricciones (constraints), valores

predeterminados (defaults) y reglas (rules).

Integridad Procedimental: Es mediante la implementación de procedimientos

almacenados y desencadenadores (triggers)

Definición

Es un conjunto de instrucciones a las que se les da un nombre, esta se almacena

en el servidor, permitiendo encapsular tareas repetitivas.

Tipos de procedimientos Almacenados

Del sistema

Están almacenados en la base de datos “master” y llevan el prefijo “sp_”;

permiten recuperar información de las tablas del sistema y pueden ejecutarse en

cualquier base de datos

Locales

Son creados por el usuario, este procedimiento se puede crear en una base de

datos definida por el usuario o en todas las bases de datos del sistema a

excepción de la base de datos Resource.

Temporales

Pueden ser locales, cuyos nombres comienzan con un signo numeral (#), o

globales, cuyos nombres comienzan con 2 signos numeral (##). Los

procedimientos almacenados temporales locales están disponibles en la sesión de

un solo usuario y se eliminan automáticamente al finalizar la sesión, los globales

están disponibles en las sesiones de todos los usuarios.

Extendidos

Se implementan como bibliotecas de vínculos dinámicos (DLL, Dynamic-Link

Libraries), se ejecutan fuera del entorno de SQL Server. Generalmente llevan el

prefijo “xp_”.

Page 3: Procedimientos Almacenados.docx

Al crear un procedimiento almacenado, las instrucciones que contiene se analizan para

verificar si son correctas sintácticamente. Si no se detectan errores, SQL Server guarda

el nombre del procedimiento almacenado en la tabla del sistema “sysobjects” y su

contenido en la tabla del sistema “syscomments” en la base de datos activa. Si se

encuentra algún error, no se crea.

Un procedimiento almacenado puede hacer referencia a objetos que no existen al

momento de crearlo. Los objetos deben existir cuando se ejecute el procedimiento

almacenado.

Ventajas

Comparten la lógica de la aplicación con las otras aplicaciones, con lo cual el

acceso y las modificaciones de los datos se hacen en un solo sitio.

Permiten realizar todas las operaciones que los usuarios necesiten evitando que

tengan acceso directo a las tablas.

Reducen el tráfico de red, en vez de enviar muchas instrucciones, os usuarios

realizan operaciones enviando una única instrucción, lo cual disminuye el

número de solicitudes entre el cliente y el servidor.

Permite hacer optimizaciones en la base de datos sin mucho esfuerzo.

Desventajas

Cualquier cambio instantáneamente afecta todas las otras piezas de software.

Alto grado de acoplamiento, esto quiere decir que si una aplicación te pide que

corra en otro motor de BBDD, se tendrá que reescribir todo el código de los

procedimientos almacenados, es decir que su mayor problema es la

portabilidad.

Descripción de Procesos

Crear-ejecutar

Sintaxis

Para ejecutar el procedimiento almacenado

Page 4: Procedimientos Almacenados.docx

Ejemplo

Se creara la tabla Libros con los siguientes.

Insertar datos en la tabla creada

Al ejecutar este procedimiento

Como la tabla ya existe, se eliminaran todos los registros existentes

Page 5: Procedimientos Almacenados.docx

Ejercicio

Una empresa almacena los datos de sus empleados en una tabla llamada “empleados

1. Eliminamos la tabla si existe de no ser así la creamos la creamos

2. Ingresamos algunos registros

Page 6: Procedimientos Almacenados.docx

3. Elimine el procedmiento llamado “pa_emp_sueld si existe

4. Crear un procedimiento almacenado llamado "pa_empleados_sueldo" que

seleccione los nombres, apellidos y sueldos de los empleados.

5. Ejecute el procedimiento creado anteriormente

6. Elimine el procedimiento llamado “pa_empleados_hijos” si existe.

Page 7: Procedimientos Almacenados.docx

7. Cree un procedimiento almacenado llamado “pa_empleados_hijos” que

seleccione los nombres, apellidos, cantidad de hijos de los empleados con hijos

8. Ejecute el procedimiento anterior

9. Actualice la cantidad de hijo de algún empleado sin hijo y vuelva a ejecutar el

procedimiento para verificar que ahora si aparece en la lista.

Page 8: Procedimientos Almacenados.docx

Eliminar

Los procedimientos almacenados se eliminan con “drop procedure”

Si el procedimiento que se quiere eliminar no existe, aparece un error, para evitarlo , se

puede emplear la siguiente sintaxis.

Ejemplo

Eliminar, si existe, el procedimeinto “pa_libros_autor”, si no existe, se mostrará un

mensaje.

“Drop procedure” puede abrebiarse como “drop proc”

Es recomendable ejecutar el procedimiento almacenado del sistema

“sp_depends”

para ver si algun objeto depende del procedimiento que deseamos eliminar.

Page 9: Procedimientos Almacenados.docx

o Asi se podria eliminar una tabla de la cual dependa un procedimiento,

esto SQL Server los permite pero al ejecutar el procedimiento, aparecera

un mensaje de error porque la tabla refernciada no existe.

Parámetros de entrada y salida

Los procedimientos almacenados pueden recibir y devolver información, para ellos se

emplean parámetros, de entrada y salida.

Parámetros de entrada posibilitan pasar información a un procedimiento, para que un

procedimiento almacenado admita parámetros de entrada se deben declarar variables

como parámetros al crearlo

Sintaxis:

Los parámetros se definen luego del nombre del procedimiento, comenzando el nombre

con un signo arroba (@).

Cuando el procedimiento es ejecutad, deben explicitarse valores para cada uno de los

parámetros en el mismo orden que fueron definidos, a menos que se haya definido un

valor por defecto en tal caso pude omitirse. Pueden ser de cualquier tipo de datos

excepto cursor.

Ejemplo

Se crea un procedimiento que recibe el nombre del autor como parámetro para

mostrar todos los libros del autor solicitado.

El procedimiento se ejecuta colocando “execute” (exec) seguido del nombre del

procedimiento y un valor para el parámetro en este caso.

Page 10: Procedimientos Almacenados.docx

Crear un procedimiento que recibe 2 parámetro, el nombre de un aturo y el de

una editorial.

Se puede emplear patrones de búsqueda en la consulta que define el procedimiento

almacenado y utilizar comodines como valores por defecto.

Al ejecutar el procedimiento almacenado, se asume que es el primero

Ejecuta el procedimiento almacenado “pa_libros_autor_editorial3” enviando un valor

para el segundo parámetro, para el primero parámetro tomar el valor por defecto.

Page 11: Procedimientos Almacenados.docx

Ejercicio

Una empresa almacena los datos de sus empleados en una tabla llamada “empleados”

1. Eliminar la tabla si existe si no la creamos

2. Ingresamos algunos registros

3. Eliminar el procedimiento llamado “pa_empleados_sueldos” si existe.

4. Crear un procedimiento almacenado llamado “pa_empleado_sueldo” que

seleccione los sueldos de los empleados que tengan un sueldo superior o igual al

enviado como parámetro.

Page 12: Procedimientos Almacenados.docx

5. Ejecutar el procedimiento almacenado “pa_empleado_sueldo” con distintos

valores

6. Ejecutar el procedimiento alamacenado “pa_empleados_sueldo” sin parámetros

(mensaje de error).

7. Eliminar el procedimiento elmacenado “pa_empleado_actualizar_suueldo si

existe.

8. Cree un procedimiento almacenado llamado “pa_empleados_aztualizar_sueldo”

que actualice los sueldos iguales al enviado como primero parámetro con el

valor enviado como segundo parámetro.

Page 13: Procedimientos Almacenados.docx

9. Ejecute el procedimiento creado anteriormente y verificar si se ha ejecutado

correctamente

10. Ejecute el procedimiento “pa_empleados_actualizar_sueldo” enviando un solo

parámetro.

11. Ejecute el procedimiento “pqa_empleados_actualizar_sueldo” enviado en primer

lugar el parámetro @sueldonuevo y en segundo lugar @sueldoanterior

12. Verificar el cambio

Page 14: Procedimientos Almacenados.docx

13. Eliminar el procedimiento almacenado “pa_sueldototal” si existe.

14. Crear un procedimiento llamado “pa_sueldototal” que reciba el documento de un

empleado y muestre su nombre, apellido y el sueldo total (resultado de la suma

del sueldo y salario por hijo, que es de 200 si el sueldo es menos a 500 y 100, si

el sueldo es mayor o igual a 500). Colocar como valor por defecto para el

parámetro el patrón “%”.

15. Ejecutar el procedimiento anterior enviando diferentes valores

Page 15: Procedimientos Almacenados.docx

16. Ejecutar el procedimiento sin enviar parámetro que tome el valor por defecto.

Mostrar los 5 registros.

Parámetros de salida

Los procedimientos almacenados también pueden devolver información, usando

parámetros de salida. El valor se retorna a quien realizo la llamada con parámetros de

salida. Para que un procedimiento almacenado devuelva un valor se debe declarar una

variable con la palabra clave “output” al crear el procedimiento:

Sintaxis

Los parámetros de salida pueden ser de cualquier tipo de datos, excepto text, ntext e

image.

Ejemplo

Crear un procedimiento almacenado al cual se le envía 1 números y retorna el promedio

Page 16: Procedimientos Almacenados.docx

Al ejecutarse también se debe emplear el “output”

Ejemplo 2

Se creara un procedimiento almacenado que muestre los título, editorial y precio de los

libros de un determinado autor (enviando como parámetro de entrada ) y nos retorne la

suma y el promedio de los precios de todos los libros del autor enviado.

Ejecutamos el procedimiento y vemos el contenido de las variables en las que

almacenamos los parámetros de salida del procedimiento.