23
UAM Introducción al Diseño de Bases de Datos Soto Hernández Christian 205318638 20-Junio-10 Práctica 2 VIDEO CLUB

reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

Embed Size (px)

DESCRIPTION

se diseño una base de datos de un video club en el sistema E-R, se crearon las tablas, se insertaron registros y se hicieron 40 consultas que le sirven a un administrador

Citation preview

Page 1: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

UAM

Introducción al Diseño de Bases de Datos

Soto Hernández Christian

205318638

20-Junio-10

Práctica 2

VIDEO CLUB

Page 2: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

OBJETIVOS:Implementar el diseño de la base de datos de un video club y realizar 40 consultas que sean de utilidad al administrador.

INTRODUCCION:La base de datos del video club fue diseñada bajo el sistema E-R, se llegaron a 5 tablas, titulo, copia_titulo, miembro, renta, reservación.

DESARROLLO:Primero se crean las tablas a usar:

CREATE TABLE titulo(id_titulo number(6) PRIMARY KEY,titulo varchar2(20) NOT NULL,sinopsis varchar2(80) NOT NULL,genero varchar2(20) CHECK(genero IN('drama','comedia','accion','infantil','documental')),rating varchar2(4) CHECK(rating IN('g','pg','r','nc17','nr')),f_estreno DATE NOT NULL);

CREATE TABLE miembro(id_miembro number(4) PRIMARY KEY,nombres varchar2(20) NOT NULL,apellidos varchar2(30) NOT NULL,calle varchar2(15) NOT NULL,col varchar2(15) NOT NULL,no_tel varchar2(10) NOT NULL,email varchar2(25) NOT NULL);

CREATE TABLE copia_titulo(no_copia number(10),id_titulo number(6),estado varchar2(12) CHECK(estado IN('disponible','rentado','destruida')),CONSTRAINT copia_pk PRIMARY KEY (no_copia,id_titulo),CONSTRAINT copia_fk FOREIGN KEY (id_titulo) REFERENCES titulo (id_titulo) ON DELETE CASCADE);

CREATE TABLE reservacion(f_reservacion DATE,id_titulo number(6),id_miembro number(4),CONSTRAINT reservacion_pk PRIMARY KEY (f_reservacion,id_titulo,id_miembro),CONSTRAINT res_fk1 FOREIGN KEY (id_titulo) REFERENCES titulo (id_titulo) ON DELETE CASCADE,CONSTRAINT res_fk2 FOREIGN KEY (id_miembro) REFERENCES miembro (id_miembro) ON DELETE CASCADE);

CREATE TABLE renta(id_miembro number(4),id_titulo number(6),no_copia number(10),f_renta DATE,f_dev_deseada DATE NOT NULL,f_dev_real DATE,CONSTRAINT renta_pk PRIMARY KEY (id_miembro,id_titulo,no_copia,f_renta),CONSTRAINT renta_fk1 FOREIGN KEY (id_miembro) REFERENCES miembro (id_miembro) ON DELETE CASCADE,

Page 3: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

CONSTRAINT renta_fk2 FOREIGN KEY (no_copia,id_titulo) REFERENCES copia_titulo (no_copia,id_titulo) ON DELETE CASCADE);

Despues se llenan con registros:Títulos:

SQL> INSERT INTO titulo(id_titulo,titulo,sinopsis,genero,rating,f_estreno) 2 VALUES 3 (1,'bob esponja','las aventura de bob esponja al tratar de recuperar la corona del rey neptuno','infantil','r','14-02-08');

1 fila creada.

SQL> INSERT INTO titulo 2 VALUES 3 (2,'La mascara','stanli se encuentra una mascara que lo convierte en un ersonaje loco','comedia','g','22-07-98');

1 fila creada.

SQL> INSERT INTO titulo 2 VALUES 3 (3,'Osos de la montaña','un documental de la vida de los osos','documental','pg','25-03-01');

1 fila creada.

