Вы находитесь на странице: 1из 9

Transaccin.

Consiste en un conjunto de instrucciones que modifican la


informacin de la base de datos. En el siguiente ejemplo se
ejecutan dos transacciones A y B; La transaccin A descuenta la
cantidad de 1000 al registro X y posteriormente la transaccin B
le incrementa 15% al saldo del registro X.

Introduccin.
El presente documento es una recopilacin de conceptos para la
materia de Bases de Datos II de la carrera de Tcnico Superior
Universitario en Informtica. Tiene el propsito de ayudar a todos
aquellos alumnos que toman la materia como autodidactas.

Transaccin A
Leer registro X
Calcular X=X-1000
Escribir registro X
-------------------------------------------------------

El objetivo para el alumno es conocer acerca de las bases de


datos distribuidas, manejar fallas en Sistemas Manejadores de
Bases de Datos, disear esquemas de seguridad y desarrollar
Sistemas Manejadores de Bases de Datos.

Transaccin B
------------------------------------------------Leer registro X
Calcular X=X*1.15
Escribir registro X

Atomicidad.
Las modificaciones a una base de datos deben garantizar la
consistencia. Para esto, cualquier transaccin debe realizarse de
manera completa y segura. En caso de no completarse la
transaccin, debe retroceder y dejar a la base de datos
consistente.

UNIDAD I.
RECUPERACIN Y ATOMICIDAD.
Definicin de Base de Datos.
Es un conjunto de archivos que permite almacenar informacin
referente a un universo especfico, acotado y ordenado.

En el siguiente ejemplo se presenta una transaccin que debe


trasladar $1000 (mil pesos) de la cuenta A a la cuenta B, pero se
realiza de manera incorrecta, ya que la transaccin no se ejecuta
por completo. La base de datos queda inconsistente pues la
cuenta A pierde $1000 que nunca son recuperados.

Definicin de Sistema Manejador de Bases de Datos.


Un Sistema Manejador de Bases de Datos, en ingls Data Base
Management System (DBMS, en espaol SMBD), consiste en un
conjunto de programas que permiten manipular la informacin
contenida en una base de datos.

Transaccin A

Objetivo.
El objetivo de un SMBD es proporcionar un ambiente adecuado,
simplificado y eficiente para administrar la informacin de la
base de datos.

Leer registro X
Calcular X=X-1000
Escribir registro X

---> Ocurre un problema y


Leer registro Y
->esta
Calcular Y=Y+1000
->esta
Escribir registro Y ->esta

Justificacin.
Uno de los objetos ms importantes de cualquier empresa es la
informacin. La informacin se almacena en una base de datos
para mantenerla ordenada y consultarla de manera rpida y
confiable. Por lo tanto, es necesario contar con un SMBD
eficiente, rpido y confiable.

Tipos de Fallas.
Existe una gran cantidad de situaciones que pueden dar origen a
una cada del sistema, algunas dependen directamente de la
persona encargada de administrar la base de datos y otras no. Las
fallas se pueden clasificar en: fallas del SMBD, fallas del Sistema
Operativo y fallas fsicas.

Gestor de la Base de Datos.


Es un mdulo del SMBD que sirve como interfaz entre el usuario
y la base de datos. El gestor de la base de datos debe cumplir con
las siguientes tareas:
1.
2.
3.
4.
5.

se detiene la transaccin
instruccin no se ejecuta
instruccin no se ejecuta
instruccin no se ejecuta

Fallas del SMBD.


Dentro de las fallas atribuidas al SMBD estn todas aquellas
fallas que tienen su origen en el interior de la base de datos o de
los programas que la manipulan, pueden ser fallas lgicas y fallas
por excepcin.

Interactuar con el gestor de archivos del Sistema Operativo.


Mantener la integridad y la disponibilidad de la informacin.
Mantener la seguridad de la informacin.
Elaborar y recuperar las copias de seguridad.
Controlar la concurrencia a la base de datos.

Las fallas lgicas pueden generarse por una validacin incorrecta


a la entrada de los datos a la base de datos. Por ejemplo, si un
campo guarda el dato sexo de un empleado debe almacenar una
letra M de masculino o una letra F de femenino. Si por error
en la entrada de datos tiene una letra C, el SMBD generar un
error lgico. Los errores lgicos que cometen los programadores
al elaborar los programas tambin se consideran fallas lgicas y
pueden generar una cada del sistema.
Cuando en uno de los programas que manipulan la base de datos
ocurre una excepcin, el SMBD genera un error y deja de
ejecutarse. La falla por excepcin ms comn en los programas
es la divisin por cero.
1

Cuando se realiza una divisin y el divisor es 0 (cero), el


programa aborta su ejecucin y despliega el error: Divide by
zero. Es recomendable verificar el valor del divisor no sea 0
(cero) antes de realizar cualquier divisin.

Estados de una transaccin.


El estado es un atributo de la transaccin que determina su grado
de ejecucin y se utiliza para conocer su situacin a travs de
todo su proceso de ejecucin.

Fallas del Sistema Operativo.


Dentro de las fallas atribuidas al Sistema Operativo estn todas
aquellas que involucran el manejo de archivos, manejo de la
interfaz con el usuario o controladores de dispositivos de
almacenamiento o de comunicacin. Pueden ser fallas en el
manejo de archivos, fallas de controlador o fallas de la interfaz de
usuario.

