Está en la página 1de 9

Examen

final 2ASIR-B ASGB-HLC Marzo 2018

Alumno _____________________________________________________________________________________________________________________

Disponemos del siguiente Modelo Relacional:


Y del siguiente fichero de export que el alumno tendrá en su equipo y podrá utilizar y ejecutar con los cambios que necesite realizar para satisfacer los
requisitos del enunciado:

--------------------------------------------------------
-- Archivo creado - viernes-marzo-02-2018
--------------------------------------------------------
--------------------------------------------------------
-- DDL for Table EQUIPO
--------------------------------------------------------

CREATE TABLE "EQUIPO"


( "IDEQUIPO" VARCHAR2(5 BYTE),
"NOMBRE" VARCHAR2(20 BYTE),
"TIPO" CHAR(1 BYTE)
) ;
--------------------------------------------------------
-- DDL for Table JUGADOR
--------------------------------------------------------

CREATE TABLE "JUGADOR"


( "IDJUGADOR" NUMBER,
"NOMBRE" VARCHAR2(10 BYTE),
"FNACIMIENTO" DATE
) ;
--------------------------------------------------------
-- DDL for Table PRIMERA
--------------------------------------------------------

CREATE TABLE "PRIMERA"


( "IDEQUIPO" VARCHAR2(5 BYTE),
"SEDE" VARCHAR2(20 BYTE),
"PRESUPUESTO" NUMBER(8,2)
) ;
--------------------------------------------------------
-- DDL for Table SEGUNDA
--------------------------------------------------------
CREATE TABLE "SEGUNDA"
( "IDEQUIPO" VARCHAR2(5 BYTE),
"PATROCINADOR" VARCHAR2(20 BYTE),
"NUMSOCIOS" NUMBER(4,0)
) ;
--------------------------------------------------------
-- DDL for Table TRASPASO
--------------------------------------------------------

CREATE TABLE "TRASPASO"


( "IDTRASPASO" NUMBER,
"FTRASPASO" DATE,
"IDJUGADOR" NUMBER,
"IDEQUIPOORIGEN" VARCHAR2(5 BYTE),
"IDEQUIPODESTINO" VARCHAR2(5 BYTE)
) ;
REM INSERTING into EQUIPO
SET DEFINE OFF;
Insert into EQUIPO (IDEQUIPO,NOMBRE,TIPO) values ('1','La Estrella','P');
Insert into EQUIPO (IDEQUIPO,NOMBRE,TIPO) values ('2','El Rayo','P');
Insert into EQUIPO (IDEQUIPO,NOMBRE,TIPO) values ('3','La Peña','S');
Insert into EQUIPO (IDEQUIPO,NOMBRE,TIPO) values ('4','Los Veteranos','S');
REM INSERTING into JUGADOR
SET DEFINE OFF;
Insert into JUGADOR (IDJUGADOR,NOMBRE,FNACIMIENTO) values ('1','Antonio',to_date('04/03/00','DD/MM/RR'));
Insert into JUGADOR (IDJUGADOR,NOMBRE,FNACIMIENTO) values ('2','Tomás',to_date('08/03/03','DD/MM/RR'));
Insert into JUGADOR (IDJUGADOR,NOMBRE,FNACIMIENTO) values ('3','Juan',to_date('01/03/03','DD/MM/RR'));
Insert into JUGADOR (IDJUGADOR,NOMBRE,FNACIMIENTO) values ('4','Lorenzo',to_date('09/03/02','DD/MM/RR'));
REM INSERTING into PRIMERA
SET DEFINE OFF;
Insert into PRIMERA (IDEQUIPO,SEDE,PRESUPUESTO) values ('1','Polideportivo','4000');
Insert into PRIMERA (IDEQUIPO,SEDE,PRESUPUESTO) values ('2','Las Fuentes','5000');
REM INSERTING into SEGUNDA
SET DEFINE OFF;
Insert into SEGUNDA (IDEQUIPO,PATROCINADOR,NUMSOCIOS) values ('3','Cooperativa Sierra','500');
Insert into SEGUNDA (IDEQUIPO,PATROCINADOR,NUMSOCIOS) values ('4','Talleres Jiménez','400');
REM INSERTING into TRASPASO
SET DEFINE OFF;
--------------------------------------------------------
-- DDL for Index EQUIPO_PK
--------------------------------------------------------

CREATE UNIQUE INDEX "EQUIPO_PK" ON "EQUIPO" ("IDEQUIPO")


;
--------------------------------------------------------
-- DDL for Index JUGADOR_PK
--------------------------------------------------------