SQL> INSERT INTO titulo(id_titulo,titulo,sinopsis,genero,rating,f_estreno) 2 VALUES 3 (4,'Rambo','Morir por algo, vivir por nada','accion','r','25-12-92');

1 fila creada.

SQL> INSERT INTO titulo(id_titulo,titulo,sinopsis,genero,rating,f_estreno) 2 VALUES 3 (5,'El gato','historia de un gato que ayuda a unos ninios a divertirse','infantil','r','17-08-05');

1 fila creada.

SQL> INSERT INTO titulo(id_titulo,titulo,sinopsis,genero,rating,f_estreno) 2 VALUES 3 (6,'Principe de persia','Basada en el videojuego narra las aventuras del principe y la daga del tiempo','accion','pg','28-05-10');

1 fila creada.

SQL> INSERT INTO titulo 2 Values (7,'karate kid','la historia de como un chico aprende artes marciales del maestro miyagui','accion','r','18-06-85');

1 fila creada.

SQL> INSERT INTO titulo 2 VALUES (8,'la vida es bella','el sacrificio de un padre para salvar a su hijo de los horrores de la guerra','drama','nc17','15-04-99');

1 fila creada.

SQL> INSERT INTO titulo

Page 4: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

2 VALUES (9,'tiburones','un documental sobre el comportamiento de los tiburones en el mar azul','documental','nr','12-12-97');

1 fila creada.

SQL> INSERT INTO titulo 2 VALUES (10,'leberen a willi','historia de un ninio que se roba una ballena','drama','pg','22-08-88');

1 fila creada.

SQL> INSERT INTO titulo 2 VALUES (11,'el gordo y el flaco','una pareja comica que dirvierten a cualquiera','comedia','g','01-05-00');

1 fila creada.

Miembros:

SQL> INSERT INTO miembro(id_miembro,nombres,apellidos,calle,col,no_tel,email) 2 VALUES (1,'alan','garcia','siempre viva','bo. xochiaca','22288675','[email protected]');

1 fila creada.

SQL> INSERT INTO miembro 2 VALUES (2,'rocheli','flores mendez','calle naranjos','ixtapaluca','17098426','[email protected]');

1 fila creada.

SQL> INSERT INTO miembro 2 VALUES (3,'cristofer','guacamayo','avenida 4','col neza','48561289','[email protected]');

1 fila creada.

SQL> INSERT INTO miembro 2 VALUES (4,'ruben','flores cruz','ave maria','taxquenia','54285569','[email protected]');

1 fila creada.

SQL> INSERT INTO miembro 2 VALUES (5,'heber','morales','calle panteon','los muertos','45128896','[email protected]');

1 fila creada.

SQL> INSERT INTO miembro 2 VALUES (6,'bob esponja','pantalones cuadrados','calle calamardo','fondo debikini','22558877','amarillo@bikini');

1 fila creada.

SQL> INSERT INTO miembro 2 VALUES (7,'nayeli','garcia','calle margarita','col neza','12564482','[email protected]');

Page 5: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

1 fila creada.

SQL> INSERT INTO miembro 2 VALUES (8,'moe','sislac','taberna de moe','springfield','44123685','moesislac@sims');

1 fila creada.

SQL> INSERT INTO miembro 2 VALUES (9,'jhon','bonachon','calle garfield','gato','36695210','[email protected]');

1 fila creada.

SQL> INSERT INTO miembro 2 VALUES (10,'maestro','roshi','came house','isla','23004180','[email protected]');

1 fila creada.

Copias:

SQL> INSERT INTO copia_titulo (no_copia,id_titulo,estado) 2 VALUES (1,1,'disponible');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (2,1,'rentado');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (3,1,'disponible');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (4,2,'disponible');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (5,4,'rentado');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (6,4,'rentado');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (7,5,'rentado');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (8,6,'disponible');

1 fila creada.

Page 6: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

SQL> INSERT INTO copia_titulo 2 VALUES (9,6,'disponible');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (10,6,'rentado');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (11,7,'rentado');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (12,7,'disponible');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (13,8,'rentado');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (14,9,'rentado');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (15,9,'disponible');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (16,10,'destruida');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (17,11,'rentado');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (18,11,'rentado');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (19,1,'disponible');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (20,1,'rentado');

