Fecha de efectividad: __2014-2________________ UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA 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 Nombre y Firma del Maestro Revisó Josefina Mariscal Camacho Aprobó Autorizó David I. Rosas Almeida 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 Código Revisión GC-N4-017 . 1 . Fecha de efectividad: __2014-2________________ UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD Formato para prácticas de laboratorio 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 SENTENCIAS 4. PROCEDIMIENTO (DESCRIPCIÓN) A) EQUIPO NECESARIO MATERIAL DE APOYO Equipo de cómputo SQL Server 2012 Página 2 de 5 Código Revisión GC-N4-017 . 1 . Fecha de efectividad: __2014-2________________ UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD Formato para prácticas de laboratorio B) DESARROLLO DE LA PRÁCTICA CREACIÓN DE OBJETOS a) Crear la base de datos y las tablas siguientes GO CREATE DATABASE EMPRESA GO USE EMPRESA GO 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) GO CREATE TABLE CONTROLES (USUARIO VARCHAR(5), FECHA DATETIME) GO 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) GO CREATE TRIGGER TRG_COPIAEMPLEADOS ON EMPLEADOS FOR INSERT AS BEGIN INSERT INTO COPIAEMPLEADOS SELECT * FROM INSERTED END GO Página 3 de 5 Código Revisión GC-N4-017 . 1 . Fecha de efectividad: __2014-2________________ UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD Formato para prácticas de laboratorio b) Ingresar registros INSERT INTO EMPLEADOS VALUES ('22999000','CORDOVA','WLIMER','SISTEMAS',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') GO 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 GO CREATE TRIGGER TRG_CONTROLES ON EMPLEADOS FOR INSERT AS INSERT INTO CONTROLES VALUES (Suser_Name(),GETDATE()) GO --DEMO INSERT INTO EMPLEADOS VALUES ('22777899','GONZALES', 'LUIS','SECRETARIA',560,'25/08/2008') GO SELECT * FROM CONTROLES b) Desencadenador que descuenta la existencia de la tabla productos segun el pedido GO CREATE DATABASE ALMACEN GO USE ALMACEN GO 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)) GO 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 Código Revisión GC-N4-017 . 1 . Fecha de efectividad: __2014-2________________ UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD Formato para prácticas de laboratorio GO DESENCADENADOR CREATE TRIGGER TRG_PEDIDO_ARTICULOS ON PEDIDO FOR INSERT AS UPDATE PRODUCTOS SET EXISTENCIA =EXISTENCIA -(SELECT CANTIDAD_PEDIDO FROM INSERTED ) WHERE ID_PRODUCTO=(SELECT ID_PRODUCTO FROM INSERTED) GO 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) GO 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. REFERENCIAS 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 Código Revisión GC-N4-017 . 1 .