Вы находитесь на странице: 1из 15

Sesin 9

Consultas Avanzadas
TRANSACCIONES EN MYSQL

1|Pgina
[Consultas avanzadas]
Prctica

1. INTRODUCCIN

Las transacciones representan la unidad de recuperacin bsica en un sistema de base de datos. Es


responsabilidad del gestor de recuperacin garantizar dos de las cuatro propiedades ACID de las
transacciones, la atomicidad y la permanencia, en presencia de fallos. El gestor de recuperacin
tiene que garantizar que al recuperarse de un fallo, todos los efectos de una transaccin dada sean
almacenados permanentes en la base de datos o que no se almacene ninguno de ellos.

Para lo cual se realiz una prctica que pudiera contener lo bsico de las transacciones esta
prctica tuvo como objetivo realizar una base de datos referente a los juegos deportivos de las
universidades tecnolgicas basados de los resultados obtenidos anteriormente, para esto era
necesario aplicar los comandos necesarios para la operacin de transacciones en MYSQL, a travs
de la simulacin de una base de datos remota.

Como se ha venido observando en cada una de las sesiones de clase el uso de comando no es una
forma compleja de realizarlas por otra parte una vez estudiadas las consultas necesarias para
lograr una transaccin se pas a desarrollar la actividad anteriormente mencionada.

Qu son las Transacciones?

Es una unidad lgica de trabajo (procesamiento) de la base de datos que incluye una o ms
operaciones de acceso a la base de datos, que pueden ser de insercin, modificacin o
recuperacin.

Las transacciones pueden delimitarse de forma explcita con sentencias de tipo iniciar transaccin
y terminar transaccin.

iniciar T0
... operaciones ...
terminar T0

1|Pgina
Docente: Arturo Daz Pulido
[Consultas avanzadas]
Prctica

Adems, en las transacciones tenemos operaciones bsicas (leer elemento, escribir elemento), y
clculos sobre los datos ledos.

iniciar T0
leer(A)
leer(B)
A=A+B
B = B * 1.1
escribir(A)
escribir(B)
terminar T0

TRANSACCIONES

2|Pgina
Docente: Arturo Daz Pulido
[Consultas avanzadas]
Prctica

CASO: Idea de dos transacciones y que debemos prevenir

Estados de una Transaccin

3|Pgina
Docente: Arturo Daz Pulido
[Consultas avanzadas]
Prctica

2. DESARROLLO
En este apartado se describe el procedimiento que se sigui para realizar la prctica solicitada, y
se incluyen imgenes que explican cada uno de los pasos que se siguieron para llevarla a cabo.

La siguiente pantalla es para activar el motor federated. Server Administration

4|Pgina
Docente: Arturo Daz Pulido
[Consultas avanzadas]
Prctica

Fig. 1. Interfaz de para activar el motor federated.

Apartado Startup/Shutdown y detener el servidor Stop Server como se muestra en la imagen.

Fig. 2. Interfaz de Apartado Startup/Shutdown.

Posteriormente apartado Options File en la parte inferior derecha hay un combo, se selecciona
mysqld, click en Apply

Fig. 3. Interfaz de Apartado Options File.

5|Pgina
Docente: Arturo Daz Pulido
[Consultas avanzadas]
Prctica

Se abre una ventana pop up y clic en View Changes, se muestran muchos datos. Con el scroll ir al
apartado SERVER SECTION, debajo de msqld escribir federated

Fig. 4. Interfaz de Apartado Options File.

Clic en Apply

6|Pgina
Docente: Arturo Daz Pulido
[Consultas avanzadas]
Prctica

Fig. 5. Interfaz de Apartado Options File.

Apartado Startup/Shutdown y reiniciar el servidor Start Server como se muestra en la imagen

Fig. 6. Interfaz de Apartado Startup/Shutdown.

En una consola ejecutar la instruccin show engines; para corroborar si el motor federated ya se ha
activado.

7|Pgina
Docente: Arturo Daz Pulido
[Consultas avanzadas]
Prctica

Fig. 7. Interfaz de la instruccin show engines.

Este cdigo se ejecuta en la maquina en donde est la base de datos vacia que para este caso es
la base de datos endcute10 este es la fraccion de la tabla grande, son los primeros campos de
izquierda a derecha. Es una tabla federalizada para tener conexin con la base de datos original.

Nota: Se encuentra en una maquina aparte.

8|Pgina
Docente: Arturo Daz Pulido
[Consultas avanzadas]
Prctica

Fig. 8. Interfaz de la base de datos vacia.

En esta imagen se muestra la otra parte del cdigo (fraccin que falta) de la base de datos
original, supuestamente en esta base se cre la otra parte de la base de datos original, base de
datos encute5. Al igual que la anterior es una tabla federalizada para tener conexin con la base
de datos original.

