0% encontró este documento útil (0 votos)
68 vistas12 páginas

Romero Villegas Alvaro GBD Tarea05

Este documento proporciona instrucciones para realizar varias operaciones en una base de datos de gimnasios sin utilizar sentencias SQL. Estas operaciones incluyen insertar, modificar y eliminar datos de tablas como Gimnasio, Monitores y Personal. También incluye instrucciones para probar transacciones utilizando comienzos de transacción, confirmaciones, deshaces y puntos de salvaguarda.

Cargado por

Alvaro Romero
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
68 vistas12 páginas

Romero Villegas Alvaro GBD Tarea05

Este documento proporciona instrucciones para realizar varias operaciones en una base de datos de gimnasios sin utilizar sentencias SQL. Estas operaciones incluyen insertar, modificar y eliminar datos de tablas como Gimnasio, Monitores y Personal. También incluye instrucciones para probar transacciones utilizando comienzos de transacción, confirmaciones, deshaces y puntos de salvaguarda.

Cargado por

Alvaro Romero
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 12

APARTADO 1.

Se trata de realizar las siguientes operaciones SIN utilizar sentencias SQL, debe ser de
forma gráfica o visual, Para ello utiliza la herramienta gráfica Workbench.

IMPORTANTE: Realiza una a una las operaciones indicadas, capturando las


correspondientes pantallas en cada caso, esto es, haz cada inserción, modificación y
eliminación de datos de forma individual, no varias a la vez.

1.1) Inserta tres nuevos gimnasios con los datos indicados a continuación. Si no se indican
datos para alguna columna, es por desconocer su valor en ese momento. Si alguna de las
inserciones te da error, captura pantalla con el error y razona/explica a que es debido
el error.

Al aplicar los cambios devuelve un error

Este error es debido a qué el nombre de un gimnasio esta repetido.Para solucionarlo


debemos usas otro nombre qué no este en uso en mi caso AsirGym.
1.2) Inserta los siguientes monitores. Si no se indican datos para alguna columna,
es por desconocer su valor en ese momento. Si se poduce algún error en alguna
inserción, captura la pantalla, explica y razona el motivo del error.

Pero al aplicar los cambios da error :

El primer error es qué el cod_gim 55 no esta registrado en la tabla gimnasio y al no existir


devuelve error.
El segundo error es similar pero esta vez con la categoria YOG1 ya qué esta no existe en la
tabla de categorias
Por ultimo el tercer error qué devuelve de debe a qué el cod_gym es null y este valor no
puede ser nulo ya qué esta asociado obligatoriamente a un gimnasio.
1.3) Modifica el código del gimnasio 10, por el código 15. ¿Se ha podido realizar esa
modificación? Indica si ha tenido alguna repercusión en el personal y monitores de
ese gimnasio, y a que puede ser debido. Captura pantallas en la que se pueda
apreciar lo ocurrido.

La he podido realizar correctamente.


Los cabio principales son qué en las tablas donde estab el cod_gym como 10 ahora se
cambio automaticamente a 15.

ejemplo1:

ejemplo 2:
Estos cambios son debidos a qué la base de datos esta hecha para qué cuando algo
cambie en la tabla principal se modifique en las secundarias.Esto es debido al UPDATE ON
CASCADE.

1.4) Elimina el gimnasio de código 40 y el de código 77. ¿En algún caso da error?
Explica y razona en cada caso.

Si da errores:

Las claves foraneas están configurada con la opción ON UPDATE CASCADE, lo que
significa que cuando se actualiza el código de gimnasio en la tabla gimnasio,
también se actualizarán automáticamente los registros relacionados en la tabla
monitores. Sin embargo, al intentar eliminar el gimnasio con el código '40' o '77',
MySQL no puede realizar la operación porque hay registros en la tabla monitores que
hacen referencia a esos gimnasios
APARTADO 2.

2.1) Inserta los siguientes monitores, cada uno con un INSERT.

1. Inserta en la tabla MONITORES a la monitora de nombre: 'Frias Reche, María',


gimnasio 20 y de DNI : '10101010'.

2. Inserta en la tabla MONITORES al monitor de nombre 'Verde Botella, Esperanza',


gimnasio 40, DNI '20202020 de la categoría 'CAR2'.

Da error debido a qué la categoria CAR2 no esta incluida dentro de la tabla


categorias y habria qué incluirla o ponerla en otra categoria existente.
2.2) Inserta un monitor en la tabla MONITORES de nombre 'Amarillo Rojo, Luis', DNI:
'80808080', gimnasio 30 y de categoría 'YOGA'.