1 fila creada.

Page 7: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

SQL> INSERT INTO copia_titulo 2 VALUES (21,4,'rentado');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (22,6,'rentado');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (23,3,'disponible');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (24,3,'destruida');

1 fila creada.

SQL> INSERT INTO copia_titulo 2 VALUES (25,3,'rentado');

1 fila creada.

Rentas:

SQL> INSERT INTO renta(id_miembro,id_titulo,no_copia,f_renta,f_dev_deseada,f_dev_real) 2 VALUES (1,1,1,'07-01-98','11-01-98','10-01-98');

1 fila creada.

SQL> INSERT INTO renta(id_miembro,id_titulo,no_copia,f_renta,f_dev_deseada,f_dev_real) 2 VALUES (2,1,2,'21-03-98','25-03-98','26-03-98');

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (4,2,4,'14-07-98','18-07-98','15-07-98');

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (5,11,17,'23-08-98','27-08-98','26-08-98');

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (7,8,13,'10-05-99','14-05-99','20-05-99');

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (3,4,5,'06-09-99','10-09-99','12-09-99');

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (10,3,25,'01-02-00','05-02-00','25-02-00');

Page 8: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (8,5,7,'08-03-00','12-03-00','11-03-00');

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (9,10,16,'14-02-01','18-02-01','15-02-01');

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (6,1,3,'21-01-02','25-01-02','26-01-02');

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (2,9,14,'07-07-02','13-07-02','08-07-02');

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (10,7,11,'23-11-02','27-11-02','02-12-02');

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (3,3,23,'15-10-03','19-10-03','17-10-03');

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (4,5,7,'12-06-04','16-06-04','16-06-04');

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (5,1,20,'03-05-05','07-05-05','10-05-05');

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (1,2,4,'30-08-05','03-09-05','01-09-05');

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (2,1,19,'06-12-05','10-12-05','10-12-05');

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (7,11,18,'05-04-06','09-04-06','08-04-06');

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (6,5,7,'21-04-06','25-04-06','23-04-06');

Page 9: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

1 fila creada.

SQL> INSERT INTO renta 2 VALUES (8,7,12,'31-03-07','04-04-07','15-04-07');

1 fila creada.

Reservaciones:

SQL> INSERT INTO reservacion(f_reservacion,id_titulo,id_miembro) 2 VALUES ('02-06-10',9,1);

1 fila creada.

SQL> INSERT INTO reservacion 2 VALUES ('02-06-10',5,3);

1 fila creada.

SQL> INSERT INTO reservacion 2 VALUES ('09-06-10',2,7);

1 fila creada.

SQL> INSERT INTO reservacion 2 VALUES ('28-05-10',8,8);

1 fila creada.

SQL> INSERT INTO reservacion 2 VALUES ('11-06-10',5,2);

1 fila creada.

Ahora las consultas:

//primeras 5, contar el numero de registros de cada tabla

SQL> SELECT COUNT(*) 2 FROM titulo;

COUNT(*)---------- 11

SQL> SELECT COUNT(*) 2 FROM copia_titulo;

COUNT(*)---------- 25

SQL> SELECT COUNT(*) 2 FROM miembro;

COUNT(*)---------- 10

SQL> SELECT COUNT(*) 2 FROM renta;

Page 10: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

COUNT(*)---------- 20

SQL> SELECT COUNT(*) 2 FROM reservacion;

COUNT(*)---------- 5

//6, numero de pelicuals rentadas actualmente

SQL> SELECT COUNT(*) 2 FROM copia_titulo 3 WHERE estado='rentado';

COUNT(*)---------- 14

//7, numero de peliculas que han sido destruidas

SQL> SELECT COUNT(*) 2 FROM copia_titulo 3 WHERE estado='destruida';

COUNT(*)---------- 2

//8,titulo y fecha de las peliculas rentadas despues del 2000