CREATE UNIQUE INDEX "JUGADOR_PK" ON "JUGADOR" ("IDJUGADOR")


;
--------------------------------------------------------
-- DDL for Index PRIMERA_PK
--------------------------------------------------------

CREATE UNIQUE INDEX "PRIMERA_PK" ON "PRIMERA" ("IDEQUIPO")


;
--------------------------------------------------------
-- DDL for Index SEGUNDA_PK
--------------------------------------------------------

CREATE UNIQUE INDEX "SEGUNDA_PK" ON "SEGUNDA" ("IDEQUIPO")


;
--------------------------------------------------------
-- DDL for Index TRASPASO_PK
--------------------------------------------------------

CREATE UNIQUE INDEX "TRASPASO_PK" ON "TRASPASO" ("IDTRASPASO")


;
--------------------------------------------------------
-- DDL for Trigger ARC_FKARC_1_PRIMERA
--------------------------------------------------------

CREATE OR REPLACE TRIGGER "ARC_FKARC_1_PRIMERA" BEFORE


INSERT OR UPDATE OF idequipo ON primera
FOR EACH ROW
DECLARE
d CHAR(1);
BEGIN
SELECT
a.tipo
INTO
d
FROM
equipo a
WHERE
a.idequipo =:new.idequipo;

IF
(
d IS NULL
OR d <> 'P' )
THEN
raise_application_error(-20223,'FK Primera_Equipo_FK in Table Primera violates Arc constraint on Table
Equipo - discriminator column Tipo doesn''t have value ''P'''
);
END IF;

EXCEPTION
WHEN no_data_found THEN
NULL;
WHEN OTHERS THEN
RAISE;
END;

/
ALTER TRIGGER "ARC_FKARC_1_PRIMERA" ENABLE;
--------------------------------------------------------
-- DDL for Trigger ARC_FKARC_1_SEGUNDA
--------------------------------------------------------
CREATE OR REPLACE TRIGGER "ARC_FKARC_1_SEGUNDA" BEFORE
INSERT OR UPDATE OF idequipo ON segunda
FOR EACH ROW
DECLARE
d CHAR(1);
BEGIN
SELECT
a.tipo
INTO
d
FROM
equipo a
WHERE
a.idequipo =:new.idequipo;

IF
(
d IS NULL
OR d <> 'S' )
THEN
raise_application_error(-20223,'FK Segunda_Equipo_FK in Table Segunda violates Arc constraint on Table
Equipo - discriminator column Tipo doesn''t have value ''S'''
);
END IF;

EXCEPTION
WHEN no_data_found THEN
NULL;
WHEN OTHERS THEN
RAISE;
END;

/
ALTER TRIGGER "ARC_FKARC_1_SEGUNDA" ENABLE;
--------------------------------------------------------
-- Constraints for Table EQUIPO
--------------------------------------------------------
ALTER TABLE "EQUIPO" ADD CONSTRAINT "EQUIPO_PK" PRIMARY KEY ("IDEQUIPO") ENABLE;
ALTER TABLE "EQUIPO" MODIFY ("NOMBRE" NOT NULL ENABLE);
ALTER TABLE "EQUIPO" MODIFY ("IDEQUIPO" NOT NULL ENABLE);
--------------------------------------------------------
-- Constraints for Table JUGADOR
--------------------------------------------------------

ALTER TABLE "JUGADOR" ADD CONSTRAINT "JUGADOR_PK" PRIMARY KEY ("IDJUGADOR") ENABLE;
ALTER TABLE "JUGADOR" MODIFY ("FNACIMIENTO" NOT NULL ENABLE);
ALTER TABLE "JUGADOR" MODIFY ("NOMBRE" NOT NULL ENABLE);
ALTER TABLE "JUGADOR" MODIFY ("IDJUGADOR" NOT NULL ENABLE);
--------------------------------------------------------
-- Constraints for Table PRIMERA
--------------------------------------------------------

ALTER TABLE "PRIMERA" ADD CONSTRAINT "PRIMERA_PK" PRIMARY KEY ("IDEQUIPO") ENABLE;
ALTER TABLE "PRIMERA" MODIFY ("SEDE" NOT NULL ENABLE);
ALTER TABLE "PRIMERA" MODIFY ("IDEQUIPO" NOT NULL ENABLE);
--------------------------------------------------------
-- Constraints for Table SEGUNDA
--------------------------------------------------------

