Enunciado PLSQL 2010 Hipodromo 2

Sistemas Gestores de Bases de Datos Segunda Evaluación C.G.S. Administración de Sistemas Informáticos 03/05/10 I.E.S. G

Views 78 Downloads 6 File size 84KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Sistemas Gestores de Bases de Datos Segunda Evaluación C.G.S. Administración de Sistemas Informáticos

03/05/10 I.E.S. Gonzalo Nazareno

Como en el examen de SQL, sigues trabajando como encargado de la administración y explotación de la base de datos del Gran Hipódromo de Andalucía. Te recuerdo que las tablas de tu base de datos eran las siguientes: CABALLOS CodCaballo Nombre Peso Fecha Nacimiento Propietario Nacionalidad CARRERAS CodCarrera Fecha y Hora Nombre Importe Premio Apuesta Limite

CADENA, tamaño 4 CADENA, tamaño 20 NUMERICO de 3 FECHA CADENA, tamaño 25 CADENA, tamaño 20

No Nulo Entre 240 y 300 > 2000

CADENA, tamaño 4 FECHA Hora entre las 9 y las 14:30 CADENA, tamaño 20 NUMERICO de 6 NUMERICO de 5 más 2 decimales < 20000

PARTICIPACIONES CodCaballo CodCarrera Dorsal Jockey PosicionFinal

CADENA, tamaño 4 CADENA, tamaño 4 NUMERICO de 2 CADENA, tamaño 10 NUMERICO de 2

No Nulo No Nulo Numero positivo

APUESTAS DNICliente CodCaballo CodCarrera Importe Tantoporuno

CADENA, tamaño 10 CADENA, tamaño 4 CADENA, tamaño 4 NUMERICO de 6 NUMERICO de 4 más 2 decimales

No Nulo, por defecto 300 Mayor que 1

CLIENTES DNI Nombre Nacionalidad

CADENA, tamaño 10 CADENA, tamaño 20 CADENA, tamaño 20

Si no las tienes creadas y llenas de datos, usa el script proporcionado por el profesor.

1. (3 puntos) Realiza un procedimiento llamado informe_de_ganancias que reciba una fecha inicial y una fecha final y muestre todas las apuestas que han resultado ganadoras entre esas dos fechas. Las apuestas deben mostrarse con el siguiente formato: INFORME DE APUESTAS GANADORAS ENTRE dd/mm/yy y dd/mm/yy Carrera: Nombre de la carrera1 Fecha: dd/mm/yyyy Hora: hh:mm Cliente1 …. Clienten

ImporteApostado1

Ganancias1

ImporteApostadon

Gananciasn

Ganancias de los apostantes en la carrera: nnnnn Ganancias Hipódromo en la carrera: nnnnnn Carrera: Nombre de la carrera2 Fecha: dd/mm/yyyy Hora: hh:mm Cliente1 …. Clienten

ImporteApostado1

Ganancias1

ImporteApostadon

Gananciasn

Ganancias de los apostantes en la carrera: nnnnn Ganancias Hipódromo en la carrera: nnnnnn …....... Total Ganancias Hipódromo: nnnnnn Las ganancias del hipódromo se calculan sumando los importes apostados y restando el premio al ganador de la carrera y los pagos realizados a los apostantes ganadores. Si en una carrera no hubiese ningún apostante ganador deberá mostrarse una línea en la que se informe de ello. Es imprescindible dividir el procedimiento en las funciones que se consideren oportunas. La calidad de la documentación del código y la claridad del mismo serán valoradas, así como el número de accesos realizados a la base de datos. Debes contemplar las siguientes excepciones: a) La fecha inicial es mayor que la final. b) No han existido carreras entre ambas fechas.

2. (2 puntos) Realiza un procedimiento que reciba un nombre de usuario y presente un informe con todas las tablas de las que es propietario con el siguiente formato: Usuario: xxxxxx Tabla: Nombretabla1 Columnas: NombreColumna ….

TipoColumna

Restricciones: NombreRestricción ….

TipoRestricción

….. Número Total de tablas del usuario: nn Debes contemplar las siguientes excepciones: a) El usuario no existe. b) El usuario no tiene ninguna tabla. 3. (2 puntos) Añade una columna a la tabla Caballos para almacenar el número de carreras ganadas por cada uno de ellos. Realiza un procedimiento para llenarla con los valores adecuados y un trigger que la mantenga actualizada cuando se cambie la tabla Participaciones. 4. (1,5 puntos) Realiza un trigger que impida hacer una apuesta si el caballo no participa en la carrera correspondiente, además debe controlar que el importe apostado no supere el límite fijado para dicha carrera. 5. (1,5 puntos) Tienes una réplica de la tabla apuestas en otra base de datos con la que tienes un enlace de base de datos llamado enlaceareplica. Realiza un trigger que mantenga la réplica actualizada en tiempo real.