SQL> SELECT t.titulo, r.f_renta 2 FROM titulo t, renta r 3 WHERE (t.id_titulo=r.id_titulo)AND(f_renta>'01-01-00');

TITULO F_RENTA-------------------- --------La mascara 30/08/05bob esponja 06/12/05tiburones 07/07/02Osos de la montaña 15/10/03El gato 12/06/04bob esponja 03/05/05bob esponja 21/01/02El gato 21/04/06el gordo y el flaco 05/04/06El gato 08/03/00karate kid 31/03/07

TITULO F_RENTA-------------------- --------leberen a willi 14/02/01Osos de la montaña 01/02/00karate kid 23/11/02

14 filas seleccionadas.

//9,titulo y fecha de las peliculas rentadas antes del 2000

Page 11: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

SQL> SELECT t.titulo, r.f_renta 2 FROM titulo t, renta r 3 WHERE (t.id_titulo=r.id_titulo)AND(f_renta<'01-01-00');

TITULO F_RENTA-------------------- --------bob esponja 07/01/98bob esponja 21/03/98Rambo 06/09/99La mascara 14/07/98el gordo y el flaco 23/08/98la vida es bella 10/05/99

6 filas seleccionadas.

//10,titulo delas peliculas de accion

SQL> SELECT titulo 2 FROM titulo 3 WHERE genero='accion';

TITULO--------------------RamboPrincipe de persiakarate kid

//11,titulo y sinopsis delas peliculas de comedia

SQL> SELECT titulo, sinopsis 2 FROM titulo 3 WHERE genero='comedia';

TITULO--------------------SINOPSIS--------------------------------------------------------------------------------

La mascarastanli se encuentra una mascara que lo convierte en un ersonaje loco

el gordo y el flacouna pareja comica que dirvierten a cualquiera

//11,titulo y sinopsis de las peliculas infantiles

SQL> SELECT titulo, sinopsis 2 FROM titulo 3 WHERE genero='infantil';

TITULO--------------------SINOPSIS--------------------------------------------------------------------------------

bob esponjalas aventura de bob esponja al tratar de recuperar la corona del rey neptuno

El gatohistoria de un gato que ayuda a unos ninios a divertirse

Page 12: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

//12,numero de peliculas del genero documental

SQL> SELECT COUNT(*) 2 FROM titulo 3 WHERE genero='documental';

COUNT(*)---------- 2

//13,nomre miembro, titulo pelicula y fehca de renta de todas las rentas

SQL> SELECT m.nombres, t.titulo, r.f_renta 2 FROM miembro m,titulo t,renta r 3 WHERE (m.id_miembro=r.id_miembro)AND(t.id_titulo=r.id_titulo);

NOMBRES TITULO F_RENTA-------------------- -------------------- --------alan bob esponja 07/01/98alan La mascara 30/08/05rocheli bob esponja 21/03/98rocheli bob esponja 06/12/05rocheli tiburones 07/07/02cristofer Osos de la montaña 15/10/03cristofer Rambo 06/09/99ruben La mascara 14/07/98ruben El gato 12/06/04heber bob esponja 03/05/05heber el gordo y el flaco 23/08/98

NOMBRES TITULO F_RENTA-------------------- -------------------- --------bob esponja bob esponja 21/01/02bob esponja El gato 21/04/06nayeli la vida es bella 10/05/99nayeli el gordo y el flaco 05/04/06moe El gato 08/03/00moe karate kid 31/03/07jhon leberen a willi 14/02/01maestro Osos de la montaña 01/02/00maestro karate kid 23/11/02

20 filas seleccionadas.

//14,consulta igual a la anterior ordenados por titulo

SQL> SELECT m.nombres, t.titulo, r.f_renta 2 FROM miembro m,titulo t,renta r 3 WHERE (m.id_miembro=r.id_miembro)AND(t.id_titulo=r.id_titulo) 4 ORDER BY t.titulo;

