Base de datos

Solo disponible en BuenasTareas
  • Páginas : 13 (3101 palabras )
  • Descarga(s) : 7
  • Publicado : 27 de mayo de 2010
Leer documento completo
Vista previa del texto
Tema 6. Transacciones y seguridad
Las aplicaciones de bases de datos a gran escala, con bases de datos de gran tamaño y con cientos de usuarios concurrentes, como los sistemas de reservas, los bancos, la bolsa, etc., requieren una alta disponibilidad y un tiempo de respuesta mínimo para cada uno de los usuarios concurrentes que estén utilizando el sistema. En este tema se ofrece una introduccióna las transacciones como base del procesamiento de peticiones concurrentes en bases de datos, estudiando los conceptos básicos relacionados con el procesamiento de transacciones, analizando el problema del control de la concurrencia que se produce cuando las transacciones de distintos usuarios interfieren entre sí. Asimismo, se realizará una breve introducción a la seguridad, describiendo cómo sepuede establecer con SQL un mecanismo de autorización basado en la concesión y retirada de privilegios sobre los objetos de la base de datos.

6.1. Introducción al procesamiento de transacciones
Las aplicaciones de bases de datos suelen ser sistemas a los que acceden concurrentemente varios usuarios por lo que es posible que varios usuarios estén intentando acceder simultáneamente a los mismosdatos. Esta situación es especialmente delicada cuando alguno o varios de estos usuarios está intentando modificar los datos que están siendo utilizados por los otros usuarios, de forma que hay que controlar la gestión y el acceso a los datos en este tipo de situaciones, y esto se consigue mediante el uso de transacciones. Una transacción es una unidad lógica de procesamiento que incluye una omás operaciones de acceso a la base de datos (modificación o consulta). Las transacciones se definen especificando sus límites de principio y de fin, y en SQL se denotan con begin transaction y end transaction.

6.1.1. Modelo de base de datos para el procesamiento de transacciones
Para explicar el procesamiento de transacciones utilizaremos el siguiente modelo de base de datos. Una base de datosestá formada por un conjunto de elementos de datos con nombre. El tamaño de un elemento de datos se denomina granularidad, y puede ser desde un campo de un registro, hasta un bloque de disco o una o varias tablas completas. Utilizando este modelo simplificado, las operaciones básicas de acceso a la base de datos que puede incluir una transacción son:
• leer_elemento(X): Lee el elemento de la basede datos llamado X.



escribir_elemento(X): Escribe el elemento de la base de datos llamado

X. transacción incluye operaciones leer_elemento y escribir_elemento para tener acceso y modificar la base de datos. La Figura 6.1 ilustra dos transacciones muy sencillas
T1 leer_elemento(X) X=X-N escribir_elemento(X) leer_elemento(Y) Y=Y+N escribir_elemento(Y) T2 leer_elemento(X) X=X+Mescribir_elemento(X)

Así,

una

Figura 6.1. Ejemplo de dos transacciones

Definimos como conjunto lectura de una transacción al conjunto de elementos de datos que son leídos de la base de datos en una transacción. Así, en T1, el conjunto lectura es {X, Y} y el de T2 es {X}. Definimos como conjunto escritura de una transacción al conjunto de elementos de datos que son escritos por una transacción.En el ejemplo, en T1, el conjunto de escritura es {X,Y} y en T2 es {X}.

6.1.2. Necesidad del control de la concurrencia
Dado que varios usuarios pueden lanzar operaciones concurrentes contra una base de datos, es necesario establecer mecanismos para que las transacciones no se ejecuten de forma incontrolada y dejen a la base de datos en un estado inconsistente. Para ilustrarlo supongamos quetenemos una base de datos de cuentas corrientes. Como elemento de datos tomamos la cuenta corriente, que entre otra información, cuenta con su saldo. La Figura 6.1 ilustra una transacción T1 que transfiere de una cuenta X a una cuenta Y N unidades monetarias. Además, de forma paralela se está realizando una transacción T2 para un ingreso de M unidades monetarias en la cuenta X. Veamos que...
tracking img