En la inserción, debes basarte en que solo conoces el nombre de la categoría, NO


su código.

2.3) Inserta en la tabla MONITORES a uno nuevo de nombre 'Sanz Bueno, Mariano',
con DNI 67676767, de la categoría 'COM1' y del gimnasio, uno de los gimnasios que
tengan 1 o 2 personas del puesto '03' . Ten en cuenta que puede haber más de un
gimnasio en esa situación.

2.4) Inserta en la tabla PERSONAL todos los datos de la tabla MONITORES, con su código
de gimnasio, su DNI y nombre, y asignándole un puesto '04' y el salario_base 1800.

2.5) Modifica en la tabla GIMNASIO el código del gimnasio de nombre ‘EgoGym’, por el
código 60. ¿Algún problema o error? En caso afimativo explica el por qué.

Nos da erro por el cod_gim =60 ya esta siendo usado en otro gimnasio y no puede
haber duplicados dentro de las claves foraneas.
2.6) En la tabla GIMNASIO, cambia el teléfono del gimnasio 60 a 777334455 y la tarifa
base la incrementas en 10 euros, solo si la tarifa actual es menor de 100 euros.
(Con una sola sentencia UPDATE).

2.7) Incrementa en un 5% la columna tarifa_base (redondeando ese valor con 2


decimales) de la tabla GIMNASIO, sólo a los gimnasios que tengan algún monitor
categoría 'CAR1'.

2.8) Elimina de la tabla CATEGORIAS la de nombre 'Yoga'. ¿Se puede? Razona y


explica lo ocurrido en la tabla monitores.

Al hacer esto ocurre qué donde deberia estar la categoria Yoga ahora es un valor
nulo
2.9) a) Inserta en la tabla GIMNASIO uno nuevo de nombre ‘TodoGym’, código 900,
dirección ‘Maravillas, 110’, teléfono 666112233, tipo ‘SUP’. Razona y explica si se ha
podido o no insertar. En tu razonamiento observa que no se ha dado valor para la
tarifa_base y es obligatoria.

b) Una vez insertado, asígnale al gimnasio 900 la tarifa máxima de todos los
gimnasios.

Si se ha podido insertar correctamente

Para insertir al gimnasio 900 la tarifa maxima debemos de :


APARTADO 3.

Ahora vas a practicar con transacciones. Redacta las sentencias SQL que
permiten realizar y probar las siguientes transacciones.

3.1) Inicia una transacción

Asigna al monitor 'Azul Pardo, Luis' al gimansio '20'


Confirma o valida los cambios finalizando la transacción.
Comprueba que se ha cambiado.
Comprueba que ya no se pueden deshacer los cambios realizados.

Debido al commit los cambios ya se quedan permanentes.

use gimnasios;

START transaction;

update gimnasio set nombre = 'Azul Pardo, Luis' where cod_gim = '20';

rollback;

commit;

select * from gimnasio;


3.2) Inicia otra transacción

Elimina los gimnasios de código 60 y 600.


Modifica en la tabla PUESTOS el nombre del puesto '04' por 'Otros'.
Comprueba que se ha cambiado el puesto y eliminado los gimnasios.
Deshaz la operación finalizando la transacción.
Comprueba que se vuelve a tener el gimnasio 60 y 600, y el nombre original
del puesto '04'

Al aplicar rollback podemos ver qué todo vuelve a ser como antes.

use gimnasios;

START transaction;

delete from gimnasio where cod_gim in (60 ,600);

update puestos set cod_pue ='otros' where cod_pue='04';


rollback;

select * from puestos;

select * from gimnasio;

3.3) Inicia una transacción que suponga la modificación de la tarifa_base de dos


gimnasios.

Incluye un punto de salvaguarda entre las dos modificaciones.


Debes deshacer la transacción hasta el punto de salvaguarda
Comprueba qué modificaciones, de las anteriores, se ha realizado.

Una vez aplicamos esto vemos qué funciona y qué los cambios se realizan
correctamente.
Si ejecuto el rollback to savepoint sp1 solo se vera la primera modificacion qué
realizamos.
use gimnasios;
START transaction;
update gimnasio set tarifa_base=tarifa_base *1.25 where cod_gim =20;
savepoint sp1;
update gimnasio set tarifa_base=tarifa_base *1.50 where cod_gim =40;
rollback to savepoint sp1;
rollback;
select * from gimnasio;

También podría gustarte