SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE SISTEMA INTEGRADO DE GESTIÓN Procedimiento Ejecución de la Formación Profesional Integral Versión: 01 Fecha: 09/10/2013 Código: F004-P006-GFPI GUÍA DE APRENDIZAJE Nº 1 Procedimientos almacenados 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE Programa de Formación: Código: Versión: Nombre del Proyecto: Sistema de información Código: para la gestión empresarial Fase del proyecto: No. 2 Desarrollo del proyecto Actividad (es) de Aprendizaje: 228120 100 Ambiente de formación 471143 MATERIALES DE FORMACIÓN DEVOLUTIVO CONSUMIBLE Actividad (es) del Proyecto: Implementar la base de datos. Resultados Aprendizaje: de 22050100701 Construir las tablas que hacen parte del diseño del diagrama relacional en el motor de base de datos empleando las cuatro formas de normalización Resultados de Aprendizaje: 22050100702 Relacionar las tablas construidas para presentar la información solicitada en el diseño. Resultados de Aprendizaje: 22050100704 Construir la matriz CRUD en el lenguaje de A.A. 1 Realizar procedimientos almacenados utilizando las sentencias DML de Transact-Sql. Competencia: Aula de informática dotada con computadores, conexión a internet, videobean, tablero, salida de emergencia, extintor. Computadores, videobean, tablero. Marcadores, hojas tamaño carta 220501007 Desarrollar el sistema que cumpla con los requerimientos de la solución informática Competencia: 220501007 Desarrollar el sistema que cumpla con los requerimientos de la solución informática Competencia: 220501007 Desarrollar el sistema que cumpla con los requerimientos de la solución informática
programación seleccionado para verificar la funcionalidad del sistema de acuerdo con el diseño entregado. Resultados de Aprendizaje: 22050103204 Interpreta el diagrama relacional para identificar el modelo de datos. Duración de la guía ( en horas): Competencia: 220501007 Desarrollar el sistema que cumpla con los requerimientos de la solución informática Presenciales: 20 Página 2 de 11
2. INTRODUCCIÓN Un procedimiento almacenado (stored procedure) no es más que una colección de sentencias Transact-SQL que se constituye como si de una función de un lenguaje estructurado (C, Pascal) se tratase. Es decir, es posible llamarlo mediante un identificador, puede recibir argumentos y devolver un valor de retorno. La característica primordial de los procedimientos almacenados es que se optimizan en el momento de su creación. Esto supone que, a diferencia de lo que sucede con las sentencias SQL que se envían al gestor de manera interactiva, los procedimientos almacenados pasan previamente por un proceso de normalización. Características Básicas: De manera análoga a las funciones de lenguaje estructurado, aceptan parámetros. Devuelven un valor de retorno. Puede indicar si las cosas han funcionado correctamente o ser utilizado por otro procedimiento. Pueden estar anidados, es decir puede que un procedimiento llame a otro en su interior. Aspectos de seguridad: es posible que un usuario esté autorizado a ejecutar procedimientos almacenados aunque no tenga permiso de acceso directo a las tablas que son utilizadas en dicho procedimiento. Pueden ser de dos tipos: Permanentes o Temporales. Pueden clasificarse en procedimientos del sistema y definidos por el usuario. Procedimientos almacenados definidos por el usuario: Se utiliza la sentencia CREATE PROCEDURE. Todos los procedimientos almacenados son creados en la base de datos actual, para crear el procedimiento se requiere tener permisos de ejecución de procedimientos almacenados. Sintaxis: CREATE PROCEDURE nombre_procedimiento Un procedimiento almacenado que muestre los detalles de un producto, podría ser: Página 3 de 11
Se debe tener en cuenta lo siguiente: El nombre debe seguir las reglas para identificadores. Se pueden crear objetos con los procedimientos a excepción de: DEFAULTS, RULES; TRIGGERS y VIEWS. Se pueden incluir referencias temporales a tablas temporales. Se pueden tener cerca de 2100 parámetros para un procedimiento. Se pueden crear tantas variables locales como la memoria del equipo lo permita. El tamaño máximo para un procedimiento almacenado es 128 MB. Para ejecutar el procedimiento se utiliza la sentencia EXECUTE. Sintaxis: EXECUTE nombre_procedimiento Para ejecutar el procedimiento creado en el ejemplo anterior se utilizaría: EXEC Productos_silla Se pueden utilizar parámetros dentro del procedimiento para recibir o retornar valores. Sintaxis: CREATE PROCEDURE nombre_procedimiento @nombre_parametro tipo_dato AS requieren del Sistema de Votaciones del punto anterior. Página 4 de 11
3. ESTRUCTURACION DIDACTICA DE LAS ACTIVIDADES DE APRENDIZAJE ACTIVIDADES 3.1 Actividades de Reflexión inicial. Realiza la lectura de seguridad de la siguiente Url. http://dev.mysql.com/doc/refman/5.0/es/stored-procedures.html.1 Actividades de contextualización e identificación de conocimientos necesarios para el aprendizaje Tarea de Aprendizaje 1. Según lo consultado defina cuáles son las ventajas de utilizar procedimientos almacenados. 2. Consulte sobre Sql Injection o Inyección de código Sql. 3. Compruebe el típico ataque de sql injection: txtusuario: ' OR 'A'='A txtpassword: ' OR 'A'='A txtpassword: ' OR 'A'='A'; DELETE nomb_tabla; SELECT * FROM USUARIOS WHERE 'A'='A 4. Según el anterior tema explique el propósito de usar procedimientos almacenados en consultas a la base de datos desde una interfaz de usuario. 5. Cómo es la sintaxis para declarar una variable en MS SQL server?. 6. Qué es y para que se usa una consulta parametrizada en una aplicación (C# 2008). 7. Realice los siguientes ejemplos de procedimientos definidos por el usuario: a) TecnNet Ms: Http://technet.microsoft.com/es-es/library/ms345415(SQL.90).aspx b) Sobre la Base de Datos AdventureWorks realice una nueva consulta con los siguientes ejemplos : Página 5 de 11
Verifique que efectivamente se creó el procedimiento en la pestaña: Programación: procedimientos almacenados de la Base de Datos c) Procedimiento con parámetros: Página 6 de 11
d) Realice los siguientes ejercicios: Cree un procedimiento almacenado llamado Datos_Contactos,que seleccione el nombre, apellido, titulo y teléfono de las contactos cuyo parámetros (nombre y apellido) sean: @FirstName = 'Gustavo', @LastName = 'Achong'; de la tabla Práctica: Sobre el Administrador de Sql Server : 1. Cree los respectivos procedimientos almacenados para el inicio de sesión de su proyecto, donde envié como parámetros el nombre de usuario y contraseña. 2. Elabore todos los procedimientos almacenados en Sql Server necesarios para brindar seguridad y rendimiento en la base de datos de su proyecto. 3.2 Actividades de apropiación del conocimiento (Conceptualización y Teorización). a) Lea completamente la presente guía de aprendizaje. b) Lea el material de apoyo que acompaña esta guía y tenga en cuenta la bibliografía. c) Descargue de http://msftdbprodsamples.codeplex.com/releases/view/55926 el instalador de la Base de Datos ejemplo Adventure Works e instálela en su equipo, luego adjúntela por el administrador de Sql server para poder realizar los procedimientos 3.3 Actividades de transferencia del conocimiento. Actividad 1: Realice un listado de procedimientos almacenados para las operaciones con base de datos que requiere cada clase de su proyecto. Actividad 2: Implemente los procedimientos almacenados para para su proyecto. Conclusiones Existen varias ventajas al utilizar un procedimientos almacenados tanto para consultar como para manipular datos de una base de datos, una de ellas es optimizar el tiempo a la hora de dar respuesta a una petición que realiza un cliente a un base de datos, por lo tanto es vital que en el aprendizaje de Transact- Sql, implementemos dicho tema en los proyectos que se realizarán posteriormente. La seguridad, es otra ventaja importante que los procedimientos almacenados nos proveen al utilizarlos en los sistemas de información porque precisamente evita que haya un inyección de código sql desde la interfaz de usuario. 3.4 Actividades de evaluación. Página 7 de 11
Evidencias de Aprendizaje Criterios de Evaluación Técnicas e Instrumentos de Evaluación Evidencias de Conocimiento : Investigación Evidencias de Desempeño: Implementación de los procedimientos almacenados Evidencias de Producto: Procedimientos almacenados para ejercicios propuestos y para su proyecto Plantea la necesidad de utilización de los procedimientos almacenados según los requerimientos del cliente. Diseña las expresiones para implementar los procedimientos almacenados. Genera ideas para innovar y solucionar problemas de seguridad desde la interfaz de usuario hacia la base de datos. Socialización de la investigación. Inspección resultados de la inyección de código. Juego de Roles Verificación ejecución de procedimientos almacenados y bombardeo de inyección de código. Script creación de procedimientos almacenados de solución de ejercicios propuestos. Lista de chequeo. Página 8 de 11
4. RECURSOS PARA EL APRENDIZAJE Materiales de formación devolutivos: (Equipos/Herramientas) Materiales de formación (consumibles) Talento Humano (Instructores) AMBIENTES DE APRENDIZAJE TIPIFICADOS ACTIVIDADES DEL PROYECTO Diseñar consultas.(create,read, DURACIÓN (Horas) 15 Descripción Cantidad Descripción Cantidad Especialidad Cantidad Computadores, conexión a Según cantidad Marcadores 2 Ing. De Sistemas o 1 ESCENARIO (Aula, Laboratorio, taller, unidad productiva) y elementos y condiciones de seguridad industrial, salud ocupacional y medio ambiente Aula de informática dotada con salida de Página 9 de 11
Update, Delete) para ser ejecutadas desde la interfaz. internet, Videobean, tablero. Plataforma Blackboard de aprendices Tecnólogo en Desarrollo de sistemas de información emergencia, extintor. También cuenta con el material de apoyo documentos : Transact-Sql Variables, Sentencias de control y Procedimientos Almacenados. 5. BIBLIOGRAFÍA/ WEBGRAFÍA Bases de Datos: Enfoque práctico McGrawHill KORTH, F. Henry y SILBERCHATZ, Abraham FUNDAMENTO DE BASES DE DATOS Edit. Mc Graw Hill TechNet Microsoft Inyección de Código Sql. http://technet.microsoft.com/es-es/library/ms161953(sql.90).aspx Blog Edison García Tecnologías Microsoft Sql Server http://mredison.wordpress.com/2008/10/26/sql-serverqu-es-un-procedimientoalmacenado/ MSDN MicrosoftTipos de Procedimientos Almacenados http://msdn.microsoft.com/es-es/library/ms187644.aspx Blog dedicado a SQL Server Maximiliano Damián Accotto http://blog.maxiaccotto.com/category/tsql.aspx Scribd.com Procedimientos Almacenados y Triggers en SQL Server http://es.scribd.com/doc/10325656/procedimientos-almacenados-y-triggers-en-sql-server También cuenta con el material de apoyo documentos : Transact-Sql Variables, Sentencias de control y Procedimientos Almacenados. Página 10 de 11
6. CONTROL DEL DOCUMENTO (ELABORADA POR) JOSÉ TÉLLEZ GÓMEZ Instructor Ingeniero de Sistemas Integración con la media técnica Diciembre de 2013 Distrito Capital REVISÓ Lucy Elizabeth Vanegas López Página 11 de 11