Romero Villegas Alvaro GBD Tarea05
Romero Villegas Alvaro GBD Tarea05
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.
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.
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.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).
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.
Ahora vas a practicar con transacciones. Redacta las sentencias SQL que
permiten realizar y probar las siguientes transacciones.
use gimnasios;
START transaction;
update gimnasio set nombre = 'Azul Pardo, Luis' where cod_gim = '20';
rollback;
commit;
Al aplicar rollback podemos ver qué todo vuelve a ser como antes.
use gimnasios;
START transaction;
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;