ALTER TABLE "SEGUNDA" ADD CONSTRAINT "SEGUNDA_PK" PRIMARY KEY ("IDEQUIPO") ENABLE;
ALTER TABLE "SEGUNDA" MODIFY ("IDEQUIPO" NOT NULL ENABLE);
--------------------------------------------------------
-- Constraints for Table TRASPASO
--------------------------------------------------------

ALTER TABLE "TRASPASO" ADD CONSTRAINT "TRASPASO_PK" PRIMARY KEY ("IDTRASPASO") ENABLE;
ALTER TABLE "TRASPASO" MODIFY ("IDEQUIPODESTINO" NOT NULL ENABLE);
ALTER TABLE "TRASPASO" MODIFY ("IDEQUIPOORIGEN" NOT NULL ENABLE);
ALTER TABLE "TRASPASO" MODIFY ("IDJUGADOR" NOT NULL ENABLE);
ALTER TABLE "TRASPASO" MODIFY ("FTRASPASO" NOT NULL ENABLE);
ALTER TABLE "TRASPASO" MODIFY ("IDTRASPASO" NOT NULL ENABLE);
--------------------------------------------------------
-- Ref Constraints for Table PRIMERA
--------------------------------------------------------

ALTER TABLE "PRIMERA" ADD CONSTRAINT "PRIMERA_EQUIPO_FK" FOREIGN KEY ("IDEQUIPO")


REFERENCES "EQUIPO" ("IDEQUIPO") ENABLE;
--------------------------------------------------------
-- Ref Constraints for Table SEGUNDA
--------------------------------------------------------

ALTER TABLE "SEGUNDA" ADD CONSTRAINT "SEGUNDA_EQUIPO_FK" FOREIGN KEY ("IDEQUIPO")


REFERENCES "EQUIPO" ("IDEQUIPO") ENABLE;
--------------------------------------------------------
-- Ref Constraints for Table TRASPASO
--------------------------------------------------------

ALTER TABLE "TRASPASO" ADD CONSTRAINT "TRASPASO_EQUIPO_FK" FOREIGN KEY ("IDEQUIPOORIGEN")


REFERENCES "EQUIPO" ("IDEQUIPO") ENABLE;
ALTER TABLE "TRASPASO" ADD CONSTRAINT "TRASPASO_EQUIPO_FKV2" FOREIGN KEY ("IDEQUIPODESTINO")
REFERENCES "EQUIPO" ("IDEQUIPO") ENABLE;
ALTER TABLE "TRASPASO" ADD CONSTRAINT "TRASPASO_JUGADOR_FK" FOREIGN KEY ("IDJUGADOR")
REFERENCES "JUGADOR" ("IDJUGADOR") ENABLE;


Leer con atención el enunciado completo.

1.- Diseñar las clases Java necesarias para realizar las tareas y funcionalidades propuestas. Todos los equipos son de Primera o de Segunda.
En el diseño de las clases será importante un método para el cálculo del impuesto que paga cada Equipo: Hay una cantidad base para
todos a la que se sumará el 1,5% del Presupuesto del equipo si es de Primera categoría y 100€ por cada Socio si el Equipo es de Segunda
categoría.
(1 Punto)

2.- Se desean gestionar los traspasos de jugadores de un equipo a otro. Para un nuevo Traspaso se creará primero en memoria el nuevo
objeto Traspaso con las conexiones necesarias a los objetos con los que esté relacionado. Hecho esto, se hará persistente en la Base de
Datos. Esta funcionalidad se realizará con un formulario JSP. Se hará el control de Excepciones adecuado. Cuando se levante una excepción
que impida llevar a cabo el traspaso se presentará el mensaje en una página JSP.
(4 Puntos)

3.- Se desea un listado de Equipos con el impuesto que paga cada uno. Este listado se presentará con una página JSP. Se usará el
POLIMORFISMO con el método del cálculo del impuesto.
(2 Puntos)

4.- Se crearán:
Tres usuarios ORACLE:
1) El propietario de las tablas. Que no realizará ni los traspasos ni los listados.
2) Uno autorizado sólo para hacer el listado. Será el usuario que lo lance.
3) Uno autorizado sólo para hacer los traspasos. Será el usuario que los realice.
Dos Tablespaces: Uno para los índices y otro para las tablas. Y las Vistas, Sinónimos y Secuencias que faciliten las tareas.
(3 Puntos)

Se entregará al profesor:

• El script sql que instale la versión final de la BD con los usuarios, tablespaces y datos (incluidos los introducidos en la tabla Traspaso
con las utilidades desarrolladas) y todos los demás objetos y restricciones utilizados.

• Los archivos .java y .jsp desarrollados.

También podría gustarte