0% encontró este documento útil (0 votos)
53 vistas11 páginas

Procedimientos Almacenados (SQL)

Tema de SQL sintetizado
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
53 vistas11 páginas

Procedimientos Almacenados (SQL)

Tema de SQL sintetizado
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

Procedimientos

Almacenados
Definición:

Un procedimiento almacenado es un conjunto de sentencias SQL


precompiladas que se almacena en la base de datos y se puede
invocar posteriormente. Se utiliza para realizar tareas específicas
y puede aceptar parámetros de entrada y devolver valores.
Se pueden ver como "funciones" o "mini-programas" que
ejecutan tareas específicas
Ventajas

● Reutilización de código: Permiten encapsular lógica compleja que puede ser


reutilizada en diferentes partes de una aplicación.
● Rendimiento: Reducen la cantidad de datos que necesitan ser transferidos entre la
aplicación y el servidor de la base de datos, ya que las operaciones se realizan en el
servidor.
● Mantenimiento: Facilitan el mantenimiento del código al centralizar la lógica en
un único lugar.
● Seguridad: Pueden ayudar a proteger la base de datos al limitar el acceso directo a
las tablas y al permitir sólo la ejecución de procedimientos específicos.
Desventajas

● Complejidad: Pueden incrementar la complejidad del sistema,


especialmente si no se documentan adecuadamente.
● Dificultad en la depuración: La depuración de procedimientos
almacenados puede ser más difícil que el código en la aplicación
debido a su naturaleza encapsulada.
● Gestión de versiones: La gestión de cambios en procedimientos
almacenados puede ser un desafío si no se lleva un control
adecuado.
Estructura y Sintaxis
DELIMITER: Cambia el
delimitador de MySQL para Para llamar al
permitir que el procedimiento se procedimiento
La sintaxis básica para crear un
procedimiento almacenado en ejecute sin problemas. Por almacenado, se
MySQL es la siguiente: defecto, el delimitador es punto utiliza:
y coma (;). CALL
DELIMITER // CREATE PROCEDURE: Crea el nombre_del_procedimien
to
CREATE PROCEDURE nombre_del_p procedimiento almacenado con
el nombre indicado. (parametro1,
BEGIN
parámetros: Se pueden definir @parametro2);
parámetros de entrada (IN), de
-- Código SQL aquí salida (OUT) o ambos (INOUT).
END //
BEGIN ... END: Encierra el
DELIMITER ; conjunto de instrucciones SQL
Aspectos de Rendimiento

Factores que afectan el rendimiento:


● Número de filas procesadas
● Complejidad de las consultas
● Uso de índices
● Parámetros utilizados
Recomendaciones:
● Evitar cursores cuando sea posible
● Usar índices apropiadamente
● Minimizar la cantidad de datos procesados
Seguridad

● Prevención de SQL Injection


● Encapsulación de lógica sensible
● Auditoría de accesos y modificaciones

Ejemplo:

GRANT: Es el comando que otorga permisos


EXECUTE: Es el tipo de permiso que se está otorgando
ON ObtenerClientesPorPais: Es el objeto (en este caso el procedimiento almacenado) sobre el que se otorga el
permiso
TO RolVentas: Es el rol o usuario al que se le otorga el permiso
Casos de uso

● Operaciones complejas: Para realizar cálculos o transformaciones de


datos que requieren múltiples pasos.
● Mantenimiento de datos: Para insertar, actualizar o eliminar datos de
forma consistente y controlada.
● Automatización de tareas: Para programar tareas recurrentes, como la
limpieza de datos o la generación de informes.
● Validaciones y lógica de negocio: Para implementar reglas de negocio
que deben cumplirse antes de realizar operaciones en la base de datos.
Hábitos Ideales Formato de Documentación:

Nomenclatura:
● Usar prefijos (sp_, usp_)
● Nombres descriptivos
● Consistencia en el estilo
● Manejo de Errores
● Documentación
Control de Versiones:
● Mantener historial de cambios en comentarios
● Usar sistema de control de versiones
● Documentar cambios importantes
Ejemplo en BDCeti

El siguiente procedimiento almacenado toma todas las calificaciones de la columna


calificacion, calcula el promedio y lo devuelve como un parámetro de salida.

CREATE PROCEDURE obtenerPromedioCalificacion(OUT promedio TINYINT)

BEGIN

SELECT AVG(calificacion) INTO promedio FROM calificacion;

END;

Para ejecutar este procedimiento y obtener el resultado, se puede hacer lo siguiente:

CALL obtenerPromedioCalificacion(@resultado);

SELECT @resultado AS promedio;


Bibliografias

● GeeksforGeeks. (2024). Stored Procedures in SQL.


● Microsoft. (2024). SQL Server Documentation
● Oracle Corporation. (2024). Oracle Database
Documentation.
● Coronel, C., & Morris, S. (2024). Database Systems

También podría gustarte