TAMAZUNCHALE
CARRERA:
INGENIERA EN SISTEMAS COMPUTACIONALES
MATERIA:
TALLER DE BASE DE DATOS
UNIDAD V
TEMA:
INVESTIGACIN: UNIDAD 5 - TRANSACCIONES
ALUMNO:
CSAR MANUEL REYES
12ISC062
CATEDRTICO:
ING. BRAULIO BAUTISTA LPEZ
GRUPO:
M1
SEMESTRE:
FECHA DE ENTREGA:
PERIODO:
TURNO:
MATUTINO
AGOSTO
2014 ENERO
2015
CONTENIDO
INTRODUCCIN .................................................................................................................. 3
5.1 CONCEPTOS BSICOS ................................................................................................. 4
5.2 PROPIEDADES DE LA TRANSACCIN ..................................................................... 5
CONTROL DE TRANSACCIONES EN ORACLE .......................................................... 6
5.3 GRADOS DE CONSISTENCIA ..................................................................................... 7
5.4 NIVELES DE AISLAMIENTO ....................................................................................... 9
5.5 COMMIT Y ROLLBACK ............................................................................................. 11
TRANSACCIONES EN SQL SERVER .............................................................................. 13
RECOMENDACIONES. ..................................................................................................... 16
EJEMPLOS DONDE SE APLICAN. .................................................................................. 16
CONCLUSIONES ................................................................................................................ 18
BIBLIOGRAFA .................................................................................................................. 19
INTRODUCCIN
En esta unidad cinto estaremos viendo el tema de transiciones en la materia de base de
datos.
Dentro de esta investigacin podremos ver con claridad que es y en que consiste este tema,
de una forma generalizada se puede decir que una transicin es un conjunto de operaciones
que se ejecutan como nico bloque, o bien, es un conjunto de rdenes que se ejecutan
formando una unidad para de esta manera poder trabajar.
De igual manera se presentara unos ejemplos en cdigo para ser comprendido de mejor
manera.
El ejemplo ms claro sobre el tema es la transferencia de cuentas bancarias, porque se
realizan de manera distinta porque en una aumenta y en la otra cuenta disminuye.
El concepto de transaccin se desarroll para atender los casos en los que el estado
resultante de la base de datos depende del xito completo en una serie de operaciones. Este
concepto vio la luz debido a que varias operaciones sucesivas pueden modificar el resultado
Coherencia: Asegura que los datos que observamos no cambian (por otros usuarios)
hasta que acabemos la Transaccin.
Despus de terminar una Transaccin la Base de datos no viola ninguna de sus
reglas: valores obligatorios, claves nicas,etc.
Responsable: los programadores mediante la definicin adecuada de la integridad
referencial: check, triggers, primary key, foreign key,
Una transaccin que termina con xito se dice que est comprometida (commited), una
transaccin que haya sido comprometida llevar a la base de datos a un nuevo estado
consistente que debe permanecer incluso si hay un fallo en el sistema. En cualquier
momento una transaccin slo puede estar en uno de los siguientes estados.
Si una operacin de lectura que hace referencia a filas modificadas por otra
transaccin:
o Se bloquea hasta que se libera el bloqueo exclusivo de la fila.
o Recupera la versin confirmada de la fila que exista en el momento en el
que se inici la instruccin o la transaccin.
o Lee la modificacin de los datos no confirmada.
o podemos utilizar:
con.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED + 4094);
else, puesto que permiten modificar y borrar informacin de forma condicional en base a
condiciones en tiempo de ejecucin.
Ejemplos:
START TRANSACTION:
START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summary=@A WHEREtype=1;
COMMIT
Con START TRANSACTION, autocommit permanece deshabilitado hasta el final de la
transaccincon COMMIT o ROLLBACK. El modo autocommit vuelve a su estado previo.
/* Registramos el movimiento */
INSERT INTO MOVIMIENTOS
(IDCUENTA, SALDO_ANTERIOR, SALDO_POSTERIOR, IMPORTE,
FXMOVIMIENTO)
SELECT
IDCUENTA, SALDO + @importe, SALDO, @importe, getdate()
FROM CUENTAS
WHERE NUMCUENTA = @CuentaOrigen
/* Registramos el movimiento */
INSERT INTO MOVIMIENTOS
(IDCUENTA, SALDO_ANTERIOR, SALDO_POSTERIOR, IMPORTE,
FXMOVIMIENTO)
SELECT
Esta forma de actuar seria errnea, ya que cada instruccin se ejecutara y confirmara de
forma independiente, por lo que un error dejara los datos errneos en la base de datos ( y
ese es el peor error que nos podemos encontrar! )
Transacciones implcitas y explicitas
Para agrupar varias sentencias Transact SQL en una nica transaccin, disponemos de los
siguientes mtodos:
RECOMENDACIONES.
Hemos visto ya muchas explicaciones acerca de lo que son las transacciones y concepto
aplicado en base de datos, sin duda, es sinnimo de ser confiable al trabajar en nuestra base
de datos.
Pueden ser utilizadas con ms frecuencia en bancos, la idea es que usar alguna sentencia sin
afectar nada sino hasta que nosotros lo indiquemos con la sentencia COMMIT.
El concepto de transaccin va enfocado a que al ejecutar dicha sentencia no suceda nada, y
que los cambios sean realizados hasta que escribamos la sentencia que mencionamos.
En cuanto a los manejadores de base de datos tenemos MY SQL, SQL SERVER y
ORACLE entre otros, si deseamos trabajar sin complicaciones de licencias y todo ello, esta
la gran opcin de usar MY SQL que es libre y muy fcil de usar para todo aquel que desea
manejar informacin. En cuanto a SQL SERVER es un entorno muy particular de
Microsoft, una de las complicaciones que podemos tener quiz sea el entorno de trabajo ya
que hace se realizan otros pasin pero la lgica de las consultas son las mismas y por otro
lado seria la compatibilidad.
Actualmente ORACLE es uno de los gestores de base de datos con mucho renombre que
posee una gran seguridad y una amplia gama de informacin y soporte de parte de sus
desarrolladores ya que es de paga.
En todos estas opciones que puedo presentar se puede aplicar lo de transacciones, solo es
cuestin de saber en cul de ellos nos podemos acoplar y trabajar libremente, la esencia de
las consultas y las sintaxis que son usadas pueden aplicar en cualquiera de estas.
Supongamos que un sitio web bancario tiene 2 usuarios, ambos trabajando sobre la misma
cuenta.
El usuario 1 pide incrementar su saldo en 10, mientras que el usuario 2 pide disminuirlo (a
travs de un formulario, por ejemplo)
El programador del sistema no puede decidir el orden en el que se ejecutarn las consultas,
as que bien podra suceder lo siguiente:
En este punto, existen dos copias de la aplicacin que contienen una variable $balance cada
una. Supongamos que ambas necesitan actualizar el valor en la base de datos:
El resultado es que ambas copias del programa ejecutaron sus consultas con la informacin
de balance que tenan, por lo que el resultado final es como si la consulta del usuario 1 no
se hubiera ejecutado nunca, ya que el usuario 2 actualiza el registro con informacin vieja.
Al final, en vez de quedar con el mismo saldo, la cuenta termina perdiendo 10.
CONCLUSIONES
Despus de toda esta informacin obtenida podemos hacer un nfasis un tanto clara de lo
que es las transacciones, que podemos denominar ya como un conjunto do ordenes que se
ejecuten para de esta manera formar una unidad de trabajo.
En otras palabras tambin podemos definir a la transaccin como un conjunto de acciones
que se llevan a cabo por algn usuario o algn programa de aplicacin que pueden acceder
al contenido de la base de datos.
Con esto se puede realizar cualquier tipo de operaciones en una base de datos, basndonos
en consultas simples o de un grado que presente complejidad.
Podemos tener beneficios en lograr acciones sobre la base de datos en la que deseamos
aplicar, logrando operaciones como el ingreso, borrado, actualizacin y visualizar.
BIBLIOGRAFA
http://es.slideshare.net/Thekavenet/transacciones-en-mysql
http://www.devjoker.com/contenidos/articulos/292/Transacciones-en-Transact-SQL.aspx
http://www.desarrolloweb.com/articulos/control-transacciones-oracle.html
http://lopez-garcia-victor.blogspot.mx/2012/10/unidad-v-transacciones.html
http://msdn.microsoft.com/es-es/library/aa833147%28v=vs.90%29.aspx
http://dsc.itpn.mx/recursositics/4semestre/tallerdebasededatos/Unidad%20V.pdf
http://es.wikipedia.org/wiki/Transacci%C3%B3n_%28base_de_datos%29
http://www.microsoft.com/en-us/server-cloud/products/sql-server/
http://mauricio-iso20000.blogspot.mx/p/unidad-4-manejo-de-transacciones.html
http://es.slideshare.net/dantoniocruz/transacciones-27511077
http://www.devjoker.com/contenidos/articulos/292/Transacciones-en-Transact-SQL.aspx
http://mundobyte.wordpress.com/2008/01/10/transacciones-en-mysql/