Investigación (C4)
Investigación (C4)
Investigación (C4)
Asignatura:
Taller de bases de datos.
Elaborado por:
Zamudio Franco Luis Jesús
Grupo: 352M
Actividad:
Investigación (C4)
GUÍA ESTRUCTURADA DE EVALUACIÓN
División: (1) Ingeniería de Sistemas Computacionales
Docente: (2) ING.OSCAR OLIVARES LOPEZ
Asignatura: (3) Tópicos Avanzados de Programación
Unidad: (4) 4
Alumno(s): (5) Zamudio Franco Luis Jesús 193107070 Grupo: (6) 352M
Competencia específica Controla la concurrencia de la base de datos para disminuir los problemas de desempeño y/o
evaluada: (7) consistencia
Tabla de ilustraciones.
Una transacción puede estar compuesta por varias operaciones sobre la ba- se de
datos, como registrar una factura, que requiere insertar datos en varias tablas. Sin
embargo, desde el punto de vista del usuario, estas operaciones conforman una
sola tarea. Desde el punto de vista del SGBD, una transacción lleva a la base de
datos de un estado consistente a otro estado consistente. El SGBD garantiza la
consistencia de la base de datos incluso si se produce algún fallo, y también
garantiza que una vez se ha finalizado una transacción, los cambios realizados por
ésta quedan permanentemente en la base de da- tos, no se pueden perder ni
deshacer (a menos que se realice otra transacción que compense el efecto de la
primera). Si la transacción no se puede finalizar por cualquier motivo, el SGBD
garantiza que los cambios realizados por esta transacción son deshechos.
Justificación.
La presente investigación se enfocará a estudiar los conceptos básicos de lo que
es la concurrencia en un SGDB con la finalidad de que dominemos este tema
tanto teóricamente como prácticamente.
Así que, el presente trabajo cubre los temas que marca la cuarta competencia de
nuestra respectiva instrumentación didáctica de la materia que es taller de bases
de datos.
Es importante para nosotros el manejar este tema ya que en este momento a estar
ocupando un sistema gestor de base de datos se necesita conocer temas básicos
para hacer un correcto uso de este y por supuesto que el tema de concurrencia es
uno de estos. De este tema, lo que llevaremos a la práctica será el uso de las
sentencias Commit y Rollback asi que tenemos que poner atención en para que
sirven estas y las estructuras que se deben cumplir.
4.- CONCURRENCIA.
4.1 Conceptos.
4.1.1 Concurrencia.
El término concurrencia se refiere al hecho de que los DBMS (Sistema de
Administración de Base de Datos) permiten que muchas transacciones accedan a
una misma base de datos a la vez.
Cuando existen varios usuarios intentando modificar los datos al mismo tiempo se
necesita establecer algún tipo de control para que las modifica- ciones de un
usuario no interfieran con las de los otros, a este sistema se le denomina control
de concurrencia.
4.1.2 Transacción.
Informalmente, una transacción es la ejecución de ciertas instrucciones que
accedan a una base de datos compartida. Cada transacción accede a información
compartida sin interferir con otras transacciones, y si una transacción termina
normalmente, todos sus efectos son permanentes, en caso contrario no tiene
afecto alguno.
4.1.5 Bloqueos.
Un bloqueo (también conocido como seguro o candado) podemos definirlo como
una variable asociada a cada elemento de datos, ya que describe el estado de
dicho elemento respecto a las posibles operaciones que se pueden llevar a cabo
con ellos en cada momento.
Las transacciones pueden llevar a cabo bloqueos, por ejemplo sobre los registros
que vayan a utilizar, impidiendo a otros usuarios la lectura o escritura de los
elementos bloqueados para evitar inconsistencias en el acceso concurrente.
Las transacciones representan eventos del mundo real. Las características que se
deben recoger de cada transacción son las siguientes:
1. Atomicidad (Atomicity).
2. Consistencia (Consistency).
3. Aislamiento (Isolation).
4. Permanencia (Durability).
4.2.1 Atomicidad.
Las transacciones son consideradas atómicas. Esto quiere decir que todas las
instrucciones contenidas en una transacción son consideradas en conjunto como
una unidad indivisible, por lo que se dice que una transacción debe ejecutarse por
completo o no ejecutarse, “todo o nada”, a este requisito se le llama “atomicidad”.
4.2.2 Consistencia.
La propiedad consistencia también es conocida como coherencia. La coherencia
asegura que cualquier transacción llevará a la base de datos de un estado válido a
otro estado válido.
4.2.3 Aislamiento.
Una transacción debe estar aislada del resto de las transacciones. Esto quiere
decir que aunque existan muchas transacciones ejecutándose al mismo tiempo,
cualquier
modificación de datos que realice una transacción, está oculta para el resto de las
transacciones, hasta que dicha transacción termine su ejecución.
Esta propiedad sirve para que una transacción no pueda operar datos que otra
transacción está ocupando. Si no existiera aislamiento, se produciría un estado
inconsistente en la base de datos.
4.2.4 Permanencia.
Es la propiedad que asegura que, una vez realizada la operación, ésta persistirá y
no se podrá deshacer, aunque falle el sistema.
Una transacción que termina con éxito se dice que está comprometida. Para ver
esto mas a detalle veremos los estados que existen en las transacciones ya que
en cualquier momento una transacción sólo puede estar en uno de los siguientes
estados.
Antes de entrar a los niveles de aislamiento, debemos comprender lo que son los
efectos de lectura, estos son casos en donde la transacción A lee datos que
pudieron haber sido modificados por la transacción B, existen 3 tipos diferentes.
Lectura no confirmada:
En esta es posible que ocurran lecturas sucias, la lecturas no repetibles y lecturas
fantasma.
Lectura confirmada:
En esta es posible que ocurran lecturas no repetibles y lecturas fantasma, pero
evita que ocurran lecturas sucias.
Lectura repetible:
En esta pueden ocurrir lecturas fantasmas, pero evita que ocurran lecturas sucias
y
lecturas no repetibles.
Serializable:
Este es el nivel de aislamiento más alto, evita por completo las lecturas sucias, las
lecturas no repetibles y las lecturas fantasmas.
Ejemplo.
Begin tran
Insert into Mvtos Values (‘0150’, ‘Dep’, 1500, ’08-10-2008’)
Insert into Mvtos Values (‘7120’, ‘Ret’, 1500, ’08-10-2008’)
Update Cuentas Set Saldo = Saldo + 1 where Numero = ‘0150’
Update Cuentas Set Saldo = Saldo – 1 Where Numero = ‘7120’
Commit tran.
Con la instruccion commit tran se pone una marca para saber hasta que punto se
hizo la transaccion.
4.5.2 Rollback.
En tecnologías de base de datos, un rollback es una operación que devuelve a la
base de datos a algún estado previo. Los Rollbacks son importantes para la
integridad de la base de datos, a causa de que significan que la base de datos
puede ser restaurada a una copia limpia incluso después de que se han realizado
operaciones erróneas.
En SQL, ROLLBACK es un comando que causa que todos los cambios de datos
desde la última sentencia BEGIN WORK, o START TRANSACTION sean
descartados por el sistema de gestión de base de datos relacional (RDBMS), para
que el estado de los datos sea "rolled back"(devuelto) a la forma en que estaba
antes de que aquellos cambios tuvieran lugar.
Ejemplo.
Ejemplo
Begin tran
<Comandos SQL>
<Comandos SQL>
Save tran Puntoseg
<Comandos SQL>
<Comandos SQL>
If @@ERROR <> 0
Rollback tran Puntoseg (cancela todo desde aquí hasta el punto de guardado)
Else
Commit tran
Conclusión.
Gracias al trabajo realizado y a la investigación de campo realizada podemos decir
que las bases de datos deben cumplir una serie de aspectos para que exista
coherencia entre sus datos, a esto se le llama consistencias. Para que exista
consistencia también se deben cumplir con las propiedades de las transacciones
las cual mencionamos en la investigación.
Otra cosa que se debe tomar en cuenta en la concurrencia son los niveles de
aislamiento de la base de datos y los grados de consistencia con los que debe
cumplir.
Una cosa que facilita mucho el empleo de una base de datos son las instrucciones
commit y rollback que nos permiten ir atrás o adelante de una serie de
transacciones, para poder emplear estas mismas comprendimos desde que punto
parte cada una de estas, sus funciones que tienen, sus características
respectivamente y la estructura que llevan para hacer uso de estas en lo que viene
siendo el ejercicio de esta misma competencia.
Referencias.
Tejada Betancourt, L. (Ed.) y Martínez Silverio, D. A. Manual de bases de datos.
Universidad Abierta para Adultos (UAPA), 2019. p.
https://elibro.net/es/ereader/bibliotesci/175897?page=129
Galicia, G., Antonio, D., y Cruz, M.. (2013). Transacciones. Noviembre 8, 2017, de
SlideShare Sitio web: https://es.slideshare.net/dantoniocruz/transacciones-
27511077.