Práctica 7

Anuncio
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
.
Descargar