Activa.
Una transaccin entra en su estado activo cuando se ejecuta su
primera instruccin. Se considera una transaccin que puede
retroceder sin afectar a la base de datos.
Parcialmente cometida.
Una transaccin est en su estado parcialmente cometido cuando
ejecuta su primera operacin de escritura . Si no se ejecuta por
completo dejar inconsistente a la base de datos.

Los dispositivos de almacenamiento secundario utilizan un


mecanismo aleatorio muy complejo para guardar la informacin
por lo que puede generar errores. El caso ms comn de error en
el manejo de archivos es el vnculo cruzado, que se presenta
cuando un sector del disco duro pertenece a dos o ms archivos.

Cometida.
Una transaccin entra en su estado cometido cuando ejecuta su
ltima operacin de escritura . Si ocurre una cada del sistema
despus de sta, la base de datos no queda inconsistente.

Cuando ocurre un problema con algn controlador de dispositivo


de almacenamiento (controlador de un disco duro o de una cinta
magntica) o de comunicacin (controlador de la tarjeta de red),
el SMBD deja de operar, el sistema operativo aborta su ejecucin
y el sistema sufre una cada.

Fallada.
Si una transaccin no puede completar una de sus instrucciones
de escritura
o de lectura
, entra en un estado fallado. Si
realiz una operacin de escritura, debe retroceder y restaurar los
valores de la base de datos que modific. Si no realiz ninguna
operacin de escritura, simplemente retrocede.

Este tipo de falla se presenta cuando ocurre un error con la


interfaz del usuario debido a la configuracin incorrecta del
sistema operativo, presencia de virus informticos en el sistema,
falta de derechos del usuario sobre directorios o modificaciones
no autorizadas a los programas.

Abortada.
Cuando una transaccin ha fallado y ejecuta su ltima operacin para
restaurar los datos que modific , entra al estado abortado.

Fallas Fsicas.
Dentro de las fallas fsicas se incluyen todas aquellas fallas que
involucran al hardware, como la falta de energa elctrica, los
problemas mecnicos y los problemas de red.
El caso ms comn de la cada de sistemas es por falta de energa
elctrica. Para evitar este problema tan reincidente se recomienda
contar con un UPS (Unbreakeable Power System).
Otro causa comn por la que se presentan fallas en el sistema es
debido a problemas con los dispositivos mecnicos. Cuando
algn dispositivo de almacenamiento mecnico, de comunicacin
o de lectura/escritura externa (impresora o escner) ha fallado,
puede dar origen a una cada del sistema. Tambin cuando algn
cable de red o dispositivo de conexin sufre dao fsico, puede
generar una cada del sistema.

Recuperacin de bases de datos.


Es posible perder informacin importante de la base de datos por
causas de fallos o cadas del sistema. Un caso comn de prdida
de informacin es cuando se interrumpe la energa elctrica de un
equipo de cmputo entre dos operaciones de escritura de una
transaccin. Como ejemplo veamos el siguiente problema:

Tipos de Fallas.
Fallas del SMBD.
Lgico
Excepcin
Fallas del Sistema Operativo.
Error en el manejo de Archivos
Error de Controlador
Error de la Interfaz
Fallas Fsicas.
Energa Elctrica
Problema Mecnico
Problema con la Red

Sea la transaccin T que sustrae $1000 de la cuenta A que tiene


$8000 para pasarlos a la cuenta B con $3000. El resultado final
debe ser A con $7000 y B con $4000 si se tiene xito. Si logra
escribir en A el saldo de $7000 pero se suspende la energa
elctrica al equipo y no termina la transaccin, dejar a B con
$3000 y se perdern los $1000 que sustrajo de A.
Todo sistema de base de datos debe ser tolerante a fallos y debe
tener un esquema de recuperacin que le permita garantizar la
consistencia de la base de datos en casos de cadas del sistema.
2

Recuperacin basada en bitcora.


La tcnica ms comn para recuperar un sistema de bases de
datos es la bitcora. Consiste en un archivo en disco duro donde
se guardan las operaciones que debe realizar cada transaccin con
el propsito de mantener la consistencia de la base de datos en
caso de una cada.

2.

Despus de una cada del sistema, para cada registro en la


bitcora existen dos caminos: retroceder o terminar. En caso de
que la transaccin se qued en un estado activo (sin afectar a la
base de datos), debe retroceder. En cualquier otro caso, debe
terminarse para mantener la consistencia de la base de datos.

4.

3.

5.

Contenido de la bitcora.
Para cumplir con su propsito la bitcora debe registrar en
memoria estable cada operacin antes de realizarla en la base de
datos. Cada registro de la bitcora se compone de cuatro datos: El
identificador de la transaccin, el registro/campo que se va a
modificar, el valor actual (anterior a la transaccin) y el valor
final (despus de la transaccin).

Manejo de Registros Intermedios.


Tiene el propsito de disminuir el costo de almacenamiento de la
bitcora. La operacin de grabar un registro en memoria
secundaria (memoria estable) es muy costosa por lo que es
recomendable escribir varios registros a la vez.

Si ocurre una cada del sistema y se pierde la informacin


almacenada en la memoria voltil, la bitcora tendr un registro
con todas las transacciones que se estaban ejecutando en se
momento. Cuando el sistema se recupera, verifica en la bitcora
todas las operaciones que se quedaron pendientes y las termina de
ejecutar o las retrocede.

