0% encontró este documento útil (0 votos)
8 vistas9 páginas

El Diccionario de Recursos

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1/ 9

El Diccionario de Recursos de Información

Es donde se encuentra la lista de todos los elementos que forman parte del flujo de datos en todo
el sistema. Los elementosmás importantes son flujos de datos, almacenes de datos y procesos. El
diccionario guarda los detalles y descripciones detodos estos elementos

Unidad II - Manejo de Transacciones

Concepto

Una transacción en un Sistema de Gestión de Bases de Datos (SGBD), es un conjunto de órdenes


que se ejecutan formandouna unidad de trabajo, cuando es capaz de mantener la integridad de
los datos, haciendo que estas transacciones no puedanfinalizar en un estado intermedio. Cuando
por alguna causa el sistema debe cancelar la transacción, empieza a deshacer lasórdenes
ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad), como si
la orden de latransacción nunca se hubiese realizado.

Estructura de las transacciones

La estructura de una transacción usualmente viene dada según el modelo de la transacción, estas
pueden ser planas(simples) o anidadas.

Transacciones planas:

Consisten en una secuencia de operaciones primitivas encerradas entre las palabras clave BEGIN y
END. Por ejemplo:

Transacciones Anidadas:

Consiste en tener transacciones que dependen de otras, estas transacciones están


incluidasdentro de otras de un nivel superior y se las conoce como subtransacciones. La
transacción de nivel superior puede producirhijos (subtransacciones) que hagan más fácil la
programación del sistema y mejoras del desempeño.En las transacciones anidadas las operaciones
de una transacción pueden ser así mismo otras transacciones.

Operaciones de una transacción

Inicio de Transacción: Operación que marca el momento en el que una transacción comienza
a ejecutarse.

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


Fin de la Transacción: Se verifica si la transacción debe abortarse por alguna razón.

Confirmar (COMMIT): La operación termino con éxito.

Abortar (ROLLBACK): La transacción termino sin éxito.

Estados de una Transacción

Transacción Activa: se encuentra en este estado justo después de iniciar su ejecución.

Transacción Parcialmente Confirmada: en este punto, se efectúan diferentes operaciones de


verificación para asegurarque la transacción no interfiera con otras transacciones en ejecución.

Transacción Confirmada: Ha concluido su ejecución con éxito.

Transacción Fallida: En este caso, es posible que la transacción deba ser cancelada.

Transacción Terminada: indica que la transacción ha abandonado el sistema.

Problemas de Concurrencia

La concurrencia es un fenómeno que se presenta en varios contextos. Uno de ellos es la


multiprogramación ya que el tiempodel procesador es compartido dinámicamente por varios
procesos. Otro caso son las aplicaciones estructuradas, donde laprogramación estructurada se
implementa como un conjunto de procesos concurrentes. Y por último se tiene que la
mismaestructuración recién mencionada es utilizada en el diseño de los sistemas operativos, los
cuales se implementan como unconjunto de procesos.El termino concurrencia se refiere al hecho
de que los DBMS (SISTEMAS DE ADMINISTRACION DE BD) permiten quemuchas transacciones
puedan accesar a una misma base de datos a la vez

Una transacción en un Sistema de Gestión de Bases de Datos (SGBD), es un conjunto de


órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o
atómica.

Un SGBD se dice transaccional, si es capaz de mantener la integridad de los datos ,


haciendo que estas transacciones no puedan finalizar en un estado intermedio. Cuando por
alguna causa el sistema debe cancelar la transacción, empieza a deshacer las órdenes
ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad),
como si la orden de la transacción nunca se hubiese realizado.

Para esto, el lenguaje de consulta de datos SQL (Structured Query Language), provee
los mecanismos para especificar que un conjunto de acciones deben constituir una
transacción.

 BEGIN TRAN: Especifica que va a empezar una transacción.

 COMMIT TRAN: Le indica al motor que puede considerar la transacción