9|Pgina
Docente: Arturo Daz Pulido
[Consultas avanzadas]
Prctica

Fig. 9. Interfaz de la base de datos vacia.

Ahora para insertar datos en las tablas que supuestamente creamos en las base de datos vacas. Se
hicieron dos tablas no federalizadas, es decir en cada una de la base de datos que estaban vacas,
para que se puedan insertar los datos.

El cdigo siguiente lo muestra.

10 | P g i n a
Docente: Arturo Daz Pulido
[Consultas avanzadas]
Prctica

Fig. 10. Interfaz de la insercin de datos en la base de datos vacia.

El cdigo de la siguiente imagen muestra cmo es que se insertan los datos a la parte
correspondiente de la fraccin de la tabla original.

Fig. 11. Interfaz de la insercin de la fraccin de la tabla original.

Este es el resultado de ejecutar el cdigo de la imagen anterior. Los datos han sido insertados
correctamente de una fraccin de la base de datos original.

11 | P g i n a
Docente: Arturo Daz Pulido
[Consultas avanzadas]
Prctica

Fig. 12. Interfaz de la insercin de datos en la base de datos vacia.

3 CONCLUSIONES
El hacer la prctica anterior fue algo muy complicado ya que no se poda hacer la conexin
de forma correcta, el mayor nmero de problemas fue al estar haciendo las conexiones
correspondientes, tambin el cdigo para hacer las tablas en las distintas bases de datos
no se pudo ejecutar, mysql mostraba que no haba error alguno, pero al corroborar con las
bases de datos vacas estas no estaban, fueron horas las que se estuvieron analizando del
porqu de dicha complicacin.

La prctica realizada tuvo xito pero se manej diferente proceso, cabe mencionar que al
insertar los datos, se manejaron otras tablas que se crearon dentro de las mismas bases
de datos vacas (no eran federalizadas) es decir no se necesitaba tener conexin para
poder hacer consultas.

12 | P g i n a
Docente: Arturo Daz Pulido
[Consultas avanzadas]
Prctica

Prctica transacciones
Implementar las siguientes tablas en MySQL:

ENTIDAD
Id_entidad Nombre Sede_central Poblacin
1 BBVA Plaza San Nicols Bilbao
2 BSCH Paseo de Pereda Santander
3 La Caixa Avinguda Diagonal Barcelona
4 Caja Madrid Plaza de Castilla Madrid

CUENTAS
Id_cuenta Nombre Apellido Saldo Id_entidad
1 Anna Alves 15600 3
2 David Hernndez 20000 4
3 Jos Meja 38000 3
4 Beatriz Del Corral 30000 2
5 Gemma Roldn 12000 1
6 David Snchez 60000 1

FONDO GARANTIA
Saldo
100.000

Realizar las siguientes operaciones:


1. Desactivar el modo AUTOCOMMIT de MySQL.
2. Jordi Bofarull abre una nueva cuenta en el BSCH con un saldo de 6000 soles.
3. Realizar un traspaso de 10000 soles de la cuenta de David Snchez a la de Gemma
Roldn.
4. David Snchez decide cambiarse de entidad, cancelando su cuenta actual con el BBVA y
abriendo una nueva cuenta, con el mismo saldo que la anterior, en Caja Madrid.
5. Cuntas cuentas bancarias tiene cada entidad? Mostrar el nombre de la entidad.
6. Iniciar una transaccin.
a. Bloquea la tabla FONDO GARANTIA para escritura.
b. La Caixa cobra una comisin del 1,02% a todos sus clientes.
c. Aadir 100soles al fondo de garanta.
d. Muestra los resultados.
e. Desbloquea la tabla FONDO GARANTIA.
f. La Caixa decide anular las operaciones previas.
7. Realizar una transferencia de la cuenta de David Hernndez a la de Anna Alves por valor
de 3000soles.
8. Incrementar el saldo de las cuentas del BBVA en el 0,2%, y descontar esa cantidad del
Fondo de Garanta.
9. Crear una transaccin que borre todos los datos relacionados con el BSCH (Banco y
cuentas). No confirmes la transaccin.
10. Mostrar el nombre de cada entidad y cunto dinero guarda. Los datos deben mostrarse
ordenados descendentemente por la cantidad de dinero que guarda.
11. Recuperar todos los datos del BSCH.

13 | P g i n a
Docente: Arturo Daz Pulido
[Consultas avanzadas]
Prctica

12. Borrar las cuentas de La Caixa.


13. Borrar la entidad Caja Madrid. Qu ocurre? Soluciona el problema.
14. Mostrar todas las entidades con sus cuentas, incluyendo aquellas entidades que no tienen
cuentas.

14 | P g i n a
Docente: Arturo Daz Pulido

Вам также может понравиться