Cuando se utilizan registros intermedios (buffers) para optimizar


el tiempo de guardar los registros a memoria estable, la
transaccin no debe entrar en su estado de parcialmente cometida
si el registro de la bitcora no ha sido guardado en memoria
estable. Esto es, el SMBD debe asegurarse de que el registro de la
bitcora sea guardado en memoria estable antes de efectuar la
primera operacin de escritura de la transaccin.

Actualizacin diferida.
Consiste en aplazar las operaciones de escritura y ejecutarlas al
mismo tiempo antes de terminar la transaccin con el propsito
de garantizar la atomicidad. Esto reduce la probabilidad de que
ocurra un fallo del sistema entre la primera y la ltima operacin
de escritura.

Doble paginacin.
La doble paginacin se utiliza para tener dos opciones para cada
registro de bitcora al momento de recuperarse de una cada del
sistema: retroceder o completar. Esto disminuye el tiempo de
recuperacin del sistema.

Actualizacin no diferida.
Consiste en ejecutar todas las operaciones de una transaccin de
manera secuencial, sin aplazamientos. Entre mayor sea el tiempo
que transcurra entre la primera y la ltima operacin de escritura
de una misma transaccin, mayor ser la probabilidad de que el
fallo ocurra entre ellas.

Para iniciar el proceso de doble paginacin, el SMBD debe


realizar los siguientes pasos:
1.
2.

Puntos de verificacin.
El fallo del sistema puede ocurrir en cualquier momento de la
ejecucin de la transaccin, ya sea al leer o escribir en la base de
datos o en la bitcora. Si la cada del sistema se presenta cuando
se est escribiendo el registro en la bitcora, puede dejar a la
misma bitcora en estado inconsistente y generar errores.

3.

Asegurarse de que todas las pginas de los registros


intermedios modificadas sean guardadas en memoria estable.
Guardar en memoria estable la tabla de paginacin original
que contiene el registro de bitcora.
Pasar la informacin de la tabla de paginacin original a la
tabla de paginacin doble. Con esta operacin se inicia el
proceso de doble paginacin.

Si la cada ocurre antes de completar el paso 3, procede la accin


retroceder para volver al estado que tena la base de datos antes
de iniciar la transaccin. Si la cada ocurre despus de completar
el paso 3, los efectos de la transaccin se conservarn y procede
la accin completar para terminar de ejecutarla.

Para evitar este problema, se puede utilizar la tcnica de puntos


de verificacin que tiene el propsito de disminuir el costo de
recuperacin. Existen cinco puntos de verificacin basados en el
estado en que qued la transaccin antes de la cada del sistema:
1.

Si la transaccin qued en estado parcialmente ejecutado,


quiere decir que efectu por lo menos una operacin de
escritura. Al recuperar el sistema debe consultar la bitcora
para terminar la transaccin y pasar al estado cometido.
Si la transaccin qued en estado cometido, quiere decir que
ejecut todas sus operaciones de escritura y simplemente se
elimina su registro de la bitcora para finalizarla.
Si la transaccin qued en estado fallado, quiere decir que
debe retroceder. Para esto, debe consultar la bitcora para
restablecer los datos que modific y dejar a la base de datos
tal como estaba entes de la transaccin.
Si la transaccin qued en estado abortado, quiere decir que
esta transaccin fall y, si realiz alguna modificacin, ya la
restableci y slo se debe eliminar su registro de l a bitcora.

Si la transaccin qued en estado activo, quiere decir que no


ha modificado ningn dato en la base de datos. Al recuperar
el sistema, esta transaccin puede pasar directamente al
estado fallado y seguidamente al estado abortado para
finalizar sin ejecutar ninguna operacin.
3

UNIDAD II.
SEGURIDAD E INTEGRIDAD.

Autorizacin a la base de datos.


Consiste en restringir las actividades de los usuarios dentro de la
base de datos. Un usuario puede tener uno de estos derechos
sobre la base de datos o una combinacin de ellos. Las formas
tpicas de autorizacin y restriccin son:

Seguridad de la Base de Datos.


La base de datos debe estar completamente protegida contra la
copia, la modificacin o la destruccin no autorizada de la
informacin.

1.

Problemas de Inconsistencia.
La inconsistencia es el estado de la informacin despus de sufrir
alteraciones no autorizadas por el propietario. Estas alteraciones
pueden ser intencionales o accidentales debidas a:
1.
2.
3.
4.

2.
3.
4.

Modificaciones no autorizadas a la informacin.


Cada durante el procesamiento de una transaccin.
Anomalas por el acceso concurrente a los registros.
Errores lgicos que violan las polticas de la base de datos.

Autorizacin de lectura. Le permite al usuario leer la base de


datos, pero no le permite agregar, eliminar ni modificar.
Autorizacin de insercin. Le permite al usuario agregar
registros, pero no le permite ver, eliminar ni modificar.
Autorizacin de actualizacin. Le permite al usuario leer y
modificar la base de datos, pero no puede borrar ni agregar.
Autorizacin de borrado. Le permite al usuario eliminar
registros, pero no le permite ver, agregar ni modificar.

Autorizacin al esquema de la base de datos.


Tambin es posible autorizar a los usuarios a modificar el
esquema de la base de datos. En ocasiones es necesario autorizar
a los usuarios a modificar la estructura de la base de datos para
que puedan cumplir con sus tareas:

Es difcil prevenir las modificaciones no autorizadas a la


informacin de la base de datos y que pueden generar un estado
de inconsistencia. Aunque el robo de la informacin puede
implicar un costo para el propietario, no ocasiona inconsistencia.
Tampoco es posible proteger de manera absoluta a la base de
datos, pero puede implementarse un mtodo de seguridad que
dificulte las modificaciones no autorizadas.

1.
2.
3.
4.

Autorizacin de ndice. Permite la creacin y eliminacin de


ndices de ordenamiento de la base de datos.
Autorizacin de relaciones de datos. Permite crear, eliminar
o modificar relaciones entre las tablas de una base de datos.
Autorizacin de estructura. Permite agregar, eliminar o
modificar los campos de las tablas de una base de datos.
Autorizacin de tablas. Permite agregar o eliminar tablas de
la base de datos.

Vista.
Una vista es una forma de proporcionar al usuario un modelo
personalizado de la base de datos. Una vista permite ocultar datos
que el usuario no tiene la necesidad de ver. Por ejemplo, en un
hospital el contador no necesita ver la parte clnica del expediente
y un doctor no tiene necesidad de ver la parte contable.

Niveles de Seguridad.
Para proteger una base de datos de alteraciones indebidas es
necesario adoptar medidas de seguridad en varios niveles: fsico,
humano, sistema operativo y SMBD.

Limitantes de integridad.
Las limitantes de integridad proporcionan un medio para asegurar
que las modificaciones a la base de datos realizadas por usuarios
autorizados no resulten en una estado de inconsistencia. Estas
consisten en limitantes de dominio, limitantes referenciales y
limitantes funcionales.

El nivel Fsico corresponde a los locales donde se encuentra el


equipo de cmputo que almacena la informacin o proporciona
acceso a la base de datos.
El nivel Humano corresponde a los derechos otorgados a los
usuarios, deben ser confiable. No se deben proporcionar derechos
a usuarios que no son de confianza para el propietario.

Limitantes de dominio.
Consisten en especificar el rango de valores permitidos para cada
campo. Estos valores de rango sern utilizado para validar que las
entradas de usuario sean consistentes.

El nivel de Sistema Operativo consiste en tener un sistema de


seguridad robusto que no permita el acceso a intrusos. Dado que
la mayora de los SMBD permiten el acceso remoto a travs de
redes, este nivel de seguridad es tan importante como la
seguridad fsica.

Limitantes referenciales.
Consisten en validar las referencias en la base de datos. Esto es,
para cada registro que contiene una referencia a otro registro de
la base de datos realmente existan ambos, el registro que realiza
la referencia y el registro que la recibe.

El nivel de SMBD consiste en que el entorno del SMBD debe


proporcionar la seguridad suficiente para proteger la base de
datos de modificaciones de usuarios legtimos, debe evitar que las
personas encargadas de manejar el sistema cometan errores de
mecanografa o de concepto, ya que pueden cometer errores al
introducir o modificar la informacin.

Limitantes funcionales.
Consisten en determinar cuales son las relaciones no permitidas
dentro del esquema de la base de datos. De la misma manera, se
pueden especificar cules son las condiciones que siempre se
deben de cumplir en una base de datos.
4

Disparador.
Es un proceso que se activa automticamente cuando la base de
datos cumple con un conjunto de condiciones especfico
previamente definido. Por ejemplo, si en la base de datos de un
banco un cliente obtiene de alguna manera un saldo negativo, se
activa un disparador para agregarlo como un registro en la tabla
de deudores.

Bases de datos estadsticas.


Es posible robar informacin de una base de datos utilizando
tcnicas estadsticas. Consideremos el siguiente ejemplo: existe
una base de datos con los saldo de n clientes. El SMBD permite
consultas de parte de cualquiera de estos clientes. A cada cliente
se le permite ver nicamente su propio saldo y los totales de
distintos grupos de clientes. Con esto se protege que un cliente
conozca el saldo de otro cliente.

Para instalar un disparador en una base de datos se deben


especificar los siguientes puntos:
1.
2.

Este supuesto de seguridad de la base de datos es falso. Sea x el


total de los saldos de n clientes. Sea y el total de los saldos de los
n clientes mas la cuenta del cliente de quien se desea conocer su
saldo. El saldo que se quiere conocer es: y x.

Se deben definir con precisin las condiciones que se deben


cumplir en la base de datos para activar el disparador.
Se deben determinar las acciones a tomar cuando se active el
disparador.

Confiabilidad.
Se dice que un Sistema Manejador de Bases de Datos (SMBD) es
confiable si produce resultados correctos. Es difcil definir si un
SMBD es confiable. Existen dos mtodos para verificar la
confiabilidad de un SMBD:

Cifrado de datos.
Es una tcnica que permite modificar la informacin para
ocultarla de la comprensin natural humana y proporcionar
seguridad al exponerla pblicamente.

1.

En algunas ocasiones no es posible evitar que la informacin se


encuentre a la vista de personas no autorizadas, como en el caso
de viajar a travs de una red o de encontrarse en un equipo
accesible al pblico. En estos casos, para evitar que personas no
autorizadas tengan acceso a la informacin es recomendable
cifrar los datos.

2.

Existen muchas tcnicas de cifrado de datos que van desde