NOMBRES TITULO F_RENTA-------------------- -------------------- --------bob esponja bob esponja 21/01/02heber bob esponja 03/05/05rocheli bob esponja 21/03/98rocheli bob esponja 06/12/05alan bob esponja 07/01/98bob esponja El gato 21/04/06moe El gato 08/03/00

Page 13: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

ruben El gato 12/06/04heber el gordo y el flaco 23/08/98nayeli el gordo y el flaco 05/04/06maestro karate kid 23/11/02

NOMBRES TITULO F_RENTA-------------------- -------------------- --------moe karate kid 31/03/07ruben La mascara 14/07/98alan La mascara 30/08/05nayeli la vida es bella 10/05/99jhon leberen a willi 14/02/01cristofer Osos de la montaña 15/10/03maestro Osos de la montaña 01/02/00cristofer Rambo 06/09/99rocheli tiburones 07/07/02

20 filas seleccionadas.

//15,nombre miembro, titulo pelicula, fecha de renta, fecha dev deseada y fecha de devolucion real de las rentas que fueron entregadas tarde

SQL> SELECT m.nombres, t.titulo, r.f_renta, r.f_dev_deseada, r.f_dev_real 2 FROM miembro m,titulo t,renta r 3 WHERE (m.id_miembro=r.id_miembro)AND(t.id_titulo=r.id_titulo) 4 AND(f_dev_real>f_dev_deseada);

NOMBRES TITULO F_RENTA F_DEV_DE F_DEV_RE-------------------- -------------------- -------- -------- --------rocheli bob esponja 21/03/98 25/03/98 26/03/98nayeli la vida es bella 10/05/99 14/05/99 20/05/99cristofer Rambo 06/09/99 10/09/99 12/09/99maestro Osos de la montaña 01/02/00 05/02/00 25/02/00bob esponja bob esponja 21/01/02 25/01/02 26/01/02maestro karate kid 23/11/02 27/11/02 02/12/02heber bob esponja 03/05/05 07/05/05 10/05/05moe karate kid 31/03/07 04/04/07 15/04/07

8 filas seleccionadas.

//16,nuevas peliculas han llegado, añadirlas a la base de datos es tarea del administrador.SQL> INSERT INTO titulo 2 VALUES (12,'tesis','una chica investiga la desaparicion de otras estudiantes y la supuesta relacion con peliculas snuff','drama','cn17','20-05-89');VALUES (12,'tesis','una chica investiga la desaparicion de otras estudiantes y la supuesta relacion con peliculas snuff','drama','cn17','20-05-89') *ERROR en lÝnea 2:ORA-12899: el valor es demasiado grande para la columna"CHRISTIAN"."TITULO"."SINOPSIS" (real: 99, mßximo: 80)

//un error de espacio insuficiente, hay que actualizar la tabla y añadir mas espacio a la columna de sinopsis

SQL> ALTER TABLE titulo modify sinopsis varchar2(120);

Tabla modificada.

//17,añadir pelicula tesis

Page 14: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

SQL> INSERT INTO titulo(id_titulo,titulo,sinopsis,genero,rating,f_estreno) 2 VALUES (12,'tesis','una chica investiga la desaparicion de otras estudiantes y su supuesta relacion con peliculas snuff','drama','nc17','20-06-96');

1 fila creada.

//18,revisando los registros hay un error en el titulo de la pelicula liberen a willi, hay que cambiar leberen por liberen

SQL> UPDATE titulo 2 SET titulo='Liberen a willi' 3 WHERE id_titulo=(SELECT id_titulo FROM titulo WHERE titulo LIKE '%willi');

1 fila actualizada.

//19,otra pelicula que llega al videoclub

SQL> INSERT INTO titulo 2 VALUES (13,'toy story 3','tercera parte de la historia de los juguetes de andy','infantil','g','18-06-10');

1 fila creada.

//20,un miembro a preguntado por una pelicula que no encuentra, pero no recuerda bien como se llama, dice que empieza con rata y es del genero infantil (ratatui)

SQL> SELECT * 2 FROM titulo 3 WHERE (genero='infantil')AND(titulo LIKE 'rata%');