completada con éxito.

 ROLLBACK TRAN: Indica que se ha alcanzado un fallo y que debe


restablecer la base al punto de integridad.

En un sistema ideal, las transacciones deberían garantizar todas las propiedades ACID; en
la práctica, a veces alguna de estas propiedades se simplifica o debilita con vistas a obtener
un mejor rendimiento.

Un ejemplo de transacción

Un ejemplo habitual de transacción es el traspaso de una cantidad


de dinero entre cuentas bancarias. Normalmente se realiza mediante
dos operaciones distintas, una en la que se decrementa el saldo de la cuenta origen y otra
en la que incrementamos el saldo de la cuenta destino. Para garantizar la atomicidad del
sistema (es decir, para que no aparezca o desaparezca dinero), las dos operaciones deben
ser atómicas, es decir, el sistema debe garantizar que, bajo cualquier circunstancia (incluso
una caída del sistema), el resultado final es que, o bien se han realizado las dos operaciones,
o bien no se ha realizado ninguna.

ESTRUCTURA DE LAS TRANSACCIONES


La estructura de una transacción usualmente viene dada según el modelo de la
transacción, estas pueden ser planas (simples) o anidadas.

Transacciones planas: Consisten en una secuencia de operaciones


primitivas encerradas entre las palabras clave BEGIN y END. Por
ejemplo:

BEGIN _TRANSACTION Reservación

….

END.

Transacciones Anidadas: Consiste en tener transacciones que dependen de otras, estas


transacciones están incluidas dentro de otras de un nivel superior y se las conoce como
subtransacciones. La transacción de nivel superior puede producir hijos (subtransacciones)
que hagan más fácil la programación del sistema y mejoras del desempeño .
En las transacciones anidadas las operaciones de una transacción pueden ser así mismo
otras transacciones. Por ejemplo:

Una transacción anidada dentro de otra conserva


las mismas propiedades que las de su padre, esto implica, que puede contener
así mismo transacciones dentro de ella. Existen restricciones obvias
en una transacción anidada: debe empezar después que su padre
y debe terminar antes que él. El compromiso de una subtransaccion es
condicional al compromiso de su padre, si el padre de una o varias
subtransacciones aborta,
las subtransacciones hijas también serán abortadas. Las transacciones
anidadas brindan un nivel más alto de concurrencia entre transacciones.
Ya que una transacción consiste de varias transacciones es posible tener
mayor concurrencia dentro de una sola transacción.

Así también, es posible recuperarse de fallas de forma independiente de cada sub


transacción. Esto limita el daño a una parte más pequeña de la transacción, haciendo que
el costo de la recuperación sea el menor.

También se deben considerar el orden de las lecturas y escrituras. Si las acciones


de lectura y escritura pueden ser mezcladas sin ninguna restricción, entonces, a este tipo
de transacciones se les conoce como Generales .Por el contrario, si se restringe o impone
que un dato debe ser leído antes de que pueda ser escrito entonces se tendrán
transacciones Restringidas. Si las transacciones son restringidas a que todas las acciones
de lectura se realicen antes de las acciones de escritura entonces se les conoce como
de Dos Pasos. Finalmente existe un modelo de acción para transacciones restringidas
en donde se aplica aún más la restricción de que cada par < read, write > tiene que ser
ejecutado de manera atómica.
Operaciones de una transacción

 Inicio de Transacción: Operación que marca el momento en el que una


transacción comienza a ejecutarse.
 Leer o Escribir: Operaciones de lectura/escritura de elementos de la base
de datos.
 Fin de la Transacción: Se verifica si la transacción debe abortarse por
alguna razón.
 Confirmar (COMMIT): La operación termino con éxito.
 Abortar (ROLLBACK): La transacción termino sin éxito.

Estados de una Transacción

 Transacción Activa: se encuentra en este estado justo después de iniciar


su ejecución.
 Transacción Parcialmente Confirmada: en este punto, se efectúan
