Está en la página 1de 8

Centro de Formacin Mdulo: Bases de datos

Profesional Curso: 2016-2017


Mara Auxiliadora Disparadores (Triggers)
www.cmaleon.es

TRABAJO 1
Tenemos la base de datos de un colegio que se encarga de gestionar las
matrculas de los alumnos, las asignaturas, los profesores, los alumnos, los ciclos y las
notas que obtienen los alumnos. La base de datos consta de las siguientes tablas

Matricula Alumnos
IdMatricula (int) IdAlumno (int)
Nombre (char) Nombre (char)
Apellidos (char) Apellidos (char)
idAlumno (int) NexamenesAprobados (int)
IdCiclo (int) NexamenesSuspensos (int)
Asignaturas NotaMedia (float)
IdAsignatura (int) Ciclo
NombreAsignatura (int) IdCiclo (int)
HorasSemanales (int) Nombre (char)
IdCiclo (int) TotalDeAlumnos (int)
NombreProfesor (char) Nota
Profesor Idnota (int)
IdProfesor (int) IdAlumno (int)
Nombre (char) IdAsignatura (int)
Apellidos (char) Nota (float)

Crear los siguientes triggers

a) Cuando se realiza una matrcula actualizar la tabla ciclo aadiendo al ciclo del
que procede la matrcula un alumno al total y aadir un nuevo alumno en la tabla
alumnos con la nota media igual a 0.
b) Cuando se actualicen los datos de un alumno en la tabla alumnos se deben
actualizar tambin los datos que tenga en comn con la tabla matrcula.

Pgina 1 de 8
Centro de Formacin Mdulo: Bases de datos
Profesional Curso: 2016-2017
Mara Auxiliadora Disparadores (Triggers)
www.cmaleon.es

c) Cada vez que se introduzca una nota a un alumno debe actualizarse la nota
media de dicho alumno en la tabla alumnos y sumar 1 al nmero de exmenes
aprobados o suspensos en funcin de la nota (si es mayor o igual que 0 y menor
que 5 sumamos 1 a los suspensos, y si es mayor o igual que 5 y menor o igual
que 10 a los aprobados)
d) Cuando se actualice la nota de un alumno debe actualizarse la nota media de
dicho alumno en la tabla alumnos y sumar 1 al nmero de exmenes aprobados
o suspensos en funcin de la nota (si es mayor o igual que 0 y menor que 5
sumamos 1 a los suspensos, y si es mayor o igual que 5 y menor o igual que 10 a
los aprobados) y restar 1 al nmero de exmenes aprobados o suspensos en
funcin de la nota que tena anteriormente (si es mayor o igual que 0 y menor
que 5 sumamos 1 a los suspensos, y si es mayor o igual que 5 y menor o igual
que 10 a los aprobados)
e) Cuando se borra una asignatura, borrar los datos de las tablas que estn
afectadas.
f) Cuando se elimine un alumno de la tabla alumnos eliminar las notas de dicho
alumno, eliminar un alumno del ciclo y eliminar la matrcula del alumno.

Pgina 2 de 8
Centro de Formacin Mdulo: Bases de datos
Profesional Curso: 2016-2017
Mara Auxiliadora Disparadores (Triggers)
www.cmaleon.es

TRABAJO 2
Tenemos la base de datos de una inmobiliaria que se encarga de gestionar los
clientes, los empleados, los inmuebles y las operaciones de alquiler de los inmuebles.
La estructura de las tablas es la siguiente:
Clientes Inmuebles
IdCliente (int) IdInmueble (int)
Nombre (varchar) IdPropietario (int)
Direccin (varchar) IdTipo (int)
Fecha de nacimiento (date) Direccin (varchar)
Propietarios Precio (float)
IdPropietario (int) Alquiler
Nombre (varchar) CodAlquiler (Int)
Direccin (varchar) CodCliente (Int)
N_propiedades (int) CodEmpleado (Int)
Empleados IdInmueble (Int)
IdEmpleado (varchar) Tipos
Nombre (varchar) IdTipo (Int)
Direccin (varchar) Nombre (decimal)
Fecha de nacimiento (date) Cantidad (int)
Sueldo (decimal) MediaPrecio (float)

Crea los siguientes triggers que se encarguen de gestionar los datos de la empresa:

a) Cuando se da de alta un inmueble nuevo, sumar al propietario 1 en el nmero


de propiedades que tiene, sumar 1 a la cantidad en la tabla tipos y actualizar la
media del precio de los inmuebles del tipo del inmueble nuevo.
b) Cuando se realiza un alquiler, aumentar un 1% el sueldo del empleado que
efecta el alquiler, restar 1 en la cantidad disponible del tipo de inmueble que se
ha alquilado, actualizar la media del precio de la tabla tipos y actualizar la
direccin del cliente a la direccin del inmueble.

Pgina 3 de 8
Centro de Formacin Mdulo: Bases de datos
Profesional Curso: 2016-2017
Mara Auxiliadora Disparadores (Triggers)
www.cmaleon.es

c) Al actualizar la direccin de un inmueble debemos actualizar la direccin del


cliente que vive en ese inmueble (o no modificar nada en caso de no vivir ningn
cliente en l).
d) Cuando borremos un alquiler, debemos sumar 1 en la cantidad disponible del
tipo de inmueble que ha quedado libre, actualizar la media de los inmuebles y
actualizar la direccin del cliente que ha dejado el piso a no disponible
e) Cuando borremos un inmueble debemos restar 1 al tipo al que pertenece de la
tabla tipos y actualizar la media de los costes del tipo de inmueble al que
pertenece.
f) Cuando actualicemos la tabla propietarios y el nmero de propiedades sea
menor o igual a cero ha de borrarse toda la informacin de dicho propietario en
la tabla propietarios.