ninguna fila seleccionada

//21,nuevos miembros se han unido al club, se añaden a la base de datos

SQL> INSERT INTO miembro 2 VALUES (11,'andres alejandro','maya segura','sin nombre','la aldea','45891236','[email protected]');

1 fila creada.

//22,un vistazo a la nueva tabla de peliculas

SQL> SELECT * 2 FROM titulo;

ID_TITULO TITULO---------- --------------------SINOPSIS--------------------------------------------------------------------------------

GENERO RATI F_ESTREN-------------------- ---- -------- 12 tesisuna chica investiga la desaparicion de otras estudiantes y su supuesta relacioncon peliculas snuffdrama nc17 20/06/96

13 toy story 3tercera parte de la historia de los juguetes de andy

ID_TITULO TITULO

Page 15: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

---------- --------------------SINOPSIS--------------------------------------------------------------------------------

GENERO RATI F_ESTREN-------------------- ---- --------infantil g 18/06/10

1 bob esponjalas aventura de bob esponja al tratar de recuperar la corona del rey neptunoinfantil r 14/02/08

2 La mascara

ID_TITULO TITULO---------- --------------------SINOPSIS--------------------------------------------------------------------------------

GENERO RATI F_ESTREN-------------------- ---- --------stanli se encuentra una mascara que lo convierte en un ersonaje lococomedia g 22/07/98

3 Osos de la montañaun documental de la vida de los ososdocumental pg 25/03/01

ID_TITULO TITULO---------- --------------------SINOPSIS--------------------------------------------------------------------------------

GENERO RATI F_ESTREN-------------------- ---- -------- 4 RamboMorir por algo, vivir por nadaaccion r 25/12/92

5 El gatohistoria de un gato que ayuda a unos ninios a divertirseinfantil r 17/08/05

ID_TITULO TITULO---------- --------------------SINOPSIS--------------------------------------------------------------------------------

GENERO RATI F_ESTREN-------------------- ---- --------

6 Principe de persiaBasada en el videojuego narra las aventuras del principe y la daga del tiempoaccion pg 28/05/10

7 karate kidla historia de como un chico aprende artes marciales del maestro miyagui

ID_TITULO TITULO---------- --------------------

Page 16: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

SINOPSIS--------------------------------------------------------------------------------

GENERO RATI F_ESTREN-------------------- ---- --------accion r 18/06/85

8 la vida es bellael sacrificio de un padre para salvar a su hijo de los horrores de la guerradrama nc17 15/04/99

9 tiburones

ID_TITULO TITULO---------- --------------------SINOPSIS--------------------------------------------------------------------------------

GENERO RATI F_ESTREN-------------------- ---- --------un documental sobre el comportamiento de los tiburones en el mar azuldocumental nr 12/12/97

10 Liberen a willihistoria de un ninio que se roba una ballenadrama pg 22/08/88

ID_TITULO TITULO---------- --------------------SINOPSIS--------------------------------------------------------------------------------

GENERO RATI F_ESTREN-------------------- ---- -------- 11 el gordo y el flacouna pareja comica que dirvierten a cualquieracomedia g 01/05/00

13 filas seleccionadas.

//23,para evitar que la consulta sea tan complicada se crea una vista de rentas que incluya nombre del miembro titulo de pelicula y fechas

SQL> CREATE VIEW rentas_texto 2 AS SELECT m.nombres, t.titulo, r.f_renta, r.f_dev_deseada, r.f_dev_real 3 FROM miembro m,titulo t,renta r 4 WHERE (m.id_miembro=r.id_miembro)AND(t.id_titulo=r.id_titulo);

Vista creada.

//24,aprovechamos la nueva vista para hacer nuevas consultas. rentas que fueron realizadas en los meses de enero o febrero

SQL> SELECT * 2 FROM rentas_texto 3 WHERE (f_renta LIKE '___01___')OR(f_renta LIKE '___02___');