simple sustituciones hasta tcnicas complejas de cifrado. Veamos
los siguientes ejemplos, el primero de ellos es relativamente fcil
de descifrar, pero el segundo tiene un alto grado de complejidad.
INSTITUTO
INSTITUTO

Redundancia.
Una rplica o copia de la base de datos (o parte de ella) puede ser
til para la seguridad del sistema en varios casos:

JOTUJUVUP
XSEUTXSSAR

Para que una tcnica de cifrado sea considerada de buen nivel


debe cumplir con las siguientes caractersticas:
1.
2.
3.
4.
5.

Clculos Muestra. Consiste en realizar unos cuantos clculos


de muestra y verificar que los resultados sean correctos. Esta
es la tcnica de verificacin ms utilizada, puesto que es la
ms sencilla.
Anlisis de la estructura. Consiste en analizar la estructura
del SMBD y asegurarse de que las secuencias de
instrucciones de todos los programas sea correcta. Implica
revisar que todo ciclo cumplir su condicin de terminacin,
que cada mecanismo de seleccin cubra todas las opciones
que se puedan presentar. Este mtodo es mucho ms costoso
que el anterior, pero es ms confiable.

1.
2.

Para los usuarios autorizados es sencilla la lectura y la


escritura de datos.
El esquema de cifrado no depende de mantener oculto el
algoritmo, sino de un parmetro llamado clave de cifrado.
Para un usuario no autorizado es muy difcil determinar cul
es la clave de cifrado.
El costo del algoritmo de cifrado es aceptable en trminos de
tiempo y memoria.
Se basa tanto en la sustitucin de caracteres como en alterar
su orden.

3.

Como respaldo inactivo de la base de datos.


Como respaldo con posible activacin si el sistema sufre
alguna falla.
Como informacin de consulta adicional cuando la cantidad
de usuarios que acceden a la base de datos es muy grande.

Es importante que el respaldo se encuentre en un equipo distinto


a aqul en el que se encuentra la base de datos original. Esto es
con el propsito de tener seguro el respaldo en caso de que las
instalaciones sufran un dao catastrfico.
Depuracin de SMBD.
Algunas bases de datos deben estar siempre en lnea. En estos
casos, cuando se introducen nuevos programas (o corregidos) a
un SMBD se corre el riesgo de poner en un estado inconsistente a
la base de datos. Para garantizar la consistencia de la base de
datos, los nuevos programas se deben depurar. Existen dos
formas de depurar los nuevos programas de un SMBD:

Es comn que las claves de cifrado utilicen tcnicas conocidas en


otros campos tales como las matemticas. Un ejemplo es el uso
de nmeros primos, para los cuales no existe una frmula directa
pero es relativamente fcil conocerlos.
Si utilizamos el producto de dos nmeros primos como clave de
cifrado, es fcil calcularlo. Pero es difcil encontrar cules son
esos dos nmeros primos y buscarlos implica probar distintas
combinaciones de nmeros primos lo que puede llevar varios
meses o aos de cmputo.

1.
2.

Trabajar a altas horas de la noche cuando los usuarios son


prcticamente nulos.
Realizar una copia de la base de datos y realizar las pruebas
de los nuevos programas sin afectar a la base de datos
original.

UNIDAD III.
CONCURRENCIA.

Dependencia no comprometida.
Cuando una transaccin modifica un registro de la base de datos
y este registro es ledo por una segunda transaccin
inmediatamente despus, si la primera transaccin retrocede y
anula las modificaciones que realiz, la segunda operar con
datos incorrectos. Ejemplo:

Concurrencia en Bases de Datos.


Se presenta cuando dos o ms transacciones acceden al mismo
registro de la base de datos. La concurrencia se convierte en un
problema cuando ms de una transaccin requieren modificar
dicho registro.

Transaccin A
Leer registro X
Calcular X=X+100
Escribir registro X
------------------Retroceder
-------------------------------------

Existen tres casos en los cuales las operaciones de lectura o


escritura de transacciones concurrentes pueden dejar a la base de
datos en un estado inconsistente:
1.
2.
3.

Modificacin perdida
Dependencia no comprometida
Anlisis inconsistente

Modificacin Perdida.
Cuando las operaciones de lectura escritura
transacciones se ejecutan de forma alternada y
modificaciones sobre un mismo registro de la base de
primera operacin no tiene ningn efecto ya que la
cancela a la primera. Ejemplo:
Transaccin A
Leer registro X
Calcular X=X+100
------------------Escribir registro X
-------------------------------------

t
t1
t2
t3
t4
t5
t6

Transaccin B
------------------------------------------------Leer registro X
----------------Calcular X=X-10
Escribir registro X

Bloqueo de compromiso.
Para solucionar este problema se utiliza la tcnica de
modificacin comprometida, que consiste en mantener un
bloqueo de tipo comprometido al registro que se liber del
bloqueo exclusivo hasta terminar la transaccin con xito o hasta
restaurar los datos modificados si la transaccin retrocedi.

de dos
realizan
datos, la
segunda

Anlisis Inconsistente.
Se presenta cuando una transaccin modifica un registro de la
base de datos que est siendo utilizado por otra transaccin.
Ambas transacciones termina, pero dejan a la base de datos en un
estado inconsistente. Ejemplo:

Transaccin B
--------------------------------Leer registro X
----------------Calcular X=X-10
Escribir registro X

Transaccin A
Leer registro X
Calcular Z=X
------------------------------------------------------Leer registro Y
Calcular Z=Z+Y
------------------------------------------------------Escribir registro Z

