Sunteți pe pagina 1din 12

INSTITUTO TECNOLOGICO DE IGUALA

Materia: Base de Datos Distribuidas


Nombre del Profesor: Jos Luis Zagal Arce
Integrantes del Equipo.
Ma. Alejandra Tapia Hernndez
Oswaldo Valladares Zavaleta
Dulce Roco Dimas Figueroa
Dency Aurora Padilla Jaimes
Antonio Rodrguez Rosas
David Emmanuel Valle Abarca

12670092
12670091
12670153
10670249
12670152
12670035

UNIDAD 5

Aula: E-6

7 Semestre

Ingeniera en Sistemas Computacionales

Turno Matutino

Iguala de la Independencia a 30 de Noviembre del 2015

Contenido
INTRODUCCION................................................................................................ 3
DEFINICIN....................................................................................................... 3
CARACTERISTICAS........................................................................................... 3
Propiedades de las transacciones................................................................3

Base de Datos Distribuidas


Operaciones de una transaccin...................................................................4
Estados de una Transaccin...........................................................................4
Tipos de transacciones................................................................................... 5
Funcin del manejador................................................................................... 5
CONCLUSIONES.............................................................................................. 11
BIBLIOGRAFIA................................................................................................. 11

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

2 | Pgina

Base de Datos Distribuidas


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.

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.

3 | Pgina

Base de Datos Distribuidas

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.)

Tipos de transacciones
Una transaccin puede clasificarse de diferentes maneras dependiendo bsicamente de tres
criterios:

4 | Pgina

Base de Datos Distribuidas


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
las operaciones que involucra, llevando el sistema a un nuevo estado consistente. A este
proceso se le conoce como hacer un commit.

5 | Pgina

Base de Datos Distribuidas


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.

Los pasos para usar transacciones en MySQL son:

6 | Pgina

Base de Datos Distribuidas

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)

7 | Pgina

Base de Datos Distribuidas


mysql> SELECT * FROM innotest;
+-------+
| campo |
+-------+
|

1|

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;

8 | Pgina

Base de Datos Distribuidas


Query OK, 0 rows affected (0.06 sec)

mysql> SELECT * FROM innotest;


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

1|

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;

9 | Pgina

Base de Datos Distribuidas


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.

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)

10 | P g i n a

Base de Datos Distribuidas


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.

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.

11 | P g i n a

Base de Datos Distribuidas

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

12 | P g i n a

S-ar putea să vă placă și