Professional Documents
Culture Documents
TEMA:
DOCENTE:
FECHA:
GUA DE EJERCICIOS
TRIGGERS - DISPARADORES
ING. MARIA YORNET CUBA DEL CASTILLO
COMPETENCIAS
El Alumno:
Implementan disparadores para el manejo de bases de datos
Demuestran responsabilidad y respeto
Ejercicio. Base de datos Club.
Un club almacena los datos de sus socios en una tabla denominada "socios", las inscripciones en
"inscriptos" y en otra tabla "morosos" guarda los documentos de los socios que deben matrculas.
1. Implementar la base de datos BDCLUB con las siguientes tablas:
create table socios(
documento char(8) primary key not null,
nombre varchar(30),
domicilio varchar(30));
create table inscriptos(
numero int identity,
documento char(8) not null,
deporte varchar(20),
matricula char(1),
constraint FK_inscriptos_documento
foreign key (documento)
references socios(documento),
constraint CK_inscriptos_matricula check (matricula in ('s','n')),
constraint PK_inscriptos primary key(documento,deporte) );
create table morosos(
documento char(8) not null );
2. Ingresar algunos registros en las 3 tablas:
insert into socios values('22222222','Ana Acosta','Avellaneda 800');
Si se ingresa una nueva inscripcin y no se paga la matrcula, dicho socio se ingresa a la tabla
"morosos".
Probando el trigger: Ingresamos una inscripcin de un socio no deudor con matrcula paga:
insert into inscriptos values('25555555','tenis','s');
El disparador se activa ante el "insert" y permite la transaccin.
Ingresamos una inscripcin de un socio no deudor con matrcula 'n':
insert into inscriptos values('25555555','natacion','n');
El disparador se activa ante el "insert", permite la transaccin y agrega al socio en la tabla
"morosos".
Verifique consultando las tablas correspondientes:
select * from inscriptos;
select * from morosos;
Ingresamos una inscripcin de un socio deudor:
insert into inscriptos values('25555555','basquet','s');
El disparador se activa ante el "insert" y deshace la transaccin porque encuentra su documento en
la tabla "morosos".
Eliminamos una inscripcin de un socio no deudor:
delete inscriptos where numero=4;
El disparador se activa ante la sentencia "delete" y permite la transaccin. Verificamos que la
inscripcin n 4 fue eliminada de "inscriptos":
select * from inscriptos;
Intentamos eliminar una inscripcin de un socio deudor:
delete inscriptos where numero=6;