Sea el valor inicial del registro X era 1000, al final


de las dos transacciones su valor debe ser 1090. Al
ejecutarse las dos transacciones de manera alternada,
podemos ver en t3 que ambas transacciones han ledo el
mismo valor, la transaccin A escribe 1100 en X y la B
sobre escribe con 990. El valor final y definitivo del
registro X es 990, la operacin de la Transaccin A se
pierde.

Una forma de solucionar este problema es utilizando bloqueos a


los registros utilizados de la base de datos. Existen dos tipos de
bloqueos:
1.
2.

t
t1
t2
t3
t4
t5
t6
t7

t
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11

Transaccin B
--------------------------------Leer registro Y
Calcular Y=Y-10
Escribir registro Y
--------------------------------Leer registro X
Calcular X=X+10
Escribir registro X
-----------------

Bloqueo de Dos Fases.


Para evitar este tipo de problemas, se utiliza la tcnica de
bloqueo de dos fases que consiste en que cada transaccin
realiza todas las solicitudes de bloqueo en una primera fase y
realiza la liberacin de bloqueos en una segunda fase.

Bloqueo compartido
Bloqueo exclusivo.

Bloqueo compartido.
Se utiliza para operaciones de slo lectura. Si no se realizarn
modificaciones al registro, este puede ser compartido con otras
transacciones.

La primera fase, conocida como fase de crecimiento, consiste en


solicitar todos los bloqueos necesarios para sus operaciones, pero
no puede liberar ninguno.
La segunda fase, conocida como fase de encogimiento, consiste
en liberar todos los bloqueos adquiridos en la primera fase, pero
no puede solicitar ningn bloqueo nuevo.

En los manejadores de bases de datos comerciales, el bloqueo


compartido no se utiliza ya que equivale a no bloquear un
registro. Bloquearlo de manera compartida es equivalente a no
bloquearlo.

BloqueoMutuo.
Conocido como DeadLock, se presenta en bases de datos
cuando dos o mas transacciones concurrentes entran en un estado
de espera simultneo, y cada transaccin espera la liberacin de
un bloqueo por parte de otra para poder continuar. Todas las
transacciones participantes quedan suspendidas por tiempo
indefinido.

Bloqueo exclusivo.
Se utiliza para operaciones de escritura. Cuando se accede al
registro para modificarlo, es necesario bloquearlo completamente
para evitar problemas de inconsistencia de los datos.

Deteccin y Recuperacin del bloqueo mutuo.


La tcnica ms comn utilizada para detectar el bloqueo mutuo se
llama Time Out y consiste en especificar un tiempo suficiente
para que la transaccin se ejecute por completo. Si la transaccin
no termina en ese tiempo, se supone que ocurri un bloqueo
mutuo.

Este problema se presenta en muchos sucesos de la vida


cotidiana, como ejemplo tenemos la paralizacin del trfico
debido al bloqueo mutuo:

Es la tcnica ms sencilla de implementar, pero es muy costosa


desde el punto de vista del tiempo de espera para detectar y
suponer que ha ocurrido un bloqueo mutuo. Si el bloqueo mutuo
ocurre inmediatamente despus de iniciarse la transaccin, se
debe esperar el tiempo necesario para suponer que ocurri el
bloqueo mutuo. Este tiempo perdido hace costosa a esta tcnica.
Adems, si una transaccin no termina de ejecutarse en se
tiempo, se supondr que participa en un bloqueo mutuo y ser
sacrificada. As que, es posible sacrificar transacciones inocentes
al suponer el bloqueo mutuo. Tambin es posible que existan
transacciones que nunca terminarn de ejecutarse. Esto es, si una
transaccin requiere ms tiempo para ejecutarse, al terminar su
tiempo siempre retrocede y nunca terminar con xito.
El siguiente ejemplo presenta un bloqueo mutuo de dos
transacciones cuando ambas requieren acceder a los mismos dos
registros de la base de datos. Sean las transacciones A y B:
Transaccin A
Leer registro X
Leer registro Y
Calcular Z=X+Y
Escribir registro Z

La mejor tcnica para detectar el bloqueo se denomina Tabla de


Bloqueo y consiste en construir una tabla de datos donde se
especifica quien espera a quien. Mediante esta tabla se puede
detectar con mayor precisin y rapidez el bloqueo mutuo.

Transaccin B
Leer registro Y
Leer registro X
Calcular Q=Y+X
Escribir registro Q

Una vez detectado, es necesario recuperar el bloqueo mutuo, para


lo cual se debe sacrificar una de las transacciones participantes.
La transaccin seleccionada se etiqueta como vctima de
bloqueo mutuo y ser responsabilidad de la aplicacin manejar
el problema de una manera elegante y discreta. La transaccin
vctima puede reiniciarse ms tarde, suponiendo que las
condiciones que propiciaron el bloqueo mutuo no se presentarn
esta vez.

A ejecutarse de manera alternada, entran en un estado de espera


simultneo por tiempo indefinido:
Transaccin A
Bloquear registro X
Leer registro X
------------------------------------Espera por Y
-------------------

t
t1
t2
t3
t4
t5
t6

Transaccin B
--------------------------------Bloquear registro Y
Leer registro Y
----------------Espera por X

Protocolo basado en hora de entrada.


