Bases de Datos Multiusuario
Bases de Datos Multiusuario
Bases de Datos Multiusuario
DE DATOS MULTIUSUARIO
empresas.
Mucha más importante que su uso, es el diseño de la misma por parte de los
analistas, debido a que manejan mucha concurrencia por parte de los usuarios y las
transacciones que realizan. Por otra parte, los requerimientos cambian con el tiempo
base de datos. Estos cambios se deben manejar con sumo cuidado para que un ajuste
Las bases de datos se han convertido en uno de los componentes esenciales de los
procesos de una organización. Por desgracia, las bases de datos están propensas a
1
Administración de la Base de Datos
específica para una base de datos en particular, incluyendo las aplicaciones que la
procesan.
Las bases de datos varían una de otra en cuando a tamaño y alcance, pero todas
inglés).
más complicada y conlleva un mayor trabajo. Para algunas aplicaciones esta labor
Por lo general, esto significa balancear las metas conflictivas de protección de la base
2
Administración de la Estructura de la Base de Datos
Control de Configuración
políticas por medio de las cuales los usuarios puedan registrar sus necesidades de
ocasionar un cambio y pasar primero por un ambiente de pruebas que no afecte los
procedimientos en producción.
Documentación
desde el diseño inicial, así como cada uno de los cambios que vaya sufriendo la
3
misma a lo largo de su uso. Un simple ajuste a la estructura de la base de datos
Control de Concurrencia
esto provocaría por ejemplo que los datos correctos no queden registrados ya que
para todas las circunstancias. Todas implican decidir entre varias alternativas. Por
ejemplo, una alternativa es aplicar locks (boqueos) a la base de datos completa, pero
esto implica que mientras esté trabajando con ésta, nadie más podría trabajar; esta
es una protección muy eficaz, pero a muy alto precio (ya no sería una base de datos
multiusuario como tal). También hay otras medidas que permiten un rendimiento
muy eficaz, pero con un nivel bajo de concurrencia. Cuando se diseñan aplicaciones
de concurrencia.
4
Transacciones Atómicas
datos, de tal forma que todas se ejecuten con éxito o bien que ninguna se ejecute por
Suponga que falla el último paso de la secuencia, talvez porque no hay suficiente
que nunca recibió y al vendedor se le pagaría una comisión por un pedido que
nunca se envió. Para solucionar este problema, se debe considerar estos tres pasos
como una transacción atómica, que se ejecuten las tres o bien que no se lleve a cabo
ninguna de ellas.
Son las transacciones que se ejecutan en una base de datos “al mismo tiempo”.
Aunque parezca que se ejecutan en el mismo momento, esto no es del todo cierto
ya que al final el CPU de la máquina que está procesado la base de datos, sólo
ejecuta una instrucción a la vez. Los que sí podría pasar es que cada uno de los
5
procesos de diferentes transacciones en diferente orden, pero siempre ejecutando
cabo las mismas acciones, pero con el usuario B. La CPU procesa los del usuario A
hasta que encuentra una interrupción de I/O o alguna otra causa de retraso;
lo del usuario B hasta que encuentre otra interrupción, en este punto vuelve a pasar
6
Problema de Pérdidas en la Actualización
Pero si se considera un caso en el que ambos usuarios trabajan con el mismo artículo
En este caso, vamos a supones que cuando se realiza la lectura del usuario A, el
sistema obtiene que existen 10 unidades del artículo 100, posteriormente ingresa la
lectura del usuario B que de igual manera el sistema indica que existen 10 unidades.
El sistema ejecuta las demás acciones del usuario A, donde se reduce la cantidad en
7
usuario B – que ya había leído la cantidad actual en 10 – se reduce en 3 unidades el
artículo 100 y rescribe la nueva cantidad que en este caso sería siete. Aquí se muestra
mismo registro cuando se van a actualizar datos, a este proceso se le denomina Lock
Lock de Recursos
Este proceso se le conoce como un Lock de Recursos. Con este tipo de bloqueo en
una transacción concurrente, usa acción deberá esperar a que otra haya terminado
8
Ilustración 3 Procesamiento concurrente con locks
Como se ilustra la imagen 3, la transacción del usuario B debe esperar hasta que el
usuario A haya terminado con los datos del artículo 100. Usando esta estrategia, el
usuario B puede leer el registro del elemento 100 sólo después que el usuario A haya
Existen dos tipos de bloqueos o locks. Los locks implícitos los maneja el DBMS y
son colocados de forma automática. Los locks explícitos son indicados por el
puede ni siquiera tener acceso para lectura. Los locks compartidos impide que se
acciones dentro de una transacción concurrente que compiten por datos o bien se
Suponga que el usuario A quiere ordenar papel y si lo puede obtener también desea
obtener algunos lápices. El usuario B desea obtener algunos lápices y si los puede
DEADLOCK, cada uno está esperando un recurso que el otro bloqueó. Hay dos
maneras de evitar este problema: evitar que el deadlock ocurra o bien dejar que
10
Casi todos los DBMS tienen algoritmos para detectar el deadlock. Cuando éste
ocurre la solución más común es revertir una de las transacciones para eliminar el
Los locks o bloqueos se pueden aplicar en dos estilos diferentes. Con el uso del lock
optimista, se debe suponer que no va a ocurrir ningún conflicto. Los datos se leen,
Transacciones Consistentes
ACID (Atomic, Consistent, Insolated and Durable por sus siglas en inglés) que es
ejecuta ninguna. Una transacción persistente o durable es aquella para la que todos
proporcionará las facilidades para recuperar los cambios de todas las acciones
instrucción SQL
11
Update cliente set codigo_area = ‘425’ where codigo_postal = ‘925’
Ahora suponga que la tabla de CLIENTES tiene 500.000 registros y que sólo 200 de
éstos tienen el código postal igual a 925. Al motor de base de datos le tomará tiempo
en ubicar estos 200 registros; durante este tiempo de procesamiento puede que otras
actualización se aplicará para indicar que los registros como éstos existen en el
independiente los registros consistentes, pero los cambios de otros usuarios de estos
actualizaciones, pero existe otro problema que no pueden evitar. Se dice que existe
una lectura sucia cuando una transacción lee un registro cambiado que no ha sido
cuando una transacción relee datos que fueron leídos con anticipación y encuentra
último, están las lecturas fantasmas que ocurren cuando una transacción relee los
12
datos y encuentra que existen nuevos registros que fueron agregados como
El estándar ANSI SQL define cuatro niveles de aislamientos, que especifica cuál de
administración de los locks del DBMS, así como lograr el nivel de aislamiento.
El objetivo es asegurar que para la base de datos sólo usuarios autorizados puedan
Por ejemplo, en una base de datos de una organización que tiene como
podría establecer seguridad por usuarios de manera que las personas que trabajan
13
registros ni mucho menos a realizar estos procesos en oreo departamentos como
Ventas o Clientes.
Siempre deberá existir un administrador del sistema que debería tener permisos
irrestrictos sobre todos los datos, esta entidad podrá crear, actualizar, leer y eliminar
otorgar permiso a otros usuarios, así como los permisos de modificar la estructura
de la base de datos.
Los permisos se pueden otorgar por persona o usuario de forma individual o bien
correctamente. Posterior a una falla, los usuarios deben saber qué hacer cuando el
sistema vuelva a estar disponible, quizá sea necesario ingresar datos nuevamente y
los usuarios necesitan saber que tanto necesitan regresar a sus procesos para la
inclusión de estos datos. Después de una falla en el sistema hay dos posibles vías
14
que se pueden tomar: recuperar a través de reprocesamiento y recuperar a través
de revertir/avanzar (rollback/rollforward).
se han procesado desde el último respaldo. Así cuando se presenta una falla, el
Otra opción de recuperación ante una falla es hacer un respaldo de la base de datos
la base de datos con las transacciones. Si se presenta un fallo, se puede optar por
falla se reinician.
Aparte de las funciones propias del manejo de los datos y su estructura, el DBA
recopilar y analizar estadísticas del desempeño de los sistemas, así como identificar
15
las áreas de posibles problemas que se puedan presentar. Hay que tener en cuenta
que al trabajar con bases de datos multiusuarios, todas las quejas, solicitudes,
formas de manejo, etc. de cada uno de los usuarios, deberá ser tomada en cuenta y
y hacer reportes sobre las mismas. El DEB deberá analizar las estadísticas en cuanto
Bibliografía
http://9271983bdaa.blogspot.com/2005/09/recuperacion-capitulo-14.html
http://www.conocimientosweb.net/dcmt/ficha294.html
16