diferentes operaciones de verificación para asegurar que la transacción no
interfiera con otras transacciones en ejecución.
 Transacción Confirmada: Ha concluido su ejecución con éxito.
 Transacción Fallida: En este caso, es posible que la transacción deba ser
cancelada.
 Transacción Terminada: indica que la transacción a abandonado el
sistema.

Representación de los estados de una transacción


PROBLEMAS DE CONCURRENCIA
La concurrencia es un fenómeno que se presenta en varios contextos. Uno de ellos es la
multiprogramación ya que el tiempo del procesador es compartido dinámicamente por
varios procesos . Otro caso son las aplicaciones estructuradas, donde la programación
estructurada se implementa como un conjunto de procesos concurrentes. Y por último se
tiene que la misma estructuración recién mencionada es utilizada en el diseño de
los sistemas operativos , los cuales se implementan como un conjunto de procesos.

El termino concurrencia se refiere al hecho de que los DBMS (SISTEMAS DE


ADMINISTRACION DE BD) permiten que muchas transacciones puedan accesar a una
misma base de datos a la vez.

En un sistema de estos se necesitan algún tipo de mecanismos de control de concurrencia


para asegurar que las transacciones concurrentes no interfieran entre sí.

En sistemas multiusuario, es necesario un mecanismo para controlar la concurrencia. Se


pueden producir inconsistencias importantes derivadas del acceso concurrente, como por
ejemplo, el problema de la operación perdida.

En un sistema de biblioteca , existe un campo que almacena el número de copias


disponibles para préstamo. Este campo debe incrementarse en uno cada vez que se
devuelve un ejemplar del libro y disminuirse en uno cada vez que se presta un ejemplar.

Si existen varias bibliotecarias, una de ellas inicia la transacción t1, leyendo la variable
numero ejemplares (n), cuyo contenido se guarda en la variable n1. Tiempo después, otra
bibliotecaria podría leer la misma variable incrementándola en una unidad, transacción t2.
Después, la transacción t1 añade una unidad a esa variable y la actualiza, el resultado es
erróneo, ya que la variable N debería haber aumentado en 2 unidades, y solo ha aumentado
en una. La transacción t2 se ha perdido.

Consiste en controlar la interacción entre los usuarios concurrentes para no afectar la


inconsistencia de los datos.

Cuando se trabajaba con manejadores de archivos y se estaba actualizando un


determinado registro , ningún otro usuario podía actualizar el mismo archivo ; aunque el
registro a trabajar fuera otro. Con esta característica, ya más de un usuario puede accesar a
un mismo registro y actualizarlo.

El objetivo fundamental del control de concurrencia de base de datos es garantizar que la


ejecución concurrente de transacciones no resulta en una pérdida de consistencia de la base
de datos.

La concurrencia se da cuando dos transacciones están interconectadas, lo que es común en


un entorno multiusuario. Así pues en un entorno de multiprogramación es posible ejecutar
varias transacciones de manera concurrente.
4.
7. 4.7. Síntesis Una transacción es un conjunto de operaciones que lleva a cabo una única
función lógica en la base de datos. Durante su ejecución puede encontrarse en cinco estados
distintos que son: activo, parcialmente cometido, fallado, abortado y cometido. Es ideal que las
transacciones cumplan con cuatro características básicas que son: “atomicidad” que implica que
una transacción debe ejecutarse por completo o no ejecutarse, “consistencia” que mantiene
consistente la base de datos antes y después de las transacciones, “aislamiento” que ayuda a
ocultar las modificaciones que pueda hacer una transacción durante su ejecución y “durabilidad”
que indica que una vez alcanzado el estado cometido, los cambios son permanentes (en tanto no
sean modificados por otra transacción). Cuando surgen fallos que alteran el curso normal de una
transacción, interviene un esquema de recuperación que garantiza la atomicidad de las
transacciones, retomando un estado consistente de la base de datos. Los métodos de
recuperación que llevan a cabo retrocesos con mayor precisión son “recuperación basada en
bitácora” teniendo las variantes de “bitácora con modificaciones diferidas” y “bitácora con
modificaciones inmediatas”. Y para optimizar el rendimiento de estas formas de recuperación se
utilizan los “puntos de verificación”, que ayudan a seccionar la bitácora.