Es una tcnica para el manejo de concurrencia en bases de datos
con la caracterstica de utilizar la hora de entrada de la
transaccin al sistema como ndice de ordenamiento en la cola de
ejecucin. Existen dos tcnicas para implementar este esquema:

Existen dos estrategias para tratar con el bloqueo mutuo: se puede


prevenir o se puede detectar y recuperar.

El primero consiste en que el protocolo basado en hora de entrada


obtiene la hora del reloj de la computadora que almacena la base
de datos para asignar el turno de servicio a cada nueva
transaccin.

Prevencin del bloqueo mutuo.


La tcnica ms comn para prevenir situaciones de bloqueo
mutuo es el bloqueo de dos fases, que consiste en que cada
transaccin solicita todos los bloqueos necesarios antes de
comenzar a ejecutarse. Si no consigue bloquear todos los
registros necesarios en la primera fase, debe retroceder liberando
todos los registros bloqueados hasta ese momento. Despus de un
corto perodo de tiempo, la transaccin debe intentar ejecutarse
de nuevo. Sin embargo, esta estrategia tiene dos desventajas
importantes:
1.
2.

El segundo consiste en asignarle un nmero consecutivo a cada


transaccin para construir la cola de servicio. Esta tcnica es
mucho ms rpida que la anterior, ya que la computadora tarda
mucho tiempo en obtener la hora del sistema y compararlas cada
vez que se presente la concurrencia de dos o mas transacciones.
Es mucho ms rpido asignar un nmero entero y compararlos.

La utilizacin de los datos puede ser muy baja, puesto que


muchos datos estarn bloqueados por largo tiempo sin
aprovecharlos.
La posibilidad de inanicin, cuando una transaccin necesite
bloquear varios registros muy solicitados puede que tenga
que esperar mucho tiempo, por que al menos uno de esos
registros siempre se asigna a otra transaccin.

Esta tcnica elimina el problema de la baja tasa de utilizacin de


los datos: se pierde ms tiempo poniendo y quitando bloqueos
que utilizando la informacin de los registros. Al atender las
transacciones segn el orden de llegada, disminuye el tiempo
utilizado para poner y quitar bloqueos, lo que permite aumentar
la tasa de utilizacin de los datos.
7

UNIDAD IV.
BASES DE DATOS DISTRIBUIDAS.

Configuraciones de un Sistema Distribuido.


Al configurar la distribucin fsica de los nodos de un sistema
distribuido se deben tomar en cuenta los siguientes puntos:

Base de Datos Distribuida.


Es un conjunto de archivos relacionados entre s, ubicados en
sitios remotos y enlazados por medio de una red de comunicacin
que almacenan informacin referente a un universo especfico,
acotado y ordenado.

1. Costo de la instalacin
2. Costo de comunicacin
3. Fiabilidad de la red
4. Disponibilidad de los datos
En base a estos puntos, un sistema distribuido se puede
configurar de distintas maneras.

Sistema Manejador de Bases de Datos Distribuidas (SMBDD).


Es un conjunto de programas que permite manipular una base de
datos distribuida con la posibilidad de manejar distintos tipos de
mquinas, diferentes formatos de bases de datos y varias
plataformas de sistemas operativos de manera transparente para
el usuario.
Un Sistema Distribuido es til cuando las fuentes o los destinos
de la informacin se encuentran en sitios remotos; proporcionan
muchos beneficios y disminuyen los costos del manejo de la
informacin.
Localidad.
Es una computadora, un servidor o un sitio donde se almacena o
procesa informacin que pertenece a un sistema distribuido. A la
localidad tambin se le denomina nodo. Cada localidad mantiene
un sistema de bases de datos local y puede procesar transacciones
locales y globales.
Transaccin Local.
Se considera que una transaccin es local cuando requiere
acceder a un solo sitio para obtener la informacin necesaria para
ser procesada.

Diseo de una BDD.


Una Base de Datos Distribuida presenta cualidades que permiten
mejorar el desempeo de un sistema distribuido: Repeticin y
Fragmentacin. La repeticin y la fragmentacin de la
informacin permite mayor disponibilidad de la informacin,
existe un paralelismo en el sistema distribuido, aunque esto
representa un mayor tiempo al actualizar los datos. La
fragmentacin puede ser horizontal, vertical o mixta.

Transaccin Global.
Se considera que una transaccin es global cuando requiere
acceder a mas de un sitio para obtener la informacin requerida
para su procesamiento.
Consideraciones de una BDD.
Es recomendable tomar en cuenta las siguientes consideraciones
antes de distribuir una base de datos. Estas consideraciones
pueden clasificarse como ventajas y desventajas. Entre las
ventajas de distribuir una base de datos se pueden mencionar:

La fragmentacin horizontal consiste en dividir una tabla


mediante la clasificacin de registros. Esto es, si un banco tiene
dos sucursales puede clasificar a sus clientes por la sucursal a la
que pertenecen y almacenar su informacin en una tabla
fragmentada horizontalmente, donde los clientes de cada sucursal
se encuentran en el sitio local de cada sucursal.

1. Compartir informacin, equipo y otros recursos


2. Distribuir informacin y responsabilidades
3. Fiabilidad y robustez en el funcionamiento del sistema
4. Disponibilidad de la informacin y otros recursos
5. Rapidez para manejar informacin

La fragmentacin vertical consiste en dividir una tabla tomando


