lunes, 17 de marzo de 2008

1.6 Gestión de transacciones. ACID.

Una de los objetivos de usar una base de datos era el de garantizar la atomicidad de un conjunto de operaciones (Se utiliza la palabra atómico haciendo referencia al latín atomus, y éste del griego άτομος, con el significado de indivisible). La atomicidad es la garantía que nos da el sistema de que, ante la ejecución de una serie de operaciones, englobadas en lo que llamamos una transacción, o bien se ejecutan todas las operaciones, o bien no se efectúa ninguna.

En otras palabras, el conjunto de operaciones se ejecuta en su totalidad o no se ejecuta en absoluto, no dejando ningún efecto sobre el sistema. Una vez empezada una transacción, por tanto, esta puede acabar con una confirmación que la hace definitiva (Commit) o pueden ser cancelada en su totalidad (Rollback)

La atomicidad nos facilita mantener la consistencia de los datos. Decimos que una base de datos es consistente si se garantiza que siempre se verifican unas determinadas condiciones, definidas por nosotros, y que expresaremos en forma de reglas. Las condiciones deben cumplirse obligatoriamente antes y después de la transacción (pero pueden incumpliese transitoriamente dentro de la misma).

Por ejemplo, consideremos una transacción de fondos desde la cuenta A a la cuenta B. Definimos una regla de consistencia que establezca que la suma de los saldos de A y B debe ser constante. Esta regla debe cumplirse antes y después de la transacción, aunque si es posible que durante la transacción se produzcan inconsistencias.



El aislamiento es importante




Otra característica destacable de una transacción es su durabilidad. Esta garantiza que, en el instante en el que se finaliza la transacción, esta perdura. Incluso en el caso de fallo en el sistema, este deberá ser capaz de recuperarse y recordar todas la transacciones que hayan sido completadas.

Finalmente, un sistema de transacciones debe garantizar el aislamiento. El aislamiento es la garantía de que los cambios hechos dentro de cualquier transacción son invisibles al resto los usuarios, mientras esta no haya concluido. Así se garantiza que el resto de usuarios no observen los cambios intermedios.

El gestor de transacciones es la parte del gestor de base de datos que se asegura de mantener la atomicidad, durabilidad y aislamiento de las transacciones. Si no hay ningún error, al acabar la transacción esta se da por definitiva. Si se produce un error durante la transacción, el sistema debe restaurar la base de datos al estado en que estaba justo antes de que empezara la transacción. Este proceso se denomina recuperación de fallos.

Estas cuatros características de los sistemas gestores de bases de datos se suelen resumir con el acrónimo ACID, que corresponde con las iniciales en ingles de Atomicidad (Atomicity), Consistencia (Consistency), Aislamiento (Isolation) y Durabilidad (Durability).

viernes, 7 de marzo de 2008

1.5 Usuarios y administradores de la base de datos

Las usuarios de una base de datos pueden clasificarse en diferentes roles: Por un lado tenemos los usuarios, y por otro los adminstradores.

Usuarios


Los usuarios se dividen en:


  • Usuarios normales: Usuarios no sofisticados, que interactúan con el sistema mediante la ejecución de programas específicos escritos por otras personas. Normalmente la interfaz consiste en formularios e informes generados.

  • Programadores de aplicaciones: Profesionales informáticos que escriben los programas de aplicación que utilizan los usuarios. Para ello se suelen usar lenguajes convencionales, entornos de herramientas de desarrollo rápido de aplicaciones (RAD - Rapid Application Development) o lenguajes de cuarta generación.

  • Usuarios sofisticados: Interactúan con el sistema sin usar aplicaciones específicas, usando directamente el lenguaje de consultas. Los analistas que utilizan consultas para explotar los datos en la base de datos entran en esta categoría.

  • Usuarios especializados: son usuarios sofisticados que escriben aplicaciones de BD especializadas que no son adecuadas en el marco de procesamiento de datos tradicional.



Administrador de la base de datos


Usar un un sistema gestor de base de datos implica tener un control centralizado de las formas de acceso a los los datos. La personas encargadas de este control se denominan administradores de la base de datos. Sus funciones incluyen:

  • Diseño y creación de esquemas.

  • Definición de estructuras y métodos de accesos.

  • Modificar los esquemas y la organización física, si fuera necesario.

  • Mantenimiento de usuarios: Crear cuentas, roles, conceder o revocar autorizaciones a los usuarios para poder trabajar con los datos.

  • Mantenimientos rutinarios: copias de respaldo, comprobación de espacio ocupado en los discos, comprobaciones de rendimiento.