Los DBMS permiten la ejecución de varias transacciones simultáneamente, a este hecho se le


conoce como “concurrencia”. Cuando se presenta la concurrencia, pueden afectarse las
propiedades de las transacciones, peligrando así la consistencia de la base de datos. Para evitarlo
el DBMS cuenta con un sistema de control de concurrencia, que se encarga de coordinar la
interacción, utilizando métodos como el de “serialización” que teóricamente es la forma ideal de
resolver la concurrencia, sin embargo no todas las transacciones son serializables, de ahí las
variantes “serialización por conflictos” y “por visión”. Existe otro método llamado de “bloqueo”,
que pretende asegurar los elementos con que trabajan las transacciones, para que ninguna otra
transacción los utilice en el instante en que son ocupados. También está el método de “marcas de
tiempo”, para determinar el orden de secuencia de las transacciones. Unidad IV Control de
Transacciones
________________________________________________________________________________
________________________________________________________ 117 La propiedad de
aislamiento de una transacción no es definitiva, ya que es difícil mantener un aislamiento total de
los resultados que se generan, para esto hay diferentes niveles de aislamiento, que determinan el
nivel de acceso que otras transacciones tendrán a los datos que afecte una transacción y son:
“lectura sucia”, “lectura no repetible” y “lectura fantasma”.

Finalmente las sentencias SQL que indican el final con o sin éxito de las transacciones son
“commit” y “rollback”.

CONCLUSION.
En conclusión, una transacción en un Sistema de Gestión de Bases de
Datos (SGBD), es un conjunto de órdenes que se ejecutan formando una
unidad de trabajo, es decir, en forma indivisible o atómica.
Un SGBD se dice transaccional, si es capaz de mantener la integridad de
los datos, haciendo que estas transacciones no puedan finalizar en un
estado intermedio. Cuando por alguna causa el sistema debe cancelar la
transacción, empieza a deshacer las órdenes ejecutadas hasta dejar la
base de datos en su estado inicial (llamado punto de integridad), como si la
orden de la transacción nunca se hubiese realizado. Un ejemplo habitual de
transacción es:
El traspaso de una cantidad de dinero entre cuentas bancarias.
Normalmente se realiza mediante dos operaciones distintas, una en la que
se decrementa el saldo de la cuenta origen y otra en la que incrementamos
el saldo de la cuenta destino. Para garantizar la atomicidad del sistema (es
decir, para que no aparezca o desaparezca dinero), las dos operaciones
deben ser atómicas, es decir, el sistema debe garantizar que, bajo cualquier
circunstancia (incluso una caída del sistema), el resultado final es que, o
bien se han realizado las dos operaciones, o bien no se ha realizado
ninguna.

Artículo II. INTRODUCCION.

En este trabajo se hablará de los conceptos y tipos de transacciones, dando a

conocer las diferentes formas de realizar las transacciones.

El concepto de transacción es algo muy amplio y está presente tanto en

sistemas centralizados como en sistemas distribuidos.

Se llama Transacción a una colección de operaciones que forman una unidad

lógica de trabajo. Una Transacción es una unidad de la ejecución de un

programa que accede y, posiblemente, actualiza varios elementos de datos.

El uso correcto de la transaccionalidad ayuda a garantizar la consistencia de la

información y minimiza los bloqueos de datos maximizando la concurrencia de

los procesos. A su vez, todos los gestores de bases de datos incluyen soporte

para montar procesos transaccionales, así como la gran mayoría de los

lenguajes de programación que utilizamos.

Dado a que tenemos todas las herramientas necesarias para soportar procesos
transaccionales, debemos conocer los conceptos, las ventajas y las mejores

prácticas para poder aplicarlos en beneficio de la organizació

También podría gustarte