Está en la página 1de 4

1.

Consideramos las siguientes tablas en la base de datos EMPRESA:

DEPARTAMENTOS
cod_dep (5 caracteres)
nombre_dpt (15 caracteres)
presupuesto (numérico)

EMPLEADOS
dni (10 caracteres)
nombre (30 caracteres)
salario_anual (numérico)
cod_dep (5 caracteres) #es clave foránea

 Diseñar un disparador dp_insert_empleado que al insertar un nuevo


empleado, automáticamente quede actualizado el presupuesto total del
departamento al que el empleado pertenece, añadiéndole el salario anual
asignado al nuevo empleado. Los presupuestos de los departamentos
estarán inicialmente a 0.

 Diseñar un disparador dp_modif_empleado que al modificar el salario


anual de un empleado, automáticamente quede actualizado el presupuesto
total del departamento al que el empleado pertenece, en función del nuevo
salario asignado al empleado.
2. Crear las siguientes tablas en la base de datos ASOCIACION:

SOCIOS
numero (entero) #será autoincrementado
nombre (30 caracteres)
domicilio (45 caracteres)
teléfono (11 caracteres)

BAJAS_SOCIOS
numero (entero)
nombre (30 caracteres)
domicilio (45 caracteres)
teléfono (11 caracteres)
fecha_baja (fecha)

NOTA: Las tablas no están relacionadas. No hay ninguna clave foránea.

Insertar al menos 3 socios y comprobar.

Definir un disparador dp_borra_socio que cada vez que se elimine un


socio introduzca automáticamente un registro en la tabla BAJAS_SOCIOS
(contiene los datos de los socios eliminados junto con su fecha de baja) .

Eliminar un registro de la tabla SOCIOS con el fin de comprobar el


correcto funcionamiento del disparador creado. (Comprobar que se ha
borrado de la primera tabla y que se ha insertado en la segunda)
3. Supongamos que tenemos las siguientes tablas en la base de datos BANCO:

CUENTAS
n_cuenta (10 caracteres)
saldo (numérico)

HISTORIAL_CUENTAS
n_cuenta (10 caracteres)
fecha_modificacion (fechahora)
saldo_anterior (numérico)
saldo_actual (numérico)

Insertar 2 registros en la tabla CUENTAS.

 Diseñar un disparador dp_creo_historial que inserte automáticamente


un nuevo registro en la tabla HISTORIAL_CUENTAS cada vez que se
modifique el atributo saldo de la tabla CUENTAS.

 Crear un disparador dp_valor_saldo que verifique los valores con los


que se pretende actualizar la columna saldo de la tabla CUENTAS .
Cuando el valor sea negativo el saldo se pondrá a 0 y cuando sea
superior a 10000 se pondrá a 10000.
Ejemplos:
 Queremos actualizar la cuenta 0123456789A con un saldo de -450. El
registro se deberá actualizar realmente con estos valores:
(“0123456789A”, 0)

 Queremos actualizar la cuenta 0123456789A con un saldo de 12800. El


registro se deberá actualizar realmente con estos valores:
(“0123456789A”, 10000)
4. Supongamos que tenemos una base de datos RUTAS con una tabla en la
que queremos guardar las distancias de diferentes rutas en kilómetros y
en millas.

DISTANCIAS
ruta (10 caracteres)
distancia_km (numérico)
distancia_milla (numérico)

Crear dos disparadores llamados dp_inser distancia y dp_modi_distancia


para conseguir que cuando se introduzca o se modifique una distancia en
kilómetros, automáticamente se almacene también en millas y viceversa.
(1 Km=0.621371 millas y 1 Milla=1.609344 Km)

Ejemplos:
 Queremos introducir la distancia de la ruta AA-BB que sabemos que son
10 Kms. En el nuevo registro se almacenarán realmente estos valores:
(“AA-BB”, 10, 6.213)

 Queremos introducir la distancia de la ruta FF-TT que sabemos que son


10 millas. En el nuevo registro se almacenarán realmente estos valores:
(“FF-TT”, 16.093, 10)

También podría gustarte