Sunteți pe pagina 1din 11

INSTITUTO TECNOLOGICO DE IGUALA

Materia: Base de Datos Distribuidas


Nombre del Profesor: Jos Luis Zagal Arce
Integrantes del Equipo.
Ma. Alejandra Tapia Hernndez

12670092

Oswaldo Valladares Zavaleta

12670091

Dulce Roco Dimas Figueroa

12670153

Dency Aurora Padilla Jaimes

10670249

Antonio Rodrguez Rosas

12670152

David Emmanuel Valle Abarca

12670035

UNIDAD 5

Aula: E-6

7 Semestre

Ingeniera en Sistemas Computacionales

Turno Matutino

Iguala de la Independencia a 30 de Noviembre del 2015

Base de Datos Distribuidas

Contenido
INTRODUCCION .................................................................................................................................. 3
DEFINICIN. ........................................................................................................................................ 3
CARACTERISTICAS ............................................................................................................................... 3
Propiedades de las transacciones ...................................................................................................... 3
Operaciones de una transaccin ........................................................................................................ 4
Estados de una Transaccin ............................................................................................................... 4
Tipos de transacciones ....................................................................................................................... 5
Funcin del manejador ....................................................................................................................... 5
CONCLUSIONES ................................................................................................................................. 11
BIBLIOGRAFIA ................................................................................................................................... 11

2|Pgina

Base de Datos Distribuidas

INTRODUCCION
En este tema abarcaremos las transacciones dentro de una Base de datos el cual debe
completarse hasta el final sin tener ningn fallo dentro de las operaciones, cualquier cambio
realizado se ver reflejado al conocer el resultado. As como tambin cuales son los tipos de
transacciones y todo lo que engloba un proceso de transaccin, con sus respectivas
propiedades.

1. transacciones
Un sistema transaccional es aquel que asegura que una unidad de trabajo se realice
completamente o que no tenga efecto. El manejo de transacciones librea al programador de la
responsabilidad de ocuparse del acceso a datos, incluyendo modificaciones concurrentes en los
datos, tolerancia a fallas y programacin multiusuario.

DEFINICIN.
Una transaccin es una secuencia de una o ms operaciones agrupadas como una unidad. El
inicio y el final de la transaccin definen los puntos de consistencia de la base de datos. Si una
accin de la transaccin no se puede ejecutar, entonces ninguna accin dentro de la secuencia
que conforma la transaccin tendr efecto.

CARACTERISTICAS
Datos que utiliza la transaccin
Caractersticas funcionales de la transaccin
Salida de la transaccin
Importancia para los usuarios
Frecuencia de utilizacin

Propiedades de las transacciones

Atomicidad: Una transaccin es una unidad atmica de procesamiento, esta se realiza o no


se realiza.

3|Pgina

Base de Datos Distribuidas

Consistencia: Si se ejecuta una transaccin sobre un estado consistente, el resultado ser


un nuevo estado consistente.

Aislamiento: Una transaccin no har visibles sus modificaciones a otras transacciones


hasta que termine de ejecutarse completamente. Es decir, una transaccin desconoce si
otras transacciones se estn ejecutando en el sistema.

Durabilidad: Una vez una transaccin se ejecuta exitosamente y realiza cambios sobre el
sistema, estos cambios nunca se deben perder a causa de fallas en el sistema.

Operaciones de una transaccin

Inicio de Transaccin: Operacin que marca el momento en el que una transaccin comienza
a ejecutarse.

Leer o Escribir: Operaciones de lectura/escritura de elementos de la base de datos.

Fin de la Transaccin: Se verifica si la transaccin debe abortarse por alguna razn.

Confirmar (COMMIT): La operacin termino con xito.

Abortar (ROLLBACK): La transaccin termino sin xito.

Estados de una Transaccin


Transaccin Activa (Active): se encuentra en este estado justo despus de iniciar su
ejecucin.

Transaccin Parcialmente Confirmada (Uncommited): en este punto, se efectan diferentes


operaciones de verificacin para asegurar que la transaccin no interfiera con otras
transacciones en ejecucin.

Transaccin Confirmada (Commited): Ha concluido su ejecucin con xito.

