Escolar Documentos
Profissional Documentos
Cultura Documentos
bases de datos activas esta evolución es autónoma y se define en el esquema de la base de datos
BDD Activas: son aquellas que tienen funcionalidad adicional para especificar Reglas Activas.
Modelo Evento–Condición–Acción
Ó módulos almacenados persistentes, son módulos o programas de BDD (de lenguaje propio) que el
DBMS almacena (persistentemente) y ejecuta en el servidor de BDD
Utilidad:
1.- Si varias aplicaciones necesitan un mismo programa de bases de base de datos
2.- La ejecución de un programa en el servidor puede reducir el coste derivado de
la transferencia y la comunicación de datos entre el cliente y el servidor en ciertas
situaciones.
3.- Estos procedimientos pueden mejorar la potencia de modelado de las vistas al
permitir que los usuarios de bases de datos cuenten con tipos más complejos de
datos derivados. Además, se pueden utilizar esos tipos para comprobar
restricciones más complejas que quedan fuera de la especificación de aserciones y
trigger
EJERCICIO SP
Elabore un SP para indicar si un sujeto es APTO o NO para donar sangre según su peso (desde 50 kg es APTO)
EJERCICIO SP
Elabore un procedimiento almacenado que permita inscribir a un estudiante, una materia dada por
código (del estudiante se requiere su acceso por cedula).
Ej.: CALL inscribir(123,’MAT-I’), donde 123 es la cedula y ‘MAT-I’ es el código de la materia a inscribir
Nota: el proceso de inscripción sólo implica insertar los valores necesarios en la tabla que relaciona estudiantes y materias
EJERCICIO SP
Dada la siguiente estructura, elabore un SP para consultar el “porcentaje de impuesto” a partir del Id de registro
(recuerde validar el resultado):
CREATE TABLE impuestos (id INT PRIMARY KEY AUTO_INCREMENT,
nombre VARCHAR(50) NOT NULL ,
porcentaje DECIMAL(6,2) NOT NULL);
3.- DISPARADORES
También llamados –triggers-, forman ahora parte del estándar SQL-99, son porciones de código iniciados
por eventos asociados a cambios en los datos de una entidad de datos (tabla). Estos cambios suelen ser:
INSERT, UPDATE y DELETE, adicionalmente, pueden ejecutar ese código antes ó después de dichos
cambios (BEFORE y AFTER).
Sintaxis
PRACTICA 1
PRACTICA 1 (continuación)
Probamos
PRACTICA 2 TRIGGER
Elabore un trigger en la tabla “productos” de modo que al “insertar registros” se determine el valor del atributo
“total”, es decir, que solo se debe ejecutar el insert sobre las columnas
“nombre,precio,cantidad,tiene_iva,idimpuestos”.
DELIMITER $$
CREATE TRIGGER insert_producto
BEFORE
INSERT
ON productos
FOR EACH ROW
BEGIN
DECLARE miporcentaje DECIMAL(6,2);
SELECT porcentaje_impuesto(NEW.idimpuestos) INTO miporcentaje;
IF NEW.tiene_impuesto='S' THEN
SET NEW.total = NEW.precio*NEW.cantidad + NEW.precio*NEW.cantidad*miporcentaje/100;
ELSE
SET NEW.total = NEW.cantidad*NEW.precio;
END IF;
END
$$