Pgina 4 de 8
Centro de Formacin Mdulo: Bases de datos
Profesional Curso: 2016-2017
Mara Auxiliadora Disparadores (Triggers)
www.cmaleon.es

TRABAJO 3
Tenemos la base de datos de un casino que se encarga de gestionar los clientes,
los juegos, las partidas y los premios obtenidos en cada una de las partidas. La
estructura de las tablas es la siguiente:
Clientes Partidas
IdCliente (int) IdPartida (int)
Nombre (varchar) IdJuego (int)
Direccin (varchar) IdCliente (int)
Fecha de nacimiento (date) Premios
Capital (float) IdPremio (int)
Juegos IdPartida (int)
Idjuego (int) Cantidad (float)
Nombre (varchar) Prstamos
N_partidas (int) idPrestamo (int)
Coste_por_partida (int) IdCliente (int)
Media_de_los_premios (float) Saldo (float)

Crear los siguientes triggers:

a) Cuando creamos una nueva partida se le restar al cliente el coste de la partida


al capital del cliente y se le sumar 1 al nmero de partidas de ese juego en la
tabla juegos.
b) Cuando se da un premio se debe actualizar la media de los premios de la tabla
juegos y sumar la cantidad obtenida al capital del cliente.
c) Cuando se actualiza la cantidad de un premio se deben de actualizar el capital
del cliente y la media de los premios de ese juego.
d) Cuando se borra un premio se debe actualizar la media de los premios de la tabla
juegos y el capital del cliente.

Pgina 5 de 8
Centro de Formacin Mdulo: Bases de datos
Profesional Curso: 2016-2017
Mara Auxiliadora Disparadores (Triggers)
www.cmaleon.es

e) Cuando un cliente se quede en nmeros rojos automticamente se crear un


prstamo para dicho cliente con un saldo en positivo de la cantidad que debe (es
decir, si su capital es -10, se crea un prstamo de 10).
f) Cuando se borra un prstamo, se ha de restar al capital del cliente que se ha
beneficiado de ese prstamo la cantidad prestada ms un 25% en concepto de
comisin para el casino.

Pgina 6 de 8
Centro de Formacin Mdulo: Bases de datos
Profesional Curso: 2016-2017
Mara Auxiliadora Disparadores (Triggers)
www.cmaleon.es

TRABAJO 4
Tenemos la base de datos de una empresa que tiene varios hospitales privados
repartidos por toda Espaa y que se encarga de gestionar los enfermos, los mdicos,
los enfermeros, las consultas y las recetas a los pacientes. La estructura de las tablas
es la siguiente:
Receta
Hospital IdReceta (int)
IdHospital (int) IdConsulta (int)
Direccin (varchar) IdMedicamento (int)
Saldo (float) Enfermeros
Enfermos InEnfermero (int)
IdEnfermo (int) Nombre (varchar)
IdHospital (int) Direccin (int)
Nombre (varchar) Sueldo (int)
Direccin (varchar) Pacientes_atendidos (int)
Fecha de nacimiento (date) Consultas
Capital (float) IdConsulta (int)
Mdicos IdMedico (int)
IdMedico (int) IdEnfermero (int)
Nombre (varchar) IdEnfermo (int)
Direccin (int) IdHospital (int)
Sueldo (int) Coste_consulta (float)
Pacientes_atendidos (int) Medicamentos
IdMedicamento (int)
Nombre (varchar)
Precio (float)

Pgina 7 de 8
Centro de Formacin Mdulo: Bases de datos
Profesional Curso: 2016-2017
Mara Auxiliadora Disparadores (Triggers)
www.cmaleon.es

Crear los siguientes triggers:

a) Cuando damos de alta a un enfermo, automticamente el saldo del hospital


aumenta en 100 en concepto de alta y se actualizar el capital del enfermo
restndole 100.
b) Cuando hay una consulta debemos restar el coste al capital del cliente, aumentar
el sueldo del mdico y del enfermero un 1/1000, aumentar en 1 el nmero de
pacientes atendidos por los mdicos y los enfermeros y sumar el precio de la
consulta al saldo del hospital.
c) Cuando se receta un medicamento se ha de actualizar el sueldo del mdico
restndole un 1/10000 a su sueldo, actualizar el capital del enfermo restndole
el precio del medicamento, y actualizar el saldo del hospital sumndole el 25%
del coste del medicamento.
d) Cuando se actualiza el coste de una consulta se ha de actualizar el capital del
enfermo y del hospital, y restar al sueldo del mdico 1 en concepto de gastos de
gestin.
e) Con el fin de no dejar morir a nadie los mdicos y los enfermeros han llegado
al acuerdo de que cuando un enfermo no tiene recursos, ellos se encargan de
pagar los medicamentos, por lo que se le restar la parte proporcional a todos
los mdicos y enfermeros del hospital (no slo a los que realizan la consulta).
f) Cuando borremos una consulta hay que actualizar los saldos del hospital y del
enfermo restndoles el coste de la consulta, y actualizar el sueldo de los
enfermeros y los mdicos restndoles un 1/1000 de su sueldo.

Pgina 8 de 8