Transaccin Fallida (Failed): En este caso, es posible que la transaccin deba ser cancelada.

Transaccin Terminada (Rolled Back): indica que la transaccin ha abandonado el sistema.


(Monografias, s.f.)

4|Pgina

Base de Datos Distribuidas

Tipos de transacciones
Una transaccin puede clasificarse de diferentes maneras dependiendo bsicamente de tres
criterios:
1. reas de aplicacin. En primer lugar, las transacciones se pueden ejecutar en
aplicaciones no distribuidas. Las transacciones que operan en datos distribuidos se les
conoce como transacciones distribuidas. Por otro lado, dado que los resultados de una
transaccin que realiza un commit son durables, la nica forma de deshacer los efectos
de una transaccin con commit es mediante otra transaccin. A este tipo de
transacciones se les conoce como transacciones compensatorias. Finalmente, en
ambientes heterogneos se presentan transacciones heterogneas sobre los datos.
2. Tiempo de duracin. Tomando en cuenta el tiempo que transcurre desde que se inicia
una transaccin hasta que se realiza un commit o se aborta, las transacciones pueden
ser de tipo batch o en lnea. Estas se pueden diferenciar tambin como transacciones
de corta y larga vida. Las transacciones en lnea se caracterizan por tiempos de
respuesta muy cortos y por acceder una porcin relativamente pequea de la base de
datos. Por otro lado, las transacciones de tipo batch toman tiempos relativamente largos
y accedan grandes porciones de la base de datos.
3. Estructura. Considerando la estructura que puede tener una transaccin se examinan
dos aspectos: si una transaccin puede contener a su vez sub-transacciones o el orden
de las acciones de lectura y escritura dentro de una transaccin.
(Capitulo 5, s.f.)

Funcin del manejador


El manejador de transacciones es el encargado de definir la estructura de las transacciones,
mantener la consistencia en la base de datos cuando se ejecuta una transaccin o se cancela
la ejecucin de una, mantener protocolos de fiabilidad, implementar algoritmos para el control
de la concurrencia y sincronizar las transacciones que se ejecutan simultneamente.
El manejador recibe solicitudes de procesamiento de transacciones y las traduce en acciones
para el calendarizador.
Commit. Una transaccin siempre termina, en la presencia de fallas. Sin ninguna de las
operaciones englobadas por una transaccin hace efectivas las modificaciones realizadas por

5|Pgina

Base de Datos Distribuidas


las operaciones que involucra, llevando el sistema a un nuevo estado consistente. A este
proceso se le conoce como hacer un commit.
Rollback. Si existe por lo menos una falla dentro de las operaciones de una transaccin, se
dice que esta aborta. Su ejecucin es detenida y todas las operaciones ejecutadas hasta el
momento del error son deshechas, regresando la base de datos al estado consistente en que
se encontraban antes de iniciar la transaccin. A esta operacin se le conoce como hacer un
rollback.

(Wikipedia, 2015)

EJEMPLO
Las transacciones representan eventos del mundo real como:
Una compra puede ser una transaccin que conste de dos operaciones:
1. Insertar un registro del pago del producto.
2. Insertar el producto en el inventario.
No se debe insertar un producto que no se haya pagado, ni pagar un producto que no est en
el inventario, por lo tanto, las dos operaciones forma una transaccin.

6|Pgina

Base de Datos Distribuidas


Los pasos para usar transacciones en MySQL son:

Iniciar una transaccin con el uso de la sentencia BEGIN.

Actualizar, insertar o eliminar registros en la base de datos.

Si se quieren los cambios a la base de datos, completar la transaccin con el uso de la


sentencia COMMIT. nicamente cuando se procesa un COMMIT los cambios hechos por
las consultas sern permanentes.

Si sucede algn problema, podemos hacer uso de la sentencia ROLLBACK para cancelar
los cambios que han sido realizados por las consultas que han sido ejecutadas hasta el
momento.