NOMBRES TITULO F_RENTA F_DEV_DE F_DEV_RE-------------------- -------------------- -------- -------- --------

Page 17: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

alan bob esponja 07/01/98 11/01/98 10/01/98maestro Osos de la montaña 01/02/00 05/02/00 25/02/00jhon Liberen a willi 14/02/01 18/02/01 15/02/01bob esponja bob esponja 21/01/02 25/01/02 26/01/02

//25,cuales fueron las peliculas que fueron rentadas en las vacaciones de verano, es decir en los meses julio y agosto

SQL> SELECT * 2 FROM rentas_texto 3 WHERE (f_renta LIKE '___07___')OR(f_renta LIKE '___08___');

NOMBRES TITULO F_RENTA F_DEV_DE F_DEV_RE-------------------- -------------------- -------- -------- --------ruben La mascara 14/07/98 18/07/98 15/07/98heber el gordo y el flaco 23/08/98 27/08/98 26/08/98rocheli tiburones 07/07/02 13/07/02 08/07/02alan La mascara 30/08/05 03/09/05 01/09/05

//26, deseo conocer el historial de rentas de el miembro mas antiguo del club.

SQL> SELECT * 2 FROM rentas_texto 3 WHERE nombres=(SELECT nombres FROM miembro WHERE id_miembro=1);

NOMBRES TITULO F_RENTA F_DEV_DE F_DEV_RE-------------------- -------------------- -------- -------- --------alan bob esponja 07/01/98 11/01/98 10/01/98alan La mascara 30/08/05 03/09/05 01/09/05

//27, conocer cual es el miemrbo mas reciente del club

SQL> SELECT nombres 2 FROM miembro 3 WHERE id_miembro=(SELECT MAX(id_miembro) FROM miembro);

NOMBRES--------------------andres alejandro

//28,en que fechas fueron rentadas las peliculas "la mascara", "el gato" y "karate kid"

SQL> SELECT titulo, f_renta 2 FROM rentas_texto 3 WHERE titulo IN('La mascara','El gato','karate kid');

TITULO F_RENTA-------------------- --------La mascara 30/08/05La mascara 14/07/98El gato 12/06/04El gato 21/04/06El gato 08/03/00karate kid 31/03/07karate kid 23/11/02

7 filas seleccionadas.

//29, hay rumores de que se rentaron peliculas antes de que estuvieran disponibles para ello, una consulta a las rentas y titulos resolvera la duda.

Page 18: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

SQL> SELECT t.titulo, t.f_estreno, r.f_renta 2 FROM titulo t, renta r 3 WHERE (t.id_titulo=r.id_titulo)AND(f_renta<f_estreno);

TITULO F_ESTREN F_RENTA-------------------- -------- --------bob esponja 14/02/08 07/01/98bob esponja 14/02/08 21/03/98bob esponja 14/02/08 06/12/05La mascara 22/07/98 14/07/98El gato 17/08/05 12/06/04bob esponja 14/02/08 03/05/05el gordo y el flaco 01/05/00 23/08/98bob esponja 14/02/08 21/01/02El gato 17/08/05 08/03/00Osos de la montaña 25/03/01 01/02/00

10 filas seleccionadas.

//30, al igual que con la tabla rentas, a la tabla de copias se le creara una vista para hacer mas sencillas las consultas

SQL> CREATE VIEW copias_texto 2 AS SELECT t.id_titulo, t.titulo, c.no_copia, c.estado 3 FROM titulo t, copia_titulo c 4 WHERE t.id_titulo=c.id_titulo;

Vista creada.

//31 una consulta rapida sobre la nueva vista

SQL> SELECT * 2 FROM copias_texto;

ID_TITULO TITULO NO_COPIA ESTADO---------- -------------------- ---------- ------------ 1 bob esponja 1 disponible 1 bob esponja 2 rentado 1 bob esponja 3 disponible 2 La mascara 4 disponible 4 Rambo 5 rentado 4 Rambo 6 rentado 5 El gato 7 rentado 6 Principe de persia 8 disponible 6 Principe de persia 9 disponible 6 Principe de persia 10 rentado 7 karate kid 11 rentado