en cuenta sus campos. Por ejemplo, una empresa con muchos
empleados puede tener su informacin general (RFC, nombre,
direccin, etc.) en un fragmento y en otro tener sus datos
laborales (fecha de ingreso, puesto, sueldo, etc.).

Entre las desventajas de una base de datos distribuida se pueden


mencionar las siguientes:

La fragmentacin mixta es una combinacin de fragmentacin


vertical con horizontal. Esta opcin es la menos utilizada debido
a la complejidad de localizacin y validacin de las copias y
fragmentos de una BDD.

1. Mayor costo en el desarrollo y mantenimiento del software


2. Incremento las posibilidades de errores
3. Ms tiempo de procesamiento

Requisitos de un SMBDD.
Desde el punto de vista del diseo, un Sistema Manejador de
Bases de Datos Distribuidas es muy complejo por que debe
cumplir con los siguientes requisitos:
1.
2.
3.

4.
5.
6.

7.
8.
9.
10.

11.
12.
13.

Cualquier usuario puede solicitar una consulta distribuida, la cual


no est necesariamente expresada de manera ptima. El sistema
debe encargarse de transformar la consulta del usuario en una
expresin equivalente que permita ejecutarla de manera eficiente.

Transparencia. Para cualquier usuario debe ser transparente


el tipo de mquina, el formato de la base de datos, el sistema
operativo y el protocolo de red. Debe parecer no distribuido.
Autonoma. Cualquier sitio debe ser independiente del resto
de la red de trabajo. Si falla la red de comunicacin, el sitio
debe seguir trabajando utilizando la informacin local.
Descentralizado. No debe existir un sitio central, ya que este
puede convertirse en un cuello de botella o desestabilizar al
sistema si falla. La comunicacin se realiza de punto a punto
entre los nodos de la red.
Operacin Continua. No debe requerir inmovilizar todo el
sistema para agregar un nuevo sitio, dispositivo o programa.
Localizacin independiente. No debe ser necesario que el
usuario conozca la ubicacin fsica de los datos.
Fragmentacin independiente. Un sistema distribuido
soporta fragmentacin si permite manejar tablas de datos
divididas y localizadas en sitios distintos. Los fragmentos
trabajan de manera independiente del resto.
Rplicas independientes. Una rplica es una copia de un
archivo de un sitio distinto. Cada rplica trabaja de manera
independiente del resto.
Consulta distribuida. El sistema de consultas debe trabajar
con varios sitios, fragmentos y rplicas de manera
transparente para el usuario.
Manejo de transacciones distribuidas. El sistema
distribuido debe manejar la concurrencia y la atomicidad de
las transacciones.
Dispositivos independientes. Debe tener la capacidad de
trabajar con diferentes tipos de dispositivos: computadoras,
impresoras, escneres, dispositivos de almacenamiento,
dispositivos de control, entre otros.
Independencia del Sistema Operativo. Debe ser capaz de
trabajar sobre cualquier plataforma de sistema operativo de
manera transparente para el usuario.
Independencia de red. Debe ser independiente del
protocolo de red, debe tener la capacidad de trabajar con
diferentes protocolos de red.
Independencia de SMBD. Un Sistema Manejador de Bases
de Datos Distribuidas (SMBDD) debe tener la capacidad de
comunicar distintos Sistemas Manejadores de Bases de
Datos (SMBD).

Catlogo del Sistema Distribuido.


Contiene informacin acerca de la localizacin fsica de las
rplicas, los fragmentos, el contenido, las relaciones, los ndices,
los usuarios y las vistas. El catlogo puede ser de varios tipos:
Centralizado. Se encuentra almacenado en un sitio donde
recurren todas las consultas distribuidas para verificar la
localizacin fsica de los datos. Esto se convierte en un cuello de
botella cuando existen muchas transacciones a la vez.
Fragmentado. Es un conjunto de fragmentos de un catlogo
principal que se encuentran en sitios distintos.
Replicado. Es una copia de un catlogo que cumple el propsito
de eliminar el cuello de botella. Los catlogos fragmentados y
replicados tienen la desventaja de ser distribuidos encima de un
sistema distribuido, lo que aumenta la complejidad.
Dividido. Cada sitio contiene informacin sobre s mismo. Al
procesar una consulta distribuida se deben consultar todos los
sitios para localizar los datos de la consulta, lo que conlleva en un
incremento en el trfico de la red.
Combinado. Se conforma por un sitio central que contiene
informacin sobre los catlogos locales de cada sitio.
Propagacin de Actualizaciones.
Cuando existen rplicas de una base de datos en un sistema
distribuido, la propagacin de actualizaciones debe cumplir con
el requisito de atomicidad: Se actualizan todas las rplicas de la
base de datos o ninguna.
Cumplir con el requisito de atomicidad implica una violacin al
requisito de autonoma: una transaccin puede fallar localmente
si una de las copias no logra actualizarse.

Problemas de los Sistemas Distribuidos.


La mayor cantidad de los problemas de los sistemas distribuidos
se centran en la red de comunicacin: son lentas, complejas y, a
menudo, presentan fallas. Por esta razn, un SMBDD debe ser
robusto: tolerante a fallas en la red de comunicacin.
Procesamiento de Consultas Distribuidas.
El objetivo es reducir al mnimo el trfico de datos a travs de la
red de comunicacin, para lo cual es necesario contar con un
proceso ptimo para manejar consultas distribuidas.
9

Вам также может понравиться