Vamos a ejecutar algunas consultas para ver cmo trabajan las transacciones. Lo primero que
tenemos que hacer es crear una tabla del tipo InnoDB e insertar algunos datos.
Para crear una tabla InnoDB, procedemos con el cdigo SQL estndar CREATE TABLE, pero
debemos especificar que se trata de una tabla del tipo InnoDB (TYPE= InnoDB). Esto es
aplicable a cualquier tipo de tabla, pero cuando no se especifica nada, MySQL supone que se
trata de una tabla MyISAM.
mysql> CREATE TABLE innotest (campo INT NOT NULL PRIMARY KEY) TYPE = InnoDB;
Query OK, 0 rows affected (0.10 sec)

mysql> INSERT INTO innotest VALUES(1);


Query OK, 1 row affected (0.08 sec)

mysql> INSERT INTO innotest VALUES(2);


Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO innotest VALUES(3);


Query OK, 1 row affected (0.04 sec)

mysql> SELECT * FROM innotest;


+-------+
| campo |
+-------+
|

1 |

7|Pgina

Base de Datos Distribuidas

2 |

3 |

+-------+
3 rows in set (0.00 sec)

De acuerdo, nada espectacular. Ahora veamos cmo usar transacciones.


mysql> BEGIN;
Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO innotest VALUES(4);


Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM innotest;


+-------+
| campo |
+-------+
|

1 |

2 |

3 |

4 |

+-------+
4 rows in set (0.00 sec)

Si en este momento ejecutamos un ROLLBACK, la transaccin no ser completada, y los


cambios realizados sobre la tabla no tendrn efecto.
mysql> ROLLBACK;
Query OK, 0 rows affected (0.06 sec)

mysql> SELECT * FROM innotest;


+-------+
| campo |
+-------+
|

1 |

8|Pgina

Base de Datos Distribuidas

2 |

3 |

+-------+
3 rows in set (0.00 sec)

Ahora vamos a ver qu sucede si perdemos la conexin al servidor antes de que la transaccin
sea completada.
mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO innotest VALUES(4);


Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM innotest;


+-------+
| campo |
+-------+
|

1 |

2 |

3 |

4 |

+-------+
4 rows in set (0.00 sec)

mysql> EXIT;
Bye

Cuando obtengamos de nuevo la conexin, podemos verificar que el registro no se insert, ya


que la transaccin no fue completada.
Welcome to the MySQL monitor.

Commands end with ; or g.

Your MySQL connection id is 449 to server version: 4.0.13

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

9|Pgina

Base de Datos Distribuidas

mysql> SELECT * FROM innotest;


+-------+
| campo |
+-------+
|

1 |

2 |

3 |

+-------+
3 rows in set (0.00 sec)

Ahora vamos a repetir la sentencia INSERT ejecutada anteriormente, pero haremos un COMMIT
antes de perder la conexin al servidor al salir del monitor de MySQL.
mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO innotest VALUES(4);


Query OK, 1 row affected (0.00 sec)

mysql> COMMIT;
Query OK, 0 rows affected (0.02 sec)

mysql> EXIT;
Bye

Una vez que hacemos un COMMIT, la transaccin es completada, y todas las sentencias SQL
que han sido ejecutadas previamente afectan de manera permanente a las tablas de la base de
datos.
Welcome to the MySQL monitor.

Commands end with ; or g.

Your MySQL connection id is 450 to server version: 4.0.13

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

10 | P g i n a

Base de Datos Distribuidas

mysql> SELECT * FROM innotest;


+-------+
| campo |
+-------+
|

1 |

2 |

3 |

4 |

+-------+
4 rows in set (0.00 sec)

CONCLUSIONES
Para finalizar con el tema se mostr a detalle un poco sobre las transacciones dentro del campo de
Base de Datos, y as tener una idea de cmo es que se estructura y cules son las acciones que se
encuentran dentro de ella. Conociendo mejor sobre las transacciones enfocndolo al manejador de
MySQL.

BIBLIOGRAFIA
Capitulo 5. (s.f.). Obtenido de Transacciones Distribuidas:
http://132.248.9.195/pd2006/0606805/A8.pdf
Monografias. (s.f.). Obtenido de Manejo de Transacciones:
http://www.monografias.com/trabajos96/manejo-transacciones/manejotransacciones.shtml
Wikipedia. (25 de Noviembre de 2015). Obtenido de Base de Datos Distribuidas:
https://es.wikipedia.org/wiki/Bases_de_datos_distribuidas

11 | P g i n a