ID_TITULO TITULO NO_COPIA ESTADO---------- -------------------- ---------- ------------ 7 karate kid 12 disponible 8 la vida es bella 13 rentado 9 tiburones 14 rentado 9 tiburones 15 disponible 10 Liberen a willi 16 destruida 11 el gordo y el flaco 17 rentado 11 el gordo y el flaco 18 rentado 1 bob esponja 19 disponible 1 bob esponja 20 rentado 4 Rambo 21 rentado

Page 19: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

6 Principe de persia 22 rentado

ID_TITULO TITULO NO_COPIA ESTADO---------- -------------------- ---------- ------------ 3 Osos de la montaña 23 disponible 3 Osos de la montaña 24 destruida 3 Osos de la montaña 25 rentado

25 filas seleccionadas.

//32 tambien se crea una vista sobre la tabla de reservaciones

SQL> CREATE VIEW reservacion_texto 2 AS SELECT res.f_reservacion, t.titulo, m.nombres 3 FROM titulo t, reservacion res, miembro m 4 WHERE (t.id_titulo=res.id_titulo)AND(m.id_miembro=res.id_miembro);

Vista creada.

//33, una consulta rapida soble la nueva vista

SQL> SELECT * 2 FROM reservacion_texto;

F_RESERV TITULO NOMBRES-------- -------------------- --------------------28/05/10 la vida es bella moe02/06/10 El gato cristofer02/06/10 tiburones alan09/06/10 La mascara nayeli11/06/10 El gato rocheli

//34, al parecer actualmente hay copias disponibles para algunas de las peliculas reservadas, hay que hacer una comparacion de las vistas

SQL> SELECT rest.titulo, rest.nombres, ct.estado 2 FROM reservacion_texto rest, copias_texto ct 3 WHERE (rest.titulo=ct.titulo)AND(estado='disponible');

TITULO NOMBRES ESTADO-------------------- -------------------- ------------La mascara nayeli disponibletiburones alan disponible

//35 debido al resultado anterior hay que informar a los miembros interesados de que sus reservaciones estan disponibles, se consultan sus datos de contacto

SQL> SELECT nombres, no_tel, email 2 FROM miembro 3 WHERE nombres IN('nayeli','alan');

NOMBRES NO_TEL EMAIL-------------------- ---------- -------------------------alan 22288675 [email protected] 12564482 [email protected]

//36,han devuelto varias peliculas, se cambiara el estado de las copias a disponible

SQL> UPDATE copia_titulo 2 SET estado='disponible'

Page 20: reporte practica 2, implementacion de bade de datos de un video club en oracle 10g

3 WHERE no_copia IN(5,6,11,13,18,20,21,22);

8 filas actualizadas.

//37,un par de peliculas que regresaron estaban en mal estado, asi que deberán ser destruidas

SQL> UPDATE copia_titulo 2 SET estado='destruida' 3 WHERE no_copia=2 OR no_copia=18;

2 filas actualizadas.

//38,los miembros alan y nayeli han respondido a el correo que se les envio, nayeli ah decidido venir a rentar la pelicula y alan ya no le interesa.

SQL> DELETE FROM reservacion 2 WHERE id_miembro=(SELECT id_miembro FROM miembro 3 WHERE nombres='alan');

1 fila suprimida.

SQL> DELETE FROM reservacion 2 WHERE id_miembro=(SELECT id_miembro FROM miembro 3 WHERE nombres='nayeli');

1 fila suprimida.

//39, nayeli a rentado la pelicula de la mascara

SQL> INSERT INTO renta(id_miembro,id_titulo,no_copia,f_renta,f_dev_deseada,f_dev_real) 2 VALUES(7,2,4,SYSDATE,SYSDATE+5,NULL);

1 fila creada.

//40,tambien hay que actualizar la tabla de copias

SQL> UPDATE copia_titulo 2 SET estado='rentado' 3 WHERE no_copia=4;

1 fila actualizada.