Sei sulla pagina 1di 4

EJERCICIO NUMERO 3.- CORRIDAS DE TOROS 3.

- La asociacin "Amigos de la Fiesta" desea recoger en una base de datos toda la informacin acerca de las corridas de toros que se celebran en Espaa y de todos los datos relacionados con ellas.
Se

desea tener informacin acerca de cada corrida, identificada conjuntamente

por un nmero de orden, la feria en la que se celebra y el ao de celebracin (por ejemplo: orden = 2, feria = San Isidro, ao = 1990); las corridas que no se celebran durante una feria tienen 0 en el campo Feria y se numeran correlativamente dentro de ese ao.
En

una determinada corrida actan una serie de toreros (mnimo 1 y mximo 6)

de los que se desea guardar su dni, nombre, apodo y fecha en que tom la alternativa. Adems se desea saber quin fue el torero (padrino) que le dio la alternativa en su da (un torero puede dar la alternativa a varios compaeros o a ninguno).
En

cada corrida un torero obtiene una serie de premios (nmero de orejas, de

rabos y si sali por la puerta grande) de los que se desea mantener informacin.
Cada

torero puede tener un apoderado. A su vez, un apoderado lo puede ser de

varios toreros. De l se desea saber su dni, nombre, direccin y telfono.


Una

corrida se celebra en una plaza de toros de la que se desea saber su

nombre (que se supone nico), localidad, direccin y aforo. En una misma plaza se pueden celebrar varias corridas de toros.
Cada

toro pertenece a una ganadera determinada. De cada ganadera se quiere

conocer su cdigo, nombre, localidad, procedencia y antigedad (fecha de creacin).


En

cada corrida son estoqueados al menos 6 toros. Cada toro viene identificado

por el cdigo de la ganadera a la que pertenece, el ao en que naci y un

nmero de orden. Adems se desea mantener informacin acerca de su nombre y color, as como del orden en que fue toreado.

CREACION DE TABLAS create table corrida (id_corrida number, id_torero number,id_plaza number, no_orden number,feria varchar2(50), ao number, constraint pkey_corrida primary key (id_corrida)); insert into corrida values ('10','11','12','13','durango','2009') create table toreros (id_torero number, id_premios number,id_apoderado number, id_corrida number,id_plaza number,id_toro number,curp varchar2(20),nombre varchar2(50), apodo varchar2(50),fecha date,padrino varchar2(50), constraint pkey_toreros primary key (id_torero)); insert into toreros values ('20','21','22','23','24','25','RTGHY123654HDGYLR','jose','pepito','20-1212','heraclio') create table plaza (id_plaza number, id_ganaderia number,id_corrida number, id_torero number,nombre varchar2(50),localidad varchar2(50),direccion varchar2(50),aforo varchar2(50), constraint pkey_plaza primary key (id_plaza)); insert into plaza values ('30','31','32','33','jose','durango','invierno 113','dfgdgddfg') create table ganaderia (id_ganaderia number, id_plaza number,id_toros number, codigo number,nombre varchar2(50),localidad varchar2(50),procedencia varchar2(50),antiguedad number, constraint pkey_ganaderia primary key (id_ganaderia)); insert into ganaderia values ('40','41','42','43','herradura','mezquital','durango','5') create table premios (id_premio number, id_torero number,no_orejas number,no_rabos number,puerta varchar2(50),curp varchar2(50),nombre varchar2(50), constraint pkey_premios primary key (id_premio)); insert into premios values ('50','51','52','53','grande','HHG55366jjjj','juan')

create table apoderados (id_apoderado number, id_torero number,id_plaza number,id_corrida number,id_toros number,curp varchar2(50),nombre varchar2(50),direccion varchar2(50),telefono number(10), constraint pkey_apoderados primary key (id_apoderado)); insert into apoderados values ('60','61','62','63','64','HHG55366jjjj','juan','llano grande','1236598') create table toros (id_toro number, id_ganderia number,ao_nacido number,no_orden number,nombre varchar(20),color varchar2(20),orden number, constraint pkey_toros primary key (id_toro)); insert into toros values ('70','71','72','73','pinto','verde','6') CREACION DE VISTAS create view vistas (select id_torero, nombre, id_plaza, nombre from toreros,plaza where (torero.id_plaza=plaza.id_plaza)) DISPARADORES (TRIGGERS) create table alumnos_t(alumno_id number,nombre varchar2(50),paterno varchar2(50),materno varchar2(50),promedio number(14,2)); create table calificaciones_t(alumno_id number,calificacion number,fecha date); create or replace trigger tbiu_calificaciones before insert on calificaciones_t for each row declare ncalificaciones number; ncont begin select sum(calificacion),count(1) into ncalificaciones, ncont from calificaciones_t where alumno_id= :new.Alumno_id; number;

nCalificaciones:=nvl(ncalificaciones, :new.calificacion); if ncont=0 then ncont:=1; end if; update alumnos_t set promedio=(ncalificaciones+ :new.calificacion)/(ncont+1) where alumno_id= :new.alumno_id; end tbiu_calificaciones;

Potrebbero piacerti anche