Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE IGNATURA NOMBRE DE LA IGNATURA LSC 2009-2 12001 Administración de Bases de Datos PRÁCTICA No. 5 LABORATORIO DE NOMBRE DE LA PRÁCTICA Bases de Datos Distribuidas DURACIÓN (HORA) Objetos y Disparadores 2 1. INTRODUCCIÓN Microsoft SQL Server incluye objetos y contadores que el Monitor de sistema puede utilizar para supervisar la actividad de los equipos en los que se ejecute una instancia de SQL Server. Un objeto es cualquier recurso de SQL Server, como un bloqueo de SQL Server o un proceso de Windows. Cada objeto contiene uno o más contadores que determinan diversos aspectos de los objetos que se van a supervisar. Por ejemplo, el objeto Bloqueos de SQL Server contiene los contadores Número de interbloqueos/segundo y Tiempos de espera de bloqueos/seg. Por otro lado un disparador es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos. Los disparadores DML se ejecutan cuando un usuario intenta modificar datos mediante un evento de lenguaje de manipulación de datos (DML). Los eventos DML son instrucciones INSERT, UPDATE o DELETE de una tabla o vista. Estos disparadores se activan cuando se desencadena cualquier evento válido, con independencia de que las filas de la tabla se vean o no afectadas. 2. OBJETIVO (COMPETENCIA) El alumno asimilará los conceptos y procedimientos asociados a las transacciones para su comprensión y entendimiento, aplicando posteriormente el conocimiento adquirido en planteamientos y aplicación de disparadores. Formuló Lissethe G. Lamadrid López y estudiantes de lsc ciclo 2013-1, revisión 2014-1 Revisó Josefina Mariscal Camacho Aprobó Autorizó David I. Rosas Almeida Nombre y Firma del Maestro Nombre y Firma del Responsable de Programa Educativo Nombre y Firma del Responsable de gestión de Calidad Nombre y Firma del Director / Representante de la Dirección Página 1 de 5 Revisión 1.
3. FUNDAMENTO Conceptos básicos Trigger (disparador o desencadenador) Es un tipo de procedimiento almacenado asocia a un evento que se ejecuta cuando se intenta modificar los datos de una tabla. Se definen para una tabla específica y se crean para conservar la integridad referencial y la coherencia entre los datos entre distintas tablas. Si se intenta modificar (agregar, actualizar o eliminar) datos de una tabla en la que se definió un disparador para alguna de estas acciones (inserción, actualización y eliminación), el disparador se ejecuta (se dispara) en forma automática. Los disparadores se ejecutan después de la ejecución de una instrucción "insert", "update" o "delete" en la tabla en la que fueron definidos. Las restricciones se comprueban antes de la ejecución de una instrucción "insert", "update" o "delete". Por lo tanto, las restricciones se comprueban primero, si se infringe alguna restricción, el desencadenador no llega a ejecutarse. Los triggers se crean con la instrucción "create trigger". Esta instrucción especifica la tabla en la que se define el disparador, los eventos para los que se ejecuta y las instrucciones que contiene. [ORDEN: PROCEDIMIENTO ALMACENADO, OBJETO FUNDAMENTO,TRIGGER] Sintaxis básica: create trigger NOMBREDISPARADOR on NOMBRETABLA for EVENTO- insert, update o delete as SENTENCI 4. PROCEDIMIENTO (DESCRIPCIÓN) A) EQUIPO NECESARIO MATERIAL DE APOYO Equipo de cómputo SQL Server 2012 Página 2 de 5 Revisión 1.
B) DESARROLLO DE LA PRÁCTICA CREACIÓN DE OBJETOS a) Crear la base de datos y las tablas siguientes CREATE DATABE EMPRESA USE EMPRESA CREATE TABLE EMPLEADOS (ID INT NOT NULL IDENTITY, DOCUMENTO VARCHAR(30) NOT NULL, APELLIDO VARCHAR(30) NOT NULL, NOMBRE VARCHAR(30) NOT NULL, SECCION VARCHAR(20) NOT NULL, SUELDO FLOAT NULL, FECHAINGRESO DATETIME NULL) CREATE TABLE CONTROLES (USUARIO VARCHAR(5), FECHA DATETIME) CREATE TABLE COPIA EMPLEADOS (ID INT NOT NULL, DOCUMENTO VARCHAR(30) NOT NULL, APELLIDO VARCHAR(30) NOT NULL, NOMBRE VARCHAR(30)NOT NULL, SECCION VARCHAR(20)NOT NULL, SUELDO FLOAT NULL, FECHAINGRESO DATETIME NULL) CREATE TRIGGER TRG_COPIAEMPLEADOS ON EMPLEADOS BEGIN INSERT INTO COPIAEMPLEADOS SELECT * FROM INSERTED END Página 3 de 5 Revisión 1.
b) Ingresar registros INSERT INTO EMPLEADOS VALUES ('22999000','CORDOVA','WLIMER','SISTEM',680,'24/10/2005') INSERT INTO EMPLEADOS VALUES ('22333444','ACOSTA','ANA','SECRETARIA',500,'05/05/2000') INSERTINTO EMPLEADOS VALUES ('22777888','CORDOVA','DANIELA','SECRETARIA',560,'25/08/2006') DEMO SELECT * FROM EMPLEADOS SELECT * FROM COPIAEMPLEADOS CREACIÓN DE TRIGGERS a) Disparador que registra el usuario y la fecha en la que se realiza un insert en la tabla empleados y los almacena en la tabla controles CREATE TRIGGER TRG_CONTROLES ON EMPLEADOS INSERT INTO CONTROLES VALUES (Suser_Name(),GETDATE()) --DEMO INSERT INTO EMPLEADOS VALUES ('22777899','NZALES', 'LUIS','SECRETARIA',560,'25/08/2008') SELECT * FROM CONTROLES b) Desencadenador que descuenta la existencia de la tabla productos segun el pedido CREATE DATABE ALMACEN USE ALMACEN CREATE TABLE PRODUCTOS (ID_PRODUCTO CHAR(8) PRIMARY KEY NOT NULL, NOMBREPRODUCTO VARCHAR(25)NOT NULL, EXISTENCIA INT NULL, PRECISO DECIMAL(10,2)NOT NULL, PRECIOVENTA DECIMAL (10,2)) CREATE TABLE PEDIDO ( ID_PEDIDO INT IDENTITY, ID_PRODUCTO CHAR(8) NOT NULL, CANTIDAD_PEDIDO INT CONSTRAINT PK_ID_PRODUCTO FOREIGN KEY(ID_PRODUCTO)REFERENCES PRODUCTOS(ID_PRODUCTO)) Página 4 de 5 Revisión 1.
DESENCADENADOR CREATE TRIGGER TRG_PEDIDO_ARTICULOS ON PEDIDO UPDATE PRODUCTOS SET EXISTENCIA =EXISTENCIA -(SELECT CANTIDAD_PEDIDO FROM INSERTED ) WHERE ID_PRODUCTO=(SELECT ID_PRODUCTO FROM INSERTED) INSERT INTO PRODUCTOS VALUES('P001','FILTROS PANTALLA',5,10,12.5) INSERT INTO PRODUCTOS VALUES('P002','PARLATES',7,10,11.5) INSERT INTO PRODUCTOS VALUES('P003','MAUSE',8,4.5,6) DEMO INSERT INTO PEDIDO VALUES('P003',5) VERIFICANDO SELECT * FROM PRODUCTOS SELECT * FROM PEDIDO C) CÁLCULOS Y REPORTE 5. RESULTADOS Y CONCLUSIONES 6. ANEXOS 7. REFERENCI http://www.devjoker.com/contenidos/catss/292/transacciones-en-transact-sql.aspx http://cursos.aiu.edu/base%20de%20datos%20distribuidas/pdf/tema%204.pdf http://www.fdi.ucm.es/profesor/fernan/dbd/apuntestema07.pdf http://www.sqlserverya.com.ar/temarios/descripcion.php?cod=147&punto=141 Página 5 de 5 Revisión 1.