Академический Документы
Профессиональный Документы
Культура Документы
UNIDAD 4
MANEJO DE TRANSACCIONES
4.1 Transacciones 82
4.1.2 Ejecucin de transacciones centralizada y distribuida 84
4.1.3 Estructura de transacciones. 87
4.1.4 Ejecucin de transacciones centralizada y distribuida. 88
89
4.2 Control de concurrencia.
. 4.2.1 Serializacin de transacciones. 90
4.2.2 Algoritmos de control de concurrencia.
4.2.2.1 Basados en bloqueo. 91
4.2.2.2 Basados en estampas de tiempo. 94
4.2.2.3 Pruebas de validacin optimistas. 9
4.2.3 Disciplinas del Interbloqueo: prevencin, deteccin, 98
eliminacin y recuperacin
4.3 Confiabilidad 99
4.3.1 Conceptos bsicos de confiabilidad. 100
4.3.2 Protocolos REDO/UNDO. 101
4.3.3 Puntos de verificacin (checkpoints). 103
4.3.4 Protocolo 2PC de confiabilidad distribuida. 10
BIBLIOGRAFIA
40
1 UNIDAD: FUNDAMENTOS DE BASE DE DATOS DISTRIBUIDAS
Aunque las bases de datos pueden contener muchos tipos de datos, algunos de
ellos se encuentran protegidos por las leyes de varios pases. Por ejemplo en
Espaa, los datos personales se encuentran protegidos por la (LOPD).
40
Diagrama con las relaciones entre los aspectos relevantes sobre las BDD.
BD locales
SGBDD
Diccionario o directorio global
Sgbdd:
Es un software que administra y controla las bases de datos distribuidas de
manera transparente.
Sgbdd paralelo:
Este sistema gestor se ejecuta sobre mltiples procesadores y hace uso de
mltiples discos, se encuentra diseado para poder realizar operaciones en
paralelo, siempre que sea posible, con la finalidad de mejorar las prestaciones.
Ventajas
Desventajas
PRINCIPIO FUNDAMENTAL
1.-AUTONOMA LOCAL
La autonoma local implica que todos los sitios deben ser tratados como iguales.
Por lo tanto, no debe haber particularmente ninguna dependencia de un sitio
maestro central para algn servicio central, tal que todo el sistema dependa de
ese sitio central.
Razones por las cuales no debera haber un sitio central:
El sitio central puede ser un cuello de botella
40
El sistema sera vulnerable; es decir, si el sitio central falla, tambin fallar
todo el sistema
3.-OPERACIN CONTINUA
Soporte para un gran nmero de mquinas diferentes. Poder integrar todos los
datos de todos estos sistemas y presentar al usuario una imagen del sistema
nico.
Cuando una base de datos distribuida tiene mucha autonoma local se dice que es
federada.
Arquitectura ANSI
La arquitectura de sistemas de bases de datos de tres esquemas fue aprobado
por la ANSI-SPARC (American National Standard Institute - Standards Planning
and Requirements Committee) en 1975 como ayuda para conseguir la separacin
entre los programas de aplicacin y los datos, el manejo de mltiples vistas por
parte de los usuarios y el uso de un catlogo para almacenar el esquema de la
base de datos.
Nivel interno: Tiene un esquema interno que describe la estructura fsica
de almacenamiento de base de datos. Emplea un modelo fsico de datos y los
nicos datos que existen estn realmente en este nivel.
Nivel conceptual: tiene esquema conceptual. Describe la estructura de
toda la base de datos para una comunidad de usuarios. Oculta los detalles
fsicos de almacenamiento y trabaja con elementos lgicos como entidades,
atributos y relaciones.
Nivel externo o de vistas: tiene varios esquemas externos o vistas de
usuario. Cada esquema describe la visin que tiene de la base de datos a un
grupo de usuarios, ocultando el resto.
El objetivo de la arquitectura de tres niveles es el de separar los programas de
aplicacin de la base de datos fsica.
La mayora de los SGBD no distinguen del todo los tres niveles. Algunos incluyen
detalles del nivel fsico en el esquema conceptual. En casi todos los SGBD que se
manejan vistas de usuario, los esquemas externos se especifican con el mismo
modelo de datos que describe la informacin a nivel conceptual, aunque en
algunos se pueden utilizar diferentes modelos de datos en los niveles
conceptuales y externos.
Hay que destacar que los tres esquemas no son ms que descripciones de los
mismos datos pero con distintos niveles de abstraccin. Los nicos datos que
existen realmente estn a nivel fsico, almacenados en un dispositivo como puede
ser un disco. En un SGBD basado en la arquitectura de tres niveles, cada grupo
de usuarios hace referencia exclusivamente a su propio esquema externo. Por lo
tanto, el SGBD debe transformar cualquier peticin expresada en trminos de un
esquema externo a una peticin expresada en trminos del esquema conceptual,
y luego, a una peticin en el esquema interno, que se procesar sobre la base de
datos almacenada. Si la peticin es de una obtencin (consulta) de datos, ser
preciso modificar el formato de la informacin extrada de la base de datos
40
almacenada, para que coincida con la vista externa del usuario. El proceso de
transformar peticiones y resultados de un nivel a otro se denomina
correspondencia o transformacin. Estas correspondencias pueden requerir
bastante tiempo, por lo que algunos SGBD no cuentan con vistas externas.
La arquitectura de tres niveles es til para explicar el concepto de independencia
de datos que podemos definir como la capacidad para modificar el esquema en un
nivel del sistema sin tener que modificar el esquema del nivel inmediato superior.
Se pueden definir dos tipos de independencia de datos:
La independencia lgica es la capacidad de modificar el esquema conceptual sin
tener que alterar los esquemas externos ni los programas de aplicacin. Se puede
modificar el esquema conceptual para ampliar la base de datos o para reducirla.
Si, por ejemplo, se reduce la base de datos eliminando una entidad, los esquemas
externos que no se refieran a ella no debern verse afectados.
La independencia fsica es la capacidad de modificar el esquema interno sin tener
que alterar el esquema conceptual (o los externos). Por ejemplo, puede ser
necesario reorganizar ciertos ficheros fsicos con el fin de mejorar el rendimiento
de las operaciones de consulta o de actualizacin de datos. Dado que la
independencia fsica se refiere slo a la separacin entre las aplicaciones y las
estructuras fsicas de almacenamiento, es ms fcil de conseguir que la
independencia lgica.
En los SGBD que tienen la arquitectura de varios niveles es necesario ampliar el
catlogo o diccionario, de modo que incluya informacin sobre cmo establecer la
correspondencia entre las peticiones de los usuarios y los datos, entre los diversos
niveles. El SGBD utiliza una serie de procedimientos adicionales para realizar
estas correspondencias haciendo referencia a la informacin de correspondencia
que se encuentra en el catlogo. La independencia de datos se consigue porque
al modificarse el esquema en algn nivel, el esquema del nivel inmediato superior
permanece sin cambios, slo se modifica la correspondencia entre los dos niveles.
No es preciso modificar los programas de aplicacin que hacen referencia al
esquema del nivel superior.
Por lo tanto, la arquitectura de tres niveles puede facilitar la obtencin de la
verdadera independencia de datos, tanto fsica como lgica. Sin embargo, los dos
niveles de correspondencia implican un gasto extra durante la ejecucin de una
consulta o de un programa, lo cual reduce la eficiencia del SGBD. Es por esto que
muy pocos SGBD han implementado esta arquitectura completa.
En el presente punto se mostrar la arquitectura general de un sistema de bases
de datos distribuida
Consiste de diversos procesadores cada uno de ellos con su memoria local pero
compartiendo una misma unidad de almacenamiento (uno o varios). Ejemplo de
estas arquitecturas son los clster de digital, y los modelos IMS/VS data sharing
de IBM.
40
3. Arquitecturas de nada compartido
40
TRMINOS DE REPASO
Sgbdd
Independencia de replicacin
Autonoma local
Operacin continua
Control de concurrencia
40
Reduccin de redundancia
AUTO EVALUACION
1.- Explique la diferencia que existe entre la base de datos distribuido y uno
centralizado.
2.- Enliste los objetivos de la base de datos distribuidos.
Fiabilidad y disponibilidad
Si se produce un fallo en una localidad de un sistema distribuido, es posible
que las dems localidades puedan seguir trabajando. En particular, si los datos se
repiten en varias localidades, una transaccin que requiere un dato especfico
puede encontrarlo en ms de una localidad. As, el fallo de una localidad no
implica necesariamente la desactivacin del sistema.
El sistema debe detectar cuando falla una localidad y tomar las medidas
necesarias para recuperarse del fallo. El sistema no debe seguir utilizando la
localidad que fall. Por ltimo, cuando se recupere o repare esta localidad, debe
contarse con mecanismos para reintegrarla al sistema con el mnimo de
complicaciones.
Si una consulta comprende datos de varias localidades, puede ser posible dividir
la consulta en varias subconsultas que se ejecuten en paralelo en distintas
localidades. Sin embargo, en un sistema distribuido no se comparte la memoria
principal, as que no todas las estrategias de interseccin se pueden aplicar en
40
estos sistemas. En los casos en que hay repeticin de los datos, el sistema puede
pasar la consulta a las localidades ms ligeras de carga.
Caractersticas de
acceso
Anlisis de requisitos
Diseo de vistas
Diseo conceptual
Diseo de la distribucin
Fragmentacin
Asignacin
Diseo fsico
Monitorizacin y ajuste
Los diccionarios de datos son el segundo componente del anlisis del flujo
de datos. En s mismos los diagramas de flujo de datos no describen por completo
el objeto de la investigacin. El diccionario de datos proporciona informacin
adicional sobre el sistema. Esta seccin analiza que es un diccionario de datos,
por qu se necesita en el anlisis de flujo de datos y como desarrollarlo. Se
utilizar el ejemplo del sistema de contabilidad para describir los diccionarios de
datos.
40
P.ej.: no
usar
nombres
como:
maq1:/src/prog.c
Por lo que se sugiere que las rplicas las haga el sistema en su totalidad sin que
el usuario se percate si est trabajando o no sobre una rplica.
Los usuarios ven cada objeto de datos como lgicamente nico. Puede que el
sistema distribuido replique los objetos para incrementar el rendimiento del
sistema o la disponibilidad de los datos.
Los usuarios no deben preocuparse por los objetos que se hayan replicado ni por
la ubicacin de esas rplicas.
Ventajas:
Grado de fragmentacin.
40
La recuperacin de la relacin original se realizar a partir de la unin de cada uno
de los fragmentos: T= T1 T2... Tn
EJEMPLO 2
Considere la relacin J
40
La relacin J se puede fragmentar horizontalmente produciendo los siguientes
fragmentos
Ejemplo:
40
La fragmentacin vertical es la subdivisin de atributos en grupos. Los fragmentos
se obtienen proyectando la relacin global sobre cada grupo. La fragmentacin es
correcta si cada atributo se mapea en al menos un atributo del fragmento.
Fragmentacin mixta o hibrida cuando el proceso de particin hace uso de los dos
tipos anteriores. La fragmentacin mixta puede llevarse a cabo de tres formas
diferentes:
1.- Desarrollando primero la fragmentacin vertical y posteriormente, aplicando
particin horizontal de los fragmentos verticales (denominada particin VH)
2.- Aplicando primero una divisin horizontal para luego, sobre los fragmentos
generados, desarrollar una fragmentacin vertical (llamada particin HV)
40
3.- De forma directa considerando la semntica de las transacciones.
Ejemplo de la fragmentacin mixta HV:
EMP( empnum,
name, sal, tax,
mrgnum,
depnum )
Las siguientes
son para
obtener una
fragmentacin
mixta, aplicando
la vertical
seguida de la
horizontal:
EMP1 = SL
depnum <= 10
PJempnum, name, mgrnum, depnum EMP
EMP2 = SL 10 < depnum <= 20 PJempnum, name, mgrnum, depnum EMP
EMP3 = SL depnum > 20 PJempnum, name, mgrnum, depnum EMP
EMP4 = PJ empnum, name, sal, tax EMP
40
2.5 DISTRIBUCION DE DATOS
Replicacin de datos
La replicacin de datos se refiere al almacenamiento de copias de datos en sitios
mltiples servidos por una red de computadoras. Pueden guardarse copias de
fragmento para satisfacer requerimientos de informacin especficos.
Los datos replicados requiere que todas las copias de fragmentos de datos sean
idntica, por consiguiente para mantener la consistencia de los datos entre las
replicas, el DDBMS debe garantizar que se realice una actualizacin de la base
de datos donde existen replicas.
Tipos de replicacin
REPLICACIN DE INSTANTNEAS
REPLICACIN TRANSACCIONAL
REPLICACIN DE MEZCLA
TIPOS DE RELACIONES:
Hay gestores que son muy flexibles en cuestiones de programacin, mientras que
otros ofrecen ms rendimiento. As, al disear el algoritmo tendr que hacer toda
la informacin referente a la vida de la base de datos pero por otro lado deber
40
buscar siempre de darle soluciones al usuario, pues este ser el que al final de
cuentas interesa.
Is Row Guid.- Esta propiedad creara un contenido global y nico. Cualquier tabla
puede tener este tipo de columna en el momento que se crea necesario por el
diseador.
40
TRMINOS DE REPASO
Nivel de comparticin
Botton up
Top-Dow
Fragmentacin
Monitorizacin y ajuste
Diccionario de datos
Niveles de transparencia
Independencia fsica
Independencia lgica
Transparencia de localizacin
Transparencia de fragmentacin
Transparencia de replica
Aumento de paralelismo
Fragmentacin vertical
Fragmentacin horizontal
Grado de fragmentacin
Completitud
40
Reconstruccin
Disyuncin
Default value
Scale
Identify
Identify Seed
Is Row Guid
AUTO EVALUACION
4.- Cuales son las caractersticas que un diccionario de datos debe cumplir
Los usuarios de SQL Server pueden utilizar consultas distribuidas para obtener
acceso a lo siguiente:
Las operaciones bsicas son suma (+), resta (-), divisin (/) y multiplicacin
(*).
FROM empleado;
FROM empleado;
FROM empleado
FROM empleado;
Evaluacin
FROM empleado;
40
La funcin principal de un procesador de consultas relacionales es transformar
una consulta en una especificacin de alto nivel, tpicamente en clculo relacional,
a una consulta equivalente en una especificacin de bajo nivel, tpicamente alguna
variacin del lgebra relacional. La consulta de bajo nivel implementa de hecho la
estrategia de ejecucin para la consulta. La transformacin debe ser correcta y
eficiente. Es correcta si la consulta de bajo nivel tiene la misma semntica que la
consulta original, esto es, si ambas consultas producen el mismo resultado.
Ejemplo:
SELECT ENOMBRE
FROM E, G
WHERE E.ENO = G.ENO AND RESPONSABLE = "ADMINISTRADOR"
- Fallo de los nodos. Cuando un nodo falla, el sistema deber continuar trabajando
con los nodos que an funcionan. Si el nodo a recuperar es una base de datos
local, se debern separar los datos entre los nodos restantes antes de volver a
unir de nuevo el sistema.
40
Tamao de la relacin EMPLEADO es 100 * 10.000 = 106 bytes
Contador:
40 * 10000 Nodo 2 departamento
NombreDeppto 10
400000
Resultado de la
consulta
Nodo empleado1
Nombre 15
40
Apellido 15
Estrategias:
1. Transferir la relacin EMPLEADO y DEPARTAMENTO al nodo
respuesta (nodo 3) y realizar all la operacin de join. En ste caso se
transfieren 1.000.000 + 3.500 = 1.003.500 bytes.
Contador:
1000000 + 3500
3500
1000000
Contador:
1000000 +
400000
40
Nodo 2 departamento
Nodo 1 empleado
1000000
Contador:
3500 + 4000000
Nodo 2 departamento
403500
Nodo 1 empleado
403500
Consulta: mtodo para acceder a los datos en la base de datos. Con las
consultas se puede modificar, mostrar agregar datos de una BD.
RBOL DE LA CONSULTA
SQL Es una representacin interna de una sentencia SQL donde las partes
individuales que la construy se almacenan por separado. Estos rboles de
consulta son visibles cuando se inicia el Postgre SQL y escribir consultas en la
interfaz de usuario interactivo.
Listar los nombres de los empleados nacidos antes de 1960 que trabajen en un
proyecto llamado Gminis
SELECT enombre
40
Las partes de un rbol de consulta
La tabla de rango
La tabla es una lista amplia de las relaciones que se utilizan en la consulta. En
una instruccin SELECT se trata de las relaciones dadas despus de la palabra
clave FROM.
Cada entrada de la tabla gama identifica una tabla o vista y le dice por qu
nombre se le llama en otras partes de la consulta. SQL En el rbol de consulta de
las entradas de tabla de la gama se hace referencia por el ndice en lugar de por
su nombre, as que aqu no importa si hay nombres duplicados ya que en una
sentencia SQL.
La relacin resultado
Este es un ndice en la tabla de rango que identifica la relacin donde van los
resultados de la consulta. Las consultas SELECT normalmente no tienen una
relacin de resultados.
40
En las consultas INSERT, UPDATE y DELETE la relacin resultado es la tabla
donde los cambios surtan efecto.
La lista de objetivos
La lista de objetivos es una lista de expresiones que definen el resultado de la
consulta. En el caso de una SELECT, las expresiones son las que se basa el
resultado final de la consulta.
En INSERT la lista objetivo describe las nuevas filas que deben entrar en la
relacin resultado.
En las consultas UPDATE, la lista de objetivos describe las nuevas filas que
deben sustituir a los antiguos
La calificacin
La consulta de calificacin es una expresin muy similar a uno de los que figuran
en la lista de entradas de destino. El valor del resultado de esta expresin es un
valor booleano que indica si la operacin (INSERT, UPDATE, DELETE o SELECT)
para la fila de resultado final debe ser ejecutado o no. SQL Es la clusula WHERE
de una instruccin SQL.
Cuando una base de datos es acezada de esta manera la tcnica que se utiliza es
la de fragmentacin de datos que puede ser hibrida, horizontal y vertical.
Tablas de ejemplo
Todas las explicaciones que estn a continuacin utilizan las siguientes dos tablas
para ilustrar el efecto de diferentes clases de uniones JOIN.
Tabla Empleado
NombreDepartamento IDDepartament
Produccin 34
40
La tabla Empleado contiene a los empleados con el nmero del departamento al
que pertenecen; mientras que la tabla Departamento, contiene el nombre de los
departamentos de la empresa, se puede notar que existe un empleado que tiene
asignado un nmero de departamento que no se encuentra en la tabla
Departamento (Gaspar), igualmente, en la tabla Departamento existe un
departamento al cual no pertenece empleado alguno (Mercadeo). Esto servir
para presentar algunos ejemplos ms adelante.
Con esta operacin se calcula el producto cruzado de todos los registros; as cada
registro en la tabla A es combinado con cada registro de la tabla B; pero slo
permanecen aquellos registros en la tabla combinada que satisfacen las
condiciones que se especifiquen. Este es el tipo de JOIN ms utilizado por lo que
es considerado el tipo de combinacin predeterminado.
Como ejemplo, la siguiente consulta toma todos los registros de la tabla Empleado
y encuentra todas las combinaciones en la tabla Departamento. La sentencia JOIN
compara los valores en la columna IDDepartamento en ambas tablas. Cuando no
existe esta correspondencia entre algunas combinaciones, stas no se muestran;
es decir que si el nmero de departamento de un empleado no coincide con los
nmeros de departamento de la tabla Departamento, no se mostrar el empleado
con su respectivo departamento en la tabla resultante.
40
Las dos consultas siguientes son similares, y se realizan de manera explcita (A) e
implcita (B).
SELECT *
FROM empleado
INNER JOIN departamento
ON empleado.IDdepartamento = departamento.IDdepartamento
SELECT *
FROM empleado, departamento
WHERE empleado.IDdepartamento = departamento.IDDepartamento
Resultados:
Mediante esta operacin no se requiere que cada registro en las tablas a tratar
tenga un registro equivalente en la otra tabla. El registro es mantenido en la tabla
combinada si no existe otro registro que le corresponda.
40
En sql no existe una notacin implcita para las combinaciones externas.
La sentencia LEFT OUTER JOIN retorna la pareja de todos los valores de la tabla
izquierda con los valores de la tabla de la derecha correspondientes, o retorna un
valor nulo NULL en caso de no correspondencia.
SELECT distinct *
FROM empleado
LEFT OUTER JOIN departamento
ON empleado.IDDepartamento = departamento.IDDepartamento
Jordn 33 Ingeniera 33
Andrade 31 Ventas 31
Rbinson 34 Produccin 34
Solano 34 Produccin 34
40
Gaspar 36 NULL NULL
Steinberg 33 Ingeniera 33
SELECT *
FROM empleado
RIGHT OUTER JOIN departamento
ON empleado.IDDepartamento = departamento.IDDepartamento
Solano 34 Produccin 34
Jordn 33 Ingeniera 33
Rbinson 34 Produccin 34
40
Steinberg 33 Ingeniera 33
Andrade 31 Ventas 31
Esta operacin presenta los resultados de tabla izquierda y tabla derecha aunque
no tengan correspondencia en la otra tabla. La tabla combinada contendr,
entonces, todos los registros de ambas tablas y presentar valores nulos NULLs
para registros sin pareja.
SELECT *
FROM empleado
FULL OUTER JOIN departamento
ON empleado.IDDepartamento = departamento.IDDepartamento
Solano 34 Produccin 34
40
Jordn 33 Ingeniera 33
Rbinson 34 Produccin 34
Steinberg 33 Ingeniera 33
Andrade 31 Ventas 31
Como se puede notar, en este caso se encuentra el empleado Gaspar con valor
nulo en su rea correspondiente, y se muestra adems el departamento de
Mercadeo con valor nulo en los empleados de esa rea.
SELECT *
FROM empleado
LEFT JOIN departamento
ON empleado.IDDepartamento = departamento.IDDepartamento
UNION
SELECT *
FROM empleado
40
RIGHT JOIN departamento
ON empleado.IDDepartamento = departamento.IDDepartamento
WHERE empleado.IDDepartamento IS NULL
El cdigo SQL para realizar este producto cartesiano enuncia las tablas que sern
combinadas, pero no incluye algn predicado que filtre el resultado.
SELECT *
FROM empleado CROSS JOIN departamento
SELECT *
FROM empleado, departamento;
Andrade 31 Ventas 31
40
Jordn 33 Ventas 31
Steinberg 33 Ventas 31
Solano 34 Ventas 31
Rbinson 34 Ventas 31
Gaspar 36 Ventas 31
Andrade 31 Ingeniera 33
Jordn 33 Ingeniera 33
Steinberg 33 Ingeniera 33
Solano 34 Ingeniera 33
Rbinson 34 Ingeniera 33
Gaspar 36 Ingeniera 33
Andrade 31 Produccin 34
Jordn 33 Produccin 34
40
Steinberg 33 Produccin 34
Solano 34 Produccin 34
Rbinson 34 Produccin 34
Gaspar 36 Produccin 34
Andrade 31 Mercadeo 35
Jordn 33 Mercadeo 35
Steinberg 33 Mercadeo 35
Solano 34 Mercadeo 35
Rbinson 34 Mercadeo 35
Gaspar 36 Mercadeo 35
Supone la utilizacin de una medida de costo que sea comn a lo largo del
proceso, esta medida debe representar el criterio de minimizacin en la utilizacin
de recursos del sistema. ). Este enfoque estima un costo que estar determinado
por formulas predefinidas y por la informacin del catalogo inherente a la consulta.
Sin embargo el optimizador no siempre escoge el plan ms ptimo, ya que una
bsqueda exhaustiva de la estrategia ptima puede consumir demasiado tiempo
de proceso.
La optimizacin incide:
TIEMPO DE OPTIMIZACIN
Una consulta puede ser optimizada en tiempos diferentes con relacin a tiempo de
ejecucin de la consulta. La optimizacin se puede realizar de manera esttica
antes de ejecutar la consulta o de forma dinmica durante la ejecucin de la
consulta.
Dada una consulta algebraica sobre fragmentos, el objetivo de esta capa es hallar
una estrategia de ejecucin para la consulta cercana a la ptima. La estrategia de
ejecucin para una consulta distribuida puede ser descrita con los operadores del
lgebra relacional y con primitivas de comunicacin para transferir datos entre
nodos. Para encontrar una buena transformacin se consideran las caractersticas
de los fragmentos, tales como, sus cardinalidades. Un aspecto importante de la
optimizacin de consultas es el ordenamiento de juntas, dado que algunas
permutaciones de juntas dentro de la consulta pueden conducir a un mejoramiento
de varios rdenes de magnitud. La salida de la capa de optimizacin global es una
consulta algebraica optimizada con operacin de comunicacin incluida sobre los
fragmentos.
40
Descomposicin de consultas
Localizacin de Datos
Tiempo de ejecucin
Espacio de memoria utilizado
Esto se realiza mediante operaciones, mtodos, que ayudan a reducir los costos
de comunicacin y el consumo de recursos de la CPU.
El manejo de los costos de comunicacin se define por las mtricas utilizadas,
para cada nodo, como las bases de datos distribuidas operan bajo una
arquitectura de red, se definen costos de comunicaciones.
Los diferentes factores pueden tener pesos diferentes dependiendo del ambiente
distribuido en el que se trabaje.
Caractersticas
TRMINOS DE REPASO
Procesamiento distribuido de consultas
Estrategias para el procesamiento de las consultas
Arboles
Tiempos de ejecucin
Mtodo de join
Costos de comunicacin
Algoritmos de sistemas centralizados
Algoritmos de optimizacin
Hibrido
Tiempo de optimizacin
Optimizacin local y global. 40
AUTO EVALUACION
7.- Qu es la optimizacin?
10.- Mencione los criterios a mejorar al momento de disear una base de datos.
40
11.- Escriba las caractersticas de la optimizacin global de consultas.
4.1TRANSACCIONES
Lo que se persigue con el uso de transacciones es por un lado contar con una
transparencia adecuada de las acciones concurrentes a una base de datos y por
el otro tener una transparencia adecuada en el manejo de las fallas que se pueden
presentar en una base de datos.
Esta consulta puede ser especificada, usando la notacin de SQL, como una
transaccin otorgndole un nombre:
Begin_transaction ACTUALIZA_PRESUPUESTO
begin
UPDATE J
end.
Ejemplo 2: Considere una agencia de reservaciones para lneas areas con las
siguientes relaciones:
Begin_transaction Reservacin
begin
output("reservacin terminada");
end.
Atomicidad:
Una transaccin es tratada como una unidad de operacin. Por lo tanto todas las
acciones de la transaccin se llevan a cabo o ninguna de ellas se realiza .La
atomicidad requiere que si una transaccin se interrumpe por una falla, sus
resultados parciales deben ser deshechos. Se efectan todas las transacciones,
pero en caso de fallas no se realiza ninguna. Una transaccin debe concluir
comprometida o abortada. En el caso del compromiso se instalan todas las
actualizaciones y en el aborto se descartan todas las actualizaciones.
Consistencia :
Una transaccin es un programa correcto que lleva la base de datos de un estado
consistente a otro con la misma caracterstica. Gracias a esto, las transacciones
no violan las reglas de integridad de una base de datos.
Aislamiento :
Durante la ejecucin de una transaccin, esta no debe revelar sus resultados a
otras transacciones concurrentes antes de su compromiso. Si varias transacciones
se ejecutan concurrentemente, los resultados deben ser los mismos que si ellas se
hubieran ejecutado en forma secuencial (Seriabilidad). La seriabilidad consiste en
asegurarse que los cambios siguen un orden adecuado.
Durabilidad :
Es la propiedad de las transacciones que asegura que una vez que una
transaccin realiza su compromiso, sus resultados son permanentes y no pueden
ser borrados de la base de datos, se asegura que los resultados de una
transaccin sobrevivirn a fallas del sistema.
40
Las transacciones brindan una ejecucin atmica y confiable en presencia de
fallas, una ejecucin correcta en presencia de accesos de usuario mltiples y un
manejo correcto de replicas (en el caso que se soporten).
Por ejemplo:
Begin_transaction Reservacin
End
Por ejemplo:
Begin_transaction Reservacin
Begin_transaction Vuelo
End. (Vuelo)
Begin_transaction Hotel
End
End.
Protocolos de confiabilidad
En transacciones distribuidas es necesario introducir medios de comunicacin
entre los diferentes nodos de una red para garantizar la atomicidad de las
transacciones.
Dentro de este proceso en bloque los dems usuarios no pueden modificar nada
hasta que no se presente un estado estable de los datos, esto ocasiona
40
inconsistencia temporal y conflictos. Para evitar lo anterior se implementan dos
maneras diferentes:
Atomicidad
Protocolos de recuperacin total
Protocolos de compromiso global
Begin_transaction Reservacin
40
...
end.
Transacciones Anidadas:
Por ejemplo:
Begin_transaction Reservacin
...
Begin_transaction Vuelo
...
end. {Vuelo}
...
40
Begin_transaction Hotel
...
end.
4.2CONTROL DE CONCURRENCIA
Teora de la serializad
Una canderilizacion ischedulel tambin llamado una historia se define un conjunto
de transacciones I= {T1,T2, TN} y especifican orden entrelazada de la ejecucin
de las operaciones de las transacciones. La canderilizacion puede ser
especificada como una orden parcial sobre T.
rl si no
wl no no
Los candados de lectura presentan conflictos con los candados de escritura, dado
que las operaciones de lectura y escritura son incompatibles.
Una estampa de tiempo es un identificador simple que sirve para identificar cada
transaccin de manera nica.
Otra propiedad de las estampas de tiempo es la menoticidad, esto es, dos
estampas de tiempo generadas por el mismo administrador de transacciones
deben ser monofnicamente crecientes.
40
Existen varias formas en que las estampas de tiempo se pueden asignar. Un
mtodo es usar un contador global monotonicamente creciente. Sin embargo, el
mantenimiento de contadores globales es un problema en sistemas distribuidos.
Por lo tanto, es preferible que cada nodo asigne de manera autnoma las
estampas de tiempos basndose en un contador local.
1.- Si todas las transacciones Tk, tales que, ts( Tk ) < ts( Tij ), han terminado su fase
de escritura antes que Tij ha iniciado su fase de lectura entonces la validacin
tiene xito. En este caso la ejecucin de las transacciones es completamente
serial como se muestra en la Figura.
2.- Si existe alguna transaccin Tk, tal que, ts( Tk ) < ts( Tij ) y la cual completa su
fase de escritura mientras Tij est en su fase de lectura, entonces, la validacin
tiene xito si WS(Tk ) RS(Tij ) = . En este caso, las fases de lectura y escritura
40
se traslapan, como se muestra en la Figura 6.7b, pero Tij no lee datos queson
escritos por Tk.
3.- Si existe alguna transaccin Tk, tal que, ts( Tk ) < ts( Tij ) y la cual completa su
fase de lectura antes que Tij termine su fase de lectura, entonces, la validacin
tiene xito si WS(Tk ) RS(Tij ) = y WS(Tk ) WS(Tij ) = . En este caso, las
fases de lectura se traslapan, como se muestra en la Figura 6.7c, pero las
transacciones no accesan datos comunes.
Algoritmos optimistas
Grafo de reservas.- Grafo con dos tipos de nodos, los de las transacciones y los
Correspondientes a grnulos.
4.3CONFIABILIDAD
Un sistema de manejo de bases de datos confiable es aquel que puede continuar
procesando las solicitudes de usuario an cuando el sistema sobre el que opera
no es confiable. En otras palabras, aun cuando los componentes de un sistema
distribuido fallen, un DBMS confiable debe seguir ejecutando las solicitudes de
usuario sin violar la consistencia de la base de datos.
PROPIEDADES:
REDO (T): cuando la bitcora contiene tanto el registro <T,start> como el registro
<T,commit>.
Undo (T): restaura todos los datos que T actualiza a los valores que tena
anteriormente. Redo (T): asigna los nuevos valores a todos los datos que actualiza
la transaccin T.
40
Es importante respetar el orden de ejecucin de las operaciones para la
recuperacin. Las operaciones UNDO deben realizarse antes que las operaciones
REDO. Las operaciones de UNDO se realizan recorriendo la bitcora desde abajo
hacia arriba, esto es, en orden inverso al que se ejecutaron. Las operaciones de
REDO se realizan recorriendo la bitcora desde arriba hacia abajo, esto es, en el
mismo orden en que se actualiz.
Ejemplo:
<Ti,A,10,20>
<Tj,A,20,30>
Los checkpoints buscan reducir los tiempos extra en los procesos de bsqueda en
la bitcora. Al disparar un checkpoint el sistema realiza la siguiente secuencia de
acciones:
1.- Para cada transaccin Ti tal que aparece en la bitcora el registro <Ti,commit>
antes del registro <checkpoint>, no es necesario ejecutar un REDO.
2.- Despus de un fallo, se examina la bitcora para determinar cul fue la ltima
transaccin Ti que comenz a ejecutarse antes del ltimo checkpoint. *Esto se
hace examinando la bitcora hacia atrs buscando el primer registro <checkpoint>
40
y cual es el registro <Ti,start> ms cercano. *Luego, se aplica REDO o UNDO
sobre Ti y todas las transacciones que le suceden.
Si est en estado decidiendo (no vot an) decide abortar y enva abort T
al coordinador.
40
Replicacin nerge
Esta permite la replicacin de tablas y procedimientos almacenados. Las
modificaciones pueden hacerse en el Publisher o bien en las copias mantenidas
por los suscriptores.
Para mantener la integridad de los datos replicados el proceso de sincronizacin
se encarga de actualizar las modificaciones realizadas en las copias de los
suscriptores y viceversa.
EJERCICIOS DE ALGEBRA RELACIONAL
Ejercicio 1:
Resultados:
d) Obtener los valores de L# para los libros suministrados para todas las
papeleras que no sean de Madrid.
TITULO (LIBRO ( CIUDAD MADRID)-L#(ELP)))
Ejercicio 2:
A) Obtener los usuarios (U#) que usan al menos todos los programas del
distribuidor D1
B) Obtener los programas (P#) que solo son usados por el usuario U5.
p# (programas*P#=P5(distribuidor))n p# ( programas*P#=P8(distribuidor))
Ejercicio 4:
A) obtener todo los valores de T# que usan todas la maquinas del tipo 1.
M#(tipo=trabajo(maquinas) *(nombre))
Ejercicio 5:
Ejercicio 6:
Ejercicio 7:
TERMINOS DE REPASO
Ejecucin de transacciones
Concurrencia
Estructura de las transacciones
Transacciones centralizadas
40
Transacciones distribuidas
Algoritmos basados en concurrencia
Serializacion
Interbloqueo
Protocolos redo
Protocolos undo
AUTOEVALUACION
2.- Explique las propiedades de las bases de datos para asegurar la consistencia
de los datos.
40
3.- Mencione que son las transacciones planas.
12.- Qu es el interbloqueo?
Bibliografa
http://www.fing.edu.uy/inco/cursos/interop/interPresencial/transparencias/queries.p
df
http://www.mitecnologico.com/Main/OptimizacionDeConsultasDistribuidas
http://sistemas-distribuidos-unerg.blogspot.com/2007/12/bases-de-
datosdistribuidas.html
http://catarina.udlap.mx/u_dl_a/tales/documentos/msp/alvarez_c_g/capitulo1.pdf
40