Download Ejercicios Ejercicios

Document related concepts
no text concepts found
Transcript
Ejercicios
Diseñar
Diseñar la
la base
base de
de datos
datos de
de una
una pequeña
pequeña
biblioteca:
biblioteca:
„ consultar los datos de un libro: código del libro, título, autor(es),
„
„
„
„
temática y en caso de estar prestado, el socio que lo tiene
actualmente en préstamo
consultar la información sobre un socio: código del socio, nombre,
dirección, teléfono y libros que actualmente tiene en préstamo así
como la fecha de préstamo
consultar los préstamos históricos de un socio: código del libro,
fecha del préstamo y fecha de la devolución
dar de alta, dar de baja y modificar los datos de un socio
gestionar los préstamos: prestar un libro a un socio y registrar la
devolución de un libro. (Se supone que un préstamo dura al menos
un día, es decir un libro no se puede prestar el mismo día más de
una vez)
Bases de Datos
Curso 2005/06
DSIC-UPV
1
Ejercicios
Diseñar
Diseñar la
la base
base de
de datos
datos de
de una
una pequeña
pequeña
biblioteca:
biblioteca:
Restricciones
Restricciones::
„ el código del libro identifica unívocamente al libro
„ el código del socio identifica unívocamente al socio
„ el conjunto de temas utilizados para clasificar un libro
son: física, electricidad, mecánica y óptica
„ la fecha de devolución de un libro debe ser posterior a la
fecha de préstamo
„ el número total de libros que tiene prestados un socio es
un dato derivado que será mantenido automáticamente
por el sistema
Bases de Datos
Curso 2005/06
DSIC-UPV
2
1
Solución
„ Existen dos posibles soluciones:
„ Solución
1: La relación Préstamo
almacena sólo el préstamo histórico.
„ Solución 2: La relación Préstamo
almacena el préstamo actual y el histórico.
Bases de Datos
Curso 2005/06
DSIC-UPV
3
Solución 1
SOCIO(scod:char(5),
scod:char(5) nombre:varchar2(60),
SOCIO(scod:char(5),
nombre:varchar2(60),
dirección:varchar2(50),
dirección:varchar2(50), tel:varchar2(20),
tel:varchar2(20),
libros:number(3))
libros:number(3))
LIBRO(lcod:char(5),
lcod:char(5) titulo:varchar(100),
LIBRO(lcod:char(5),
titulo:varchar(100),
tematica:varchar(15),
scod:char(5),
tematica:varchar(15), scod:char(5)
scod:char(5),
fecha_pre:date)
fecha_pre:date)
AUTORES(lcod:char(5),
autor:varchar2(40))
lcod:char(5) autor:varchar2(40)
AUTORES(lcod:char(5),
autor:varchar2(40))
PRESTAMO(scod:char(5),
lcod:char(5),
scod:char(5) lcod:char(5)
PRESTAMO(scod:char(5),
lcod:char(5),
fecha_pre:date,
fecha_pre:date
fecha_pre:date, fecha_dev:date)
fecha_dev:date)
Bases de Datos
Curso 2005/06
DSIC-UPV
4
2
Solución 2
SOCIO(scod:char(5),
scod:char(5) nombre:varchar2(60),
SOCIO(scod:char(5),
nombre:varchar2(60),
dirección:varchar2(50),
dirección:varchar2(50), tel:varchar2(20),
tel:varchar2(20),
libros:number(3))
libros:number(3))
LIBRO(lcod:char(5),
lcod:char(5) titulo:varchar(100),
LIBRO(lcod:char(5),
titulo:varchar(100),
tematica:varchar(15))
tematica:varchar(15))
AUTORES(lcod:char(5),
autor:varchar2(40))
lcod:char(5) autor:varchar2(40)
AUTORES(lcod:char(5),
autor:varchar2(40))
PRESTAMO(scod:char(5),
lcod:char(5),
scod:char(5) lcod:char(5)
PRESTAMO(scod:char(5),
lcod:char(5),
fecha_pre:date,
fecha_pre:date
fecha_pre:date, fecha_dev:date)
fecha_dev:date)
Bases de Datos
Curso 2005/06
DSIC-UPV
5
Ejercicios
Tareas:
Tareas:
a) Cargar una solución de la base de datos en el
sistema ORACLE9i.
b) Crear los disparadores necesarios para mantener el
dato derivado de forma automática.
c) Realizar actualizaciones y consultas sobre la base de
datos creada
Bases de Datos
Curso 2005/06
DSIC-UPV
6
3