Problemas Resueltos: Laboratorio # 6

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES Laboratorio # 6 Facilitador(a): Cr

Views 130 Downloads 0 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES

Laboratorio # 6 Facilitador(a): Cristian Pinzón Estudiante: Edgar Mojica

Fecha: 28/10/2019

Asignatura: Base de Datos II (0857) Grupo: 4IL131

A. TÍTULO DE LA EXPERIENCIA Programando: Disparadores (Triggers) B. TEMAS: • Tema #8: Disparadores C. OBJETIVO(S): • Estudiar los Disparadores en Lenguaje SQL y su aplicación en la programación

Problemas Resueltos -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Problema Resuelto #1. Explique qué hace el siguiente código del Disparadores. -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

--Creación de la Tabla a Eliminar CREATE TABLE TB_HORARIO ( Cod_Horario int not null primary key, Descripcion_horario varchar (50) not null, ) GO --Creación del Trigger CREATE TRIGGER TR_SEGURIDAD_BD ON DATABASE FOR DROP_TABLE, ALTER_TABLE AS BEGIN RAISERROR ('No está permitido borrar ni modificar tablas!', 16, 1) ROLLBACK TRANSACTION END GO --Eliminando el Disparador DROP TABLE TB_HORARIO GO

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES

Laboratorio # 6

Se usa disparador dirigido a la base de datos que tiene como objetivo mostrar un mensaje cada vez que se intente eliminar o modificar una tabla. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Problema Resuelto #2. Explique qué hace el siguiente código del Disparadores. -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

CREATE TRIGGER TR_Insertar_Nuevo_Registro_Facultad ON TB_FACULTAD FOR INSERT AS PRINT 'Se ha adicionado nuevo Registro en la Tabla Facultad.' GO --Probando el Trigger. Insertando nuevo registro. INSERT INTO TB_FACULTAD (Cod_Facultad, Nombre_Facultad) VALUES (115, 'Facultad de Ingeniería en Sistemas Computacionales') GO

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES

Laboratorio # 6

Como en el caso anterior el trigger está dirigido a mostrar un mensaje, con la diferencia que en este caso el trigger está dirigido a la tabla TB_Facultad y dicho mensaje se muestra cada vez que se inserta un nuevo registro. -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Problema Resuelto #3. Explique qué hace el siguiente código del Disparadores. -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

CREATE TABLE DB_INSERCION_REGISTRO ( IdRegistro INT NOT NULL IDENTITY(1,1) PRIMARY KEY, Fecha_Hora DATETIME NOT NULL DEFAULT (GETDATE()), Usuario VARCHAR(60) NOT NULL DEFAULT (USER_NAME()), Accion VARCHAR(50) NOT NULL, Descripcion VARCHAR(500) NOT NULL ) GO INSERT INTO DB_INSERCION_REGISTRO(Accion, Descripcion) VALUES('Prueba de Almacenamiento', 'Insertar') GO SELECT * FROM DB_INSERCION_REGISTRO GO

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES

Laboratorio # 6

Se crea una tabla que guarda la actividad realizada de tal forma que queda registrado la actividad que se realizó, la fecha en se momento (obtenida del sistema), el usuario, una descripción. -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Problema Resuelto #4. Explique qué hace el siguiente código del Disparadores. -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

-- Creación de un desencadenador AFTER INSERT. CREATE TRIGGER Tr_Insercion_Facultad ON TB_FACULTAD AFTER INSERT AS BEGIN DECLARE @nombre_facultad VARCHAR(60) SELECT @nombre_facultad = TB_FACULTAD.Nombre_Facultad FROM INSERTED TB_FACULTAD INSERT INTO DB_INSERCION_REGISTRO (Accion, Descripcion) VALUES ('Inserción de datos', 'Se ha insertado un nuevo registro en la tabla facultad con el nombre: ' + @nombre_facultad) END GO

-- Insertando nuevos registros

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES

Laboratorio # 6 INSERT INTO TB_FACULTAD (Cod_Facultad, Nombre_Facultad) VALUES (145, 'Facultad de Astronomia')

Se crea un disparador a la tabla TB_Facultad que muestra un mensaje que se ha adicionado un nuevo registro y aparte de ello registrar la actividad en la tabla creada en el caso anterior, el trigger realiza su función cada vez que se inserta un registro a la tabla TB_Facultad.

Problemas Propuestos: B.D. DB_EmpresaXYZ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Problema #1. Resuelva el problema propuesto en Lenguaje SQL -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Escriba el código SQL de un disparador que permita bloquear la eliminación de objetos de la Base de Datos DB_EmpresaXYZ, deshaciendo la transacción.

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES

Laboratorio # 6

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Problema #2. Resuelva el problema propuesto en Lenguaje SQL -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Escriba el código SQL de un disparador que envié un mensaje inmediatamente cuando se realiza el registro de un nuevo proveedor, imprimiendo el mensaje: “Se ha adicionado nuevo Registro en la Tabla PROVEEDOR”

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES

Laboratorio # 6

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Problema #3. Resuelva el problema propuesto en Lenguaje SQL -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Escriba el código SQL de un disparador que realicé un log en una tabla, creada previamente con los campos: identificador de registro (incremento automático), fecha/hora, usuario activo, acción realizada (inserción) y descripción con el dato del nuevo registro, una vez se realicé el registro de un nuevo producto.

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES

Laboratorio # 6

Problemas Propuestos: B.D. Academica -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Problema #1. Resuelva el problema propuesto en Lenguaje SQL -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Escriba el código SQL que permita darle mantenimiento a la base de datos. A través de un procedimiento almacenado se debe eliminar un curso de la base de datos y al mismo tiempo, a través de un evento de un disparador, eliminar las calificaciones correspondientes de ese curso. Se debe pasar como parámetro de entrada, del procedimiento almacenado, el código del curso a eliminar.

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Problema #2. Resuelva el problema propuesto en Lenguaje SQL -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Escriba el código de un Disparador que permita una vez actualizado el nombre de la carrera, actualizar todos los correos de los estudiantes afiliados a la carrera actualizada. El Correo Electrónico debe quedar con el nuevo nombre de la carrera más el servidor '@utp.ac.pa'.

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES

Laboratorio # 6

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Problema #3. Resuelva el problema propuesto en Lenguaje SQL -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Escriba el código de un Disparador que permita actualizar todos los registros de un curso para un docente en un año y semestre concreto disparando el evento desde un procedimiento almacenado. Se deben pasar como parámetros de entrada del procedimiento almacenado: El año a corregir, el nuevo año, el código del docente y el semestre.

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES

Laboratorio # 6

D. RESULTADOS: • Conocimiento sobre la programación de Procedimientos Almacenados en el desarrollo de aplicaciones de software con Transact SQL. E. CONSIDERACIONES FINALES: Opinión del estudiante sobre el logro del objetivo y el desarrollo de la experiencia.

Este laboratorio ayudo para lograr entender mejor el concepto de triggers o disparadores y las distintas formas de aplicarlo a tablas de la base de datos ya que es de suma importancia hacerlo y comprenderlo ya que te ayuda a tener el control completo de tu base de datos.