Tarea 5 - Base de Datos 2 - Scarly Cruz

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 10

UNIVERSIDAD ABIERTA PARA ADULTOS

PRESENTADO POR:
Scarly Fco. Cruz Ventura

MATRÍCULA:
16-11084

ASIGNATURA:
Sistema de Base de Datos II

FACILITADOR:
Mario Ortíz

Tarea 5

12 de octubre, 2020,
Santiago de los Caballeros, Rep. Dom.
Estimado participante, te invitamos a realizar las siguientes actividades:
I. Investiga en la web y elabora un informe de lectura con los
siguientes temas:
1. ¿Qué es?
a. Procedimiento almacenado.

Un procedimiento almacenado (stored procedure en inglés) es un programa (o


procedimiento) almacenado físicamente en una base de datos. Su implementación
varía de un gestor de bases de datos a otro. La ventaja de un procedimiento
almacenado es que, al ser ejecutado, en respuesta a una petición de usuario, es
ejecutado directamente en el motor de bases de datos, el cual usualmente corre en
un servidor separado. Como tal, posee acceso directo a los datos que necesita
manipular y sólo necesita enviar sus resultados de regreso al usuario,
deshaciéndose de la sobrecarga resultante de comunicar grandes cantidades de
datos salientes y entrantes.

Los procedimientos pueden ser ventajosos: cuando una base de datos es


manipulada desde muchos programas externos. Al incluir la lógica de la aplicación
en la base de datos utilizando procedimientos almacenados, la necesidad de
embeber la misma lógica en todos los programas que acceden a los datos es
reducida. Esto puede simplificar la creación y, particularmente, el mantenimiento de
los programas involucrados.

Podemos ver un claro ejemplo de estos procedimientos cuando requerimos realizar


una misma operación en un servidor dentro de algunas o todas las bases de datos y
a la vez dentro de todas o algunas de las tablas de las bases de datos de este. Para
ello podemos utilizar a los Procedimientos almacenados auto creables que es una
forma de generar ciclos redundantes a través de los procedimientos almacenados.

Elementos de los procedimientos almacenados

Los procedimientos almacenados están compuestos por algunos de estos


elementos:

 Parámetros de entrada (pueden esperar parámetros)


 Parámetros de salida (pueden devolver resultados)
 Declaración de variables (puede usarse variables en su cuerpo)
 Cuerpo del procedimiento (en su cuerpo se indican las acciones a realizar)

Tanto los parámetros de entrada como los de salida son opcionales. Podemos tener
un procedimiento que no tenga parámetros de entrada, pero sí de salida y
viceversa. Como todo buen programador sabe, los parámetros de entrada sirven
para pasarle datos al procedimiento que necesita para llevar a cabo una acción
determinada. Los parámetros de salida devuelven al programa cliente que ejecutó el
procedimiento el resultado de este.

i. Ejemplifique un procedimiento almacenado para:


1. Insertar un registro

create table [dbo].[Users]


(
[Id_Usuario] Int not null Primary Key Identity (1,1),
[Nombre] varchar (50) null,
[Usuario] varchar (50) null,
[Password] varchar (50) null,
[Tipo_Usuario] varchar (50) null
)

Select * from Users


insert into Users values ('Scarly Cruz', 'ScarlyC', '1234','Admin'),
('Jose Miguel', 'JoseM', '4321', 'Usuario');

2. Actualizar un registro

Update Users Set Nombre = Starlin Cruz = Where Scarly Cruz

3. Eliminar un registro

delete from Tabla_ConsultaFacilitadores where Codigo=1


b. Beneficios de los procedimientos almacenados.

Tráfico de red reducido entre el cliente y el servidor

Los comandos de un procedimiento se ejecutan en un único lote de código. Esto


puede reducir significativamente el tráfico de red entre el servidor y el cliente porque
únicamente se envía a través de la red la llamada que va a ejecutar el
procedimiento. Sin la encapsulación de código que proporciona un procedimiento,
cada una de las líneas de código tendría que enviarse a través de la red.

Mayor seguridad

Varios usuarios y programas cliente pueden realizar operaciones en los objetos de


base de datos subyacentes a través 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 cláusula EXECUTE AS puede especificarse en la instrucción CREATE


PROCEDURE para habilitar la suplantación 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
concesión 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 instrucción TRUNCATE TABLE en un módulo y se
especifica la ejecución del módulo 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 módulo.
Al llamar a un procedimiento a través 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 críticos.

El uso de parámetros de procedimientos ayuda a protegerse contra ataques por


inyección de código SQL. Dado que la entrada de parámetros se trata como un valor
literal y no como código ejecutable, resulta más difícil para un atacante insertar un
comando en la instrucción Transact-SQL del procedimiento y comprometer la
seguridad.

Los procedimientos pueden cifrarse, lo que ayuda a ofuscar el código fuente. Para
más información, consulte SQL Server Encryption.

Reutilización del código

El código de cualquier operación de base de datos redundante resulta un candidato


perfecto para la encapsulación de procedimientos. De este modo, se elimina la
necesidad de escribir de nuevo el mismo código, se reducen las inconsistencias de
código y se permite que cualquier usuario o aplicación que cuente con los permisos
necesarios pueda acceder al código y ejecutarlo.

Mantenimiento más 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 aplicación
permanece independiente y no debe tener conocimiento sobre los cambios
realizados en los diseños, 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 ejecución 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 podría hacer que el procedimiento se
ejecutara con mayor lentitud. En este caso, volver a crear el procedimiento y forzar
un nuevo plan de ejecución puede mejorar el rendimiento.

c. Tipos de procedimientos.
1. Procedimientos almacenados definidos por el usuario

Los procedimientos almacenados definidos por el usuario se establecen en las


bases de datos definidas por el usuario o en las bases de datos del sistema (Master,
Model, MSDB…), a excepción de en la base de datos Resource.

Los procedimientos almacenados definidos por el usuario se crean en Transact-SQL


o como una referencia a un método CLR de .NET.

2. Procedimientos almacenados temporales

Los procedimientos almacenados temporales son un tipo de


procedimientos definidos por el usuario, pero que se almacenan en la base de
datos TempDB.

Hay dos tipos de procedimientos almacenados temporales:

 Locales, su primer caracter es “#”.

 Globales, su primer caracter es “##”.

Ambos tipos se diferencian entre sí por tres aspectos:

 Los nombres

 La visibilidad

 La disponibilidad
3. Procedimientos almacenados del sistema de SQL

Los procedimientos almacenados del sistema de SQL pertenecen a SQL Server y


sus primeros caracteres son “sp_”.

Estos procedimientos se encuentran almacenados de manera física en la base de


datos interna y de manera oculta en Resource, y se muestran de forma lógica en el
sys.schemas (esquema sys). Por otro lado, la base de datos MSDB también tiene
procedimientos almacenados, pero en el esquema dbo.

Si deseas acceder a la lista completa de procedimientos almacenados del sistema


de SQL, consulta Procedimientos almacenados del sistema (Transact-SQL).

4. Procedimientos almacenados extendidos definidos por el usuario

Los procedimientos almacenados extendidos definidos por el usuario son DLL que
una instancia de SQL Server es capaz ejecutar de forma dinámica. Se consideran
“extendidos” debido a que el usuario puede crear rutinas externas por su propia
cuenta en un lenguaje de programación.

Es importante tener en cuenta que los procedimientos almacenados extendidos


dejarán de estar disponibles en la próxima versión de SQL Server. Por lo tanto, se
recomienda desde ahora crear procedimientos almacenados CLR para
procedimientos extendidos.

d. ¿Qué es Disparador o Trigger?

Un trigger o disparador es un objeto que se asocia con tablas y se almacena en la


base de datos. Su nombre se deriva por el comportamiento que presentan en su
funcionamiento, ya que se ejecutan cuando sucede algún evento sobre las tablas a
las que se encuentra asociado. Los eventos que hacen que se ejecute un trigger
son las operaciones de inserción (INSERT), borrado (DELETE) o actualización
(UPDATE), ya que modifican los datos de una tabla.
La utilidad principal de un trigger es mejorar la gestión de la base de datos, ya que
no requieren que un usuario los ejecute. Por lo tanto, son empleados para
implementar las REGLAS DE NEGOCIO (tipo especial de integridad) de una base
de datos. Una Regla de Negocio es cualquier restricción, requerimiento, necesidad o
actividad especial que debe ser verificada al momento de intentar agregar, borrar o
actualizar la información de una base de datos. Los triggers pueden prevenir errores
en los datos, modificar valores de una vista, sincronizar tablas, entre otros.

2. Estimado participante, te invitamos a realizar las siguientes actividades:


a. Crear un procedimiento almacenado en la tabla cliente dentro de la
base de datos controlmedico dentro de la base de datos de la
unidad o semana pasada que permita: Ver este video o cualquier
otro
i. Insertar un registro

Use [BD_2]

insert into Tb_Paciente(id_Paciente,Nombre,Apellido,Edad,ARS,Telefono,Correo,Sex_pac)


values(0006,'Mario','Ortiz',29,'Humano',8297733291,'[email protected]','M');
ii. Actualizar un registro

Use [BD_2]

UPDATE Tb_Paciente
SET Nombre = 'Agustin'
WHERE Apellido = 'Ortiz'
AND Correo = '[email protected]';

iii. Eliminar un registro

Use [BD_2]
delete from Tb_Paciente where id_Paciente=2;
Nota: copiar y pegar cada procedimiento para cada caso y subir el documento a la
plataforma.

También podría gustarte