3
7
12
13
20
27
28
30
31
31
32
34
37
38
40
42
43
47
53
56
60
60
70
73
75
UNIDAD 4
MANEJO DE TRANSACCIONES
4.1 Transacciones
4.1.2 Ejecucin de transacciones centralizada y distribuida
4.1.3 Estructura de transacciones.
4.1.4 Ejecucin de transacciones centralizada y distribuida.
82
84
87
88
89
4.2 Control de concurrencia.
. 4.2.1 Serializacin de transacciones.
4.2.2 Algoritmos de control de concurrencia.
4.2.2.1 Basados en bloqueo.
4.2.2.2 Basados en estampas de tiempo.
4.2.2.3 Pruebas de validacin optimistas.
4.2.3 Disciplinas del Interbloqueo: prevencin,
eliminacin y recuperacin
4.3 Confiabilidad
4.3.1 Conceptos bsicos de confiabilidad.
4.3.2 Protocolos REDO/UNDO.
4.3.3 Puntos de verificacin (checkpoints).
4.3.4 Protocolo 2PC de confiabilidad distribuida.
BIBLIOGRAFIA
90
91
94
9
deteccin, 98
99
100
101
103
10
CONCEPTOS BASICOS
Las sedes deben estar interconectadas mediante una red (cada sede es un
nodo de la red)
Los datos han de estar lgicamente integrados (recuperacin y
actualizacin) tanto en local como remoto (esquema lgico global y nico)
En una nica operacin se puede acceder (recuperar o actualizar) datos
que se encuentran en ms de una sede (acceso a datos locales o remotos)
Todas las acciones que necesiten realizarse sobre ms de una sede sern
transparentes al usuario (transparencia de distribucin para el usuario)
Ventajas de la base de datos distribuidos:
Organizativas:
Econmicas:
Tcnicas:
Desventajas de la base de datos distribuidos
Complejidad del sistema, desarrollo de software ms costoso, problemas de
sincronizacin, dificultad para conocer la correccin de los algoritmos
paralelos, deteccin de cadas de nodos
Dependencia de la red de comunicaciones, sobrecarga de procesamiento
de mensajes
Dificultad de diseo, fases adicionales
Poca madurez de los productos comerciales, orientados a replicacin
Funciones de administracin compleja, sincronizacin y coordinacin
Dificultad de cambio, inexistencia de metodologas
Personal especializado
Diagrama con las relaciones entre los aspectos relevantes sobre las BDD.
Transparencia de red
Transparencia de fragmentacin
Transparencia de copias o duplicacin
Propagacin de actualizaciones
Procesamiento de consultas distribuidas, definicin de estrategias
Mantener un diccionario integrado
Control de concurrencia, integridad de la BDD, consistencia entre las
mltiples copias de los datos
Fiabilidad de los SGBDD, capaz de recuperar y devolver a las bases de
datos implicadas en el fallo un estado consistente y estable
Soporte de sistema operativo
Bases de datos heterogneas, mecanismos de traduccin
Sgbdd paralelo:
CENTRALIZADO
Control centralizado:
un solo DBA
DISTRIBUIDO
Control jerrquico:
DBA global y DBA local
Independencia de Datos:
Transparencia en la Distribucin:
Organizacin de los datos es transparente Localizacin de los datos es un aspecto
para el programador
adicional de independencia de datos
Reduccin de redundancia:
Una sola copia de datos que se comparta
Replicacin de Datos:
Copias mltiples de datos que incrementa
la localidad y la disponibilidad de datos
Seguridad
Desventajas
PRINCIPIO FUNDAMENTAL
ANTE EL USUARIO, UN SISTEMA DISTRIBUIDO DEBE LUCIR
EXACTAMENTE IGUAL QUE UN SISTEMA QUE NO ES DISTRIBUIDO
1.-AUTONOMA LOCAL
Los sitios en un sistema distribuido deben ser autnomos, la autonoma local
significa que todas las operaciones en un sitio dado estn controladas por ese
sitio; ningn sitio X debe depender de algn otro sitio Y para su operacin
satisfactoria.
La seguridad, integridad y representacin de almacenamiento de los datos locales
permanecen bajo el control y jurisdiccin del sitio local.
2.-NO DEPENDENCIA DE UN SITIO CENTRAL
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:
10
3.-OPERACIN CONTINUA
Una ventaja de los sistemas distribuidos es que deben proporcionar mayor
confiabilidad y mayor disponibilidad.
Confiabilidad. La probabilidad de que el sistema est listo y funcionando en
cualquier momento dado. Los SD no son una propuesta de todo o nada; pueden
continuar operando cuando hay alguna falla en algn componente independiente.
Disponibilidad. La probabilidad de que el sistema est listo y funcionando
continuamente a lo largo de un perodo especificado.
4.- INDEPENDENCIA DE UBICACIN.
Conocida tambin como transparencia de ubicacin, donde los usuarios no tienen
que saber dnde estn almacenados fsicamente los datos, sino que deben ser
capaces de comportarse como si todos los datos estuvieran almacenados en su
propio sitio local.
Esto simplifica los programas de los usuarios. En particular, permite que los datos
emigren de un sitio a otro sin invalidar ninguno de estos programas o actividades
5.- INDEPENDENCIA DE FRAGMENTACIN.
Un sistema soporta la fragmentacin de datos cuando puede ser dividida en o
partes o fragmentos, para efectos de almacenamiento fsico.
La fragmentacin es necesaria por razones de rendimiento: los datos pueden estar
almacenados en la ubicacin donde son usados ms frecuentemente para que la
mayora de las operaciones sean locales y se reduzca el trfico en la red.
Los usuarios deben comportarse como si los datos en realidad estuvieran sin
fragmentacin alguna.
6.- INDEPENDENCIA DE REPLICACIN.
El sistema soporta replicacin de datos cuando un fragmento puede ser
representado por muchas copias distintas, o rplicas, guardadas en muchos sitios
distintos.
Las rplicas son necesarias por dos razones principales:
Significan un mejor rendimiento (las aplicaciones pueden operar sobre las copias
locales en lugar de tener que comunicarse con sitios remotos)
Pueden significar una mejor disponibilidad (un objeto replicado permanece
disponible para su procesamiento, mientras est disponible al menos una copia).
Por supuesto, la principal desventaja de las rplicas es que al actualizarlas es
necesario actualizar todas: el problema de la propagacin de la actualizacin.
7.- PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS.
La optimizacin es importante en un sistema distribuido que en uno centralizado,
incluso mucho ms.
11
El punto bsico es que en una consulta que involucra a varios sitios, habr
muchas formas posibles de mover los datos en el sistema para satisfacer la
solicitud, y es crucialmente importante que se encuentre una estrategia eficiente.
8.- ADMINISTRACIN DE TRANSACCIONES DISTRIBUIDAS.
Existen dos aspectos principales en la administracin de transacciones: control de
recuperacin y control de la concurrencia.
Ambos aspectos requieren un tratamiento amplio en el ambiente distribuido.
Ya que una sola transaccin puede involucrar la ejecucin de cdigo en muchos
sitios. Puede involucrar actualizaciones en muchos sitios y se debe de cuidar que
la transaccin no caiga en un bloqueo mortal (basado en el bloqueo). Para el
control de la recuperacin, es necesario asegurarse que una transaccin dada sea
atmica en el ambiente distribuido, el sistema debe por lo tanto asegurarse de que
la transaccin sea confirmada o deshecha (se puede utilizar el protocolo de
confirmacin de dos fases).
9.- INDEPENDENCIA DE HARDWARE.
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.
10.- INDEPENDENCIA DE SISTEMA OPERATIVO.
Obviamente es necesario no slo tener la posibilidad de ejecutar el mismo DBMS
en diferentes plataformas de hardware, sino tambin ejecutarlo en diferentes
plataformas de sistema operativo.
11.- INDEPENDENCIA DE RED.
Si el sistema va a tener la posibilidad de soportar muchos sitios distintos es
obviamente necesario tener la posibilidad de soportar tambin una variedad de
redes de comunicacin distintas
12
conceptual. As mismo describi las interacciones entre estos tres niveles y todos
los elementos que conforman cada uno de ellos.
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.
14
15
16
17
TRMINOS DE REPASO
Sgbdd
Independencia de replicacin
Autonoma local
Operacin continua
Control de concurrencia
Reduccin de redundancia
18
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.
19
20
21
22
Nivel de comparticin
Inexistentes
Comparticin de datos
Comparticin de datos
y programas
Esttico
Caractersticas de
acceso
Dinmico
23
Nivel de conocimiento
Sin informacin
Con informacin
parcial
Con informacin
total
Anlisis de requisitos
Diseo de vistas
Diseo conceptual
Diseo de la distribucin
Fragmentacin
Asignacin
Diseo fsico
Monitorizacin y ajuste
24
25
26
27
29
30
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.
El sistema conserva replicas (copias) idnticas de la relacin y guarda cada replica
en un sitio diferente. La alternativa a las rplicas es almacenar solo una copia de
la relacin r.
Si un archivo esta replicado, el usuario no distingue cual de las rplicas est
leyendo. Si un proceso realiza una actualizacin, el sistema operativo deber
actualizar todas las replica.
Ventajas:
Disponibilidad: El sistema sigue funcionando aun en caso de cada de uno de
los nodos
Aumento de paralelismo: Varios nodos pueden realizar consultas en paralelo
sobre la misma tabla. Cuantas ms replicas existan de la tabla, mayor ser la
posibilidad de que el dato buscado se encuentre en el nodo desde el que se
realiza la consulta, minimizando con ello el trfico de datos entre nodos.
2.4 FRAGMENTACION DE DATOS
La fragmentacin consiste en particionar la informacin para distribuir cada parte
en diferentes lugares de la red. De forma que cada relacin se divide en varios
fragmentos. Cada fragmento se guarda en una localizacin diferente.
Si la relacin r est fragmentada, se dividir en cierto nmero de fragmentos r1,
r2 rn. Estos fragmentos contendrn suficiente informacin como para permitir la
reconstruccin de la relacin original r.
La fragmentacin de la informacin se puede
llevar a cabo de tres formas:
Fragmentacin vertical.
Fragmentacin horizontal.
Fragmentacin mixta o hibrida.
32
El operador
ser diferente dependiendo de las diferentes formas de
fragmentacin. La reconstruccin de la relacin a partir de sus fragmentos asegura
la preservacin de las restricciones definidas sobre los datos en forma de
dependencias.
3.- Disyuncin. Si una relacin R se descompone horizontalmente en una serie
de fragmentos R1, R2, ..., Rn, y un elemento de datos di se encuentra en algn
fragmento Rj, entonces no se encuentra en otro fragmento Rk (k j). Esta regla
asegura que los fragmentos horizontales sean disjuntos. Si una relacin R se
descompone verticalmente, sus atributos primarios clave normalmente se repiten
en todos sus fragmentos.
2.4.1 FRAGMENTACION HORIZONTAL
La tabla T se divide en subconjuntos, T1, T2, ...Tn. Cada tupla de T debe
pertenecer al menos a uno de los fragmentos para poder reconstruir la tabla
original a partir de los fragmentos. Los fragmentos se definen a travs de una
operacin de seleccin y su reconstruccin se realizar en base a una operacin
de unin de los fragmentos componentes.
33
34
EJEMPLO 2
Considere la relacin J
35
36
39
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.
La replicacin exige ms complejidad de procesamiento del DDBMS por que cada
copia de dato debe ser mantenida por el sistema.
40
buscar siempre de darle soluciones al usuario, pues este ser el que al final de
cuentas interesa.
Existen en la actualidad infinidad de tecnologas en cuanto a los gestores de la
base de datos se refiere, el que utilizaremos (el ms actual) ser SQL SERVER,
este gestor comenz a crearse por la dcada de los 90s, ofrece muchas ventajas
sobre otros gestores, la nica desventaja que podramos encontrar en su
compatibilidad con los Windows ms comerciales como el 98, XP entre otros.
Se preguntaran que tiene que ver el gestor con los algoritmos de datos no
replicados, sin embargo la respuesta es muy sencilla, y esta es que este algoritmo
es fcil de implantar en SQL SERVER.
2.5.2 ALGORITMOS DE DISTRIBUCION DE DATOS REPLICADOS
Se refiere al almacenamiento de copias de datos en sitios mltiples, puede ser
para satisfacer requerimientos de informacin, adems de mejorar la
disponibilidad de los datos y el tiempo respuesta; finalmente estas copias reducen
los costos de comunicacin y de consulta total.
Los datos replicados se someten a la regla de consistencia mutua, la cual requiere
que todas las copias de fragmentos de datos sean idnticas, esto quiere decir que
cuando hay una actualizacin de la base de datos se realiza en todos los sitios
donde hay replicas.
El algoritmo de distribucin de datos replicados ser realizado principalmente para
los datos que ya tengan una copia aunque es muy til, lo cual podemos asegurar
que su utilizacin y programacin depender de un 100% del gestor que se
utilizando
SQL SERVER a pesar de su facilidad de utilizacin tambin incorpora
herramientas sofisticadas para aquellos usuarios de nivel avanzado. Entre algunas
de las novedades que trae SQL SERVER, es que integra un servidor completo y
un mdulo para la transformacin de datos.
Otras de las caractersticas que posee SQL SERVER es un bloqueo dinmico a
nivel de fila, paralelismo entre consultas; consultas distribuidas y permite aceptar
bases de datos de gran tamao.
Para crear una base de datos en SQL SERVER lo podemos hacer primeramente
usando el asistente de base de datos y la interfaz predefinida para la creacin de
base de datos.
Tabla en SQL SERVER
Columna Name Data Type
Lenght
Esta parte se debe Aqu se coloca el Tamao
colocar todos los tipo de dato que campo.
nombres de los lleva el campo
campos que tendr anteriormente
la tabla.
ubicado.
Allow Nulls
del Si se activa esta
opcin significara
que esta opcin
permitir
valores
nulos.
43
44
TRMINOS DE REPASO
Base de datos distribuidos
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
Fragmentacin mixta o hibrida
Grado de fragmentacin
Completitud
Reconstruccin
Disyuncin
Algoritmos de colocacin de los datos
Algoritmos de distribucin de datos no replicados
Default value
Scale
Identify
Identify Seed
Is Row Guid
45
AUTO EVALUACION
1.- En el diseo de bases de datos distribuidas se debe considerar el problema de
cmo distribuir la informacin entre diferentes sitios, cuales son:
2.- Qu diferencia hay entre la estrategia ascendente (botton up) y la estrategia
descendente (top-Dow)
3.- Mencione los pasos para realizar la estrategia descendente (top-Dow):
4.- Cuales son las caractersticas que un diccionario de datos debe cumplir
5.- La independencia de datos se puede dar en dos aspectos, mencinelos:
6.- Cual es la diferencia entre la transparencia de localizacin y la transparencia
de fragmentacin.
7.- Menciona 2 ventajas de la transparencia de replica
8.-En que consiste la fragmentacin de datos
9.- La fragmentacin de la informacin se puede llevar a cabo de tres formas,
cuales son:
10.-Define la fragmentacin vertical y ejemplifique
11.- La fragmentacin mixta puede llevarse a cabo de tres formas diferentes,
cuales son y descrbalos
12.- Ejemplifique la fragmentacin mixta HV
13.-Mencione las estrategias que utiliza la distribucin de datos:
14.-En que consisten los algoritmos de distribucin de datos no replicados
15.-Que diferencia existe entre los algoritmos de distribucin de datos no
replicados y los algoritmos de distribucin de datos replicados.
46
47
Las operaciones bsicas son suma (+), resta (-), divisin (/) y multiplicacin
(*).
FROM empleado;
48
FROM empleado;
FROM empleado
FROM empleado;
Operaciones Aritmticas con Fechas en Consultas
49
SELECT
emp_nombre,
ADD_MONTHS(emp_fecha_inicio,6) AS Fecha
Evaluacin
FROM empleado;
emp_fecha_inicio,
50
Ejemplo:
E( ENO, ENOMBRE, TITULO )
G( ENO, JNO, RESPONSABLE, JORNADA )
y la siguiente consulta de usuario:
"Encuentre todos los nombres de empleados que manejan un proyecto"
La expresin de la consulta en SQL se puede ver como
SELECT ENOMBRE
FROM E, G
WHERE E.ENO = G.ENO AND RESPONSABLE = "ADMINISTRADOR"
Dos consultas equivalentes en el lgebra relacional que son transformaciones
correctas de la consulta en SQL son:
51
52
53
Q : elNombre
EMPLEADO
* DEPARTAMEN
TO ya que
Supongamos que
resultado
viaja al nodo
3, denominado
nodo respuesta
, Apellido, NombreDpto
ser el lugar donde se requiera el resultado de dicha consulta. Sin embargo, ni la
relacin EMPLEADO ni DEPARTAMENTO residen en dicho nodo.
Ejemplo de consulta distribuida:
40 * 10000
NombreDeppto
10
400000
Nodo empleado1
Resultado de la
consulta
Nombre 15
Apellido 15
54
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
Nodo 240Departamento
* 10000
3500
1003500
Nodo 3 Resultado
1000000
2.
Transferir la relacin EMPLEADO al nodo 2, ejecutar el join en este
nodo y enviar el resultado al nodo 3. Esto implicara transferir 1.000.000
bytes de EMPLEADO + 400.000 bytes del resultado, es decir: 1.400.000
bytes.
Contador:
1000000 +
400000
Nodo 2 departamento
1400000
Nodo 3 Resultado
Nodo 1 empleado
1000000
55
Nodo 3 Resultado
403500
Nodo 1 empleado
403500
56
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.
Definicin de rbol de consulta
Un rbol de consulta es una estructura de rbol que corresponde a una expresin
del lgebra relacional, donde las relaciones iniciales son representadas a travs
de los nodos hojas del rbol y las operaciones son representadas en los nodos
internos.
Una ejecucin de un rbol de consulta consiste en la ejecucin de una operacin
de un nodo interno siempre que sus operadores estn disponibles y luego
sustituyendo este nodo por la relacin que resulte de ejecutar la operacin.
La ejecucin termina cuando el nodo raz es ejecutado y produce la relacin
resultante.
El bloque de consulta tiene la siguiente forma:
SELECT < lista de atributos >
FROM < lista de tablas>
WHERE < condicin >
La lista de atributos, es la lista de nombres de atributos cuyos valores sern
recuperados en la consulta.
La lista de tablas, es la lista de nombres de las tablas o relaciones necesarias para
procesar la consulta.
La condicin, es la expresin condicional (booleana) que identifica las tuplas que
sern recuperadas por la consulta.
Ejemplo de rbol de consulta
Listar los nombres de los empleados nacidos antes de 1960 que trabajen en un
proyecto llamado Gminis
57
SELECT enombre
FROM Empleado, Trabaja-en, Proyecto
WHERE pnombre = Gminis AND pnumero = pnum AND Empleado.c.i.=Trabajaen.c.i. AND fnac < 01/01/1960
58
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.
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.
DELETE no necesitan una lista de objetivos, ya que no producen ningn
resultado. CTID
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)
59
para la fila de resultado final debe ser ejecutado o no. SQL Es la clusula WHERE
de una instruccin SQL.
3.2.2 TRANSFORMACIONES EQUIVALENTES
Cuando una base de datos se encuentra en mltiples servidores y distribuye a un
nmero determinado de nodos tenemos:
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.
En esta fragmentacin lo que no se quiere es perder la consistencia de los datos,
por lo tanto se respetan las formas normales de la base de datos.
Bueno para realizar una transformacin en la consulta primero desfragmentamos
siguiendo los estndares marcados por las reglas formales y posteriormente
realizamos el envi y la maquina que recibe es la que muestra el resultado
pertinente para el usuario, de esta se puede producir una copia que ser la
equivalente a la original.
3.2.3 MTODOS DE JOIN
La sentencia JOIN en SQL permite combinar registros de dos o ms tablas en una
base de datos relacional. En el Lenguaje de Consultas Estructurado (SQL), hay
tres tipos de JOIN: interno, externo, y cruzado.
Matemticamente, JOIN es composicin relacional, la operacin fundamental en el
lgebra relacional, y generalizando es una funcin de composicin.
60
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
Apellido
IDDepartamento
Andrade
31
Jordn
33
Steinberg
33
Rbinson
34
Solano
34
36
NombreDepartamento IDDepartamento
Ventas
31
Ingeniera
33
Produccin
34
Mercadeo
35
61
62
Resultados:
33
Ingeniera
33
Rbinson
34
Produccin
34
Steinberg
33
Ingeniera
33
Andrade
31
Ventas
31
Jordn
33
Ingeniera
33
Andrade
31
Ventas
31
Rbinson
34
Produccin
34
Solano
34
Produccin
34
Gaspar
36
NULL
NULL
Steinberg
33
Ingeniera
33
64
Empleado.
Apellido
Solano
34
Produccin
34
Jordn
33
Ingeniera
33
Rbinson
34
Produccin
34
Steinberg
33
Ingeniera
33
Andrade
31
Ventas
31
NULL
NULL
Mercadeo
35
65
Solano
34
Produccin
34
Jordn
33
Ingeniera
33
Rbinson
34
Produccin
34
Gaspar
36
NULL
NULL
Steinberg
33
Ingeniera
33
Andrade
31
Ventas
31
NULL
NULL
Mercadeo
35
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.
Algunos sistemas de bases de datos no soportan esta funcionalidad, pero esta
puede ser emulada a travs de las combinaciones de tabla izquierda, tabla
derecha y de la sentencia de unin.
66
67
Empleado.
Apellido
Andrade
31
Ventas
31
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
68
Jordn
33
Produccin
34
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
69
70
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.
El catlogo de la base de datos guarda informacin estadstica de cada una de las
relaciones como tambin de los ndices de cada una de la relaciones, estas
estadsticas permiten estimar los tamaos de los resultados de varias
operaciones.
Una mala administracin de la informacin que contiene el catlogo conducir
inevitablemente a una desafortunada eleccin del plan de ejecucin.
Consiste en la actualizacin automtica de las estadsticas que algunos motores
de base de datos incluyen como opcin. Otro enfoque es la opcin de guardar en
el catlogo planes de ejecucin precalculados que adems le ahorran al motor el
tiempo de clculo del plan.
Uno de los primeros optimizadores de consultas y el que se conoce como base
para la mayora de los optimizadores tradicionales es el optimizador de System R.
System R es un optimizador basado en costos pero que utiliza heursticas para
desplazar selecciones y proyecciones hacia abajo en el rbol de la consulta. El
primer paso de un optimizador de consultas es encontrar una expresin del
lgebra de relaciones que sea equivalente a la expresin dada y cuyo costo
estimado de ejecucin sea menor.
La optimizacin incide:
71
72
73
Descomposicin de consultas
La primera capa descompone una consulta en el clculo relacional en una
consulta en el lgebra relacional que opera sobre relaciones globales. Consiste de
cuatro partes:
1. Normalizacin. Involucra la manipulacin de los cuantificadores de la
consulta y de los calificadores de la misma mediante la aplicacin de la
prioridad de los operadores lgicos.
2. Anlisis. Se detecta y rechazan consultas semnticamente incorrectas.
3. Simplificacin. Elimina predicados redundantes.
4. Reestructuracin. Mediante reglas de transformacin una consulta en el
clculo relacional se transforma a una en el lgebra relacional. Se sabe que
puede existir ms de una transformacin. Por tanto, el enfoque seguido
usualmente es empezar con una consulta algebraica y aplicar
transformaciones para mejorarla.
Localizacin de Datos
La entrada a esta capa es una consulta algebraica definida sobre relaciones
distribuidas. El objetivo de esta capa es localizar los datos de la consulta usando
la informacin sobre la distribucin de datos. Esta capa determina cuales
fragmentos estn involucrados en la consulta y transforma la consulta distribuida
en una consulta sobre fragmentos.
Optimizacin Global de Consultas
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.
Optimizacin Local de Consultas
El trabajo de la ltima capa se efecta en todos los nodos con fragmentos
involucrados en la consulta. Cada subconsulta que se ejecuta en un nodo, llamada
consulta local, es optimizada usando el esquema local del nodo. Hasta este
momento, se pueden eligen los algoritmos para realizar las operaciones
relacionales. La optimizacin local utiliza los algoritmos de sistemas centralizados.
74
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.
La optimizacin local se basa especficamente en condiciones locales dentro de
un programa fuente, y no se contempla el flujo de ejecucin del programa, para
este tipo de optimizacin lo que se contempla es particionar el cdigo en bloques
bsicos de cdigo (alto nivel) y sobre estos fragmentos se lleva a cabo la
optimizacin.
El trabajo de la ltima capa se efecta en todos los nodos con fragmentos
involucrados en la consulta. Cada subconsulta que se ejecuta en un nodo, llamada
consulta local, es optimizada usando el esquema local del nodo. Hasta este
momento, se pueden eligen los algoritmos para realizar las operaciones
relacionales. La optimizacin local sirve cuando un bloque de programa o seccin
es crtico por ejemplo: la E/S, la concurrencia, la rapidez y confiabilidad de un
conjunto de instrucciones.
Caractersticas
La optimizacin local se realiza sobre mdulos del programa.
La optimizacin slo se ve reflejada en dichas secciones.
Como el espacio de soluciones es ms pequeo la optimizacin local es
ms rpida.
75
TRMINOS DE REPASO
76
AUTO EVALUACION
77
78
Recuperacin de fallas
La palabra transaccin describe una secuencia de operaciones con uno o ms
recursos que transforman su estado actual en un nuevo estado de consistencia.
Es un conjunto de operaciones sobre datos que son tratadas como una unidad.
Una transaccin puede terminar, haciendo sus cambios persistentes, o abortar
voluntaria o involuntariamente
Una transaccin es una coleccin de operaciones que hacen transformaciones
consistentes de los estados de un sistema conservando la consistencia del
sistema. Una base de datos est en estado consistente si cumple todas las
restricciones de integridad definidas sobre ella. Los cambios de estado se dan
debido a actualizacin, insercin y eliminacin de la informacin. Se quiere
asegurar que la base de datos no entre en un estado de inconsistencia, pero
durante la ejecucin de una transaccin, la base de datos puede estar
temporalmente en un estado inconsistente. Lo importante aqu es asegurar que la
base de datos vuelva a un estado consistente al concluir la ejecucin de una
transaccin (Figura A)
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.
79
UPDATE J
SET BUDGET = BUDGET*1.1
WHERE JNAME = "CAD/CAM"
Esta consulta puede ser especificada, usando la notacin de SQL, como una
transaccin otorgndole un nombre:
Begin_transaction ACTUALIZA_PRESUPUESTO
begin
UPDATE J
SET BUDGET = BUDGET*1.1
WHERE JNAME = "CAD/CAM"
end.
80
Ejemplo 2: Considere una agencia de reservaciones para lneas areas con las
siguientes relaciones:
FLIGHT( FNO, DATE, SRC, DEST, STSOLD, CAP )
CUST( CNAME, ADDR, BAL )
FC( FNO, DATE, CNAME, SPECIAL )
Una versin simplificada de una reservacin tpica puede ser implementada
mediante la siguiente transaccin:
Begin_transaction Reservacin
begin
input( flight_no, date, customer_name );
EXEC SQL UPDATE FLIGHT
SET STSOLD = STSOLD + 1
WHERE FNO = flight_no
AND DATE = date
EXEC SQL INSERT
INTO FC( FNAME, DATE, CNAME,
SPECIAL )
VALUES (flight_no, date, customer_name,
null )
output("reservacin terminada");
end.
Las transacciones cuentan con las siguientes propiedades:
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
81
End
Transacciones anidadas.- Consiste en tener transacciones que pueden ser de
otras transacciones, estn incluidas dentro de otras de un nivel superior que se les
conoce como subtransacciones.
Por ejemplo:
Begin_transaction Reservacin
Begin_transaction Vuelo
82
End. (Vuelo)
Begin_transaction Hotel
End
End.
Una transaccin anidada da otra transaccin conserva las mismas propiedades
que la de sus padres, esto implica, que puede contener as mismo transacciones
dentro de ella.
Existen restricciones obvias en una transaccin anidada: debe empezar despus
que su padre y debe terminar antes que l. Ms an, el commit de una
subtransaccin es condicional al commit de su padre, en otras palabras, si el
padre de una o varias transacciones aborta, las subtransacciones hijas tambin
sern abortadas.
Las transacciones anidadas brindan un nivel ms alto de concurrencia entre
transacciones. Ya que una transaccin consiste de varias transacciones es posible
tener
mayor
concurrencia
dentro
de
una
sola
transaccin.
As tambin, es posible recuperarse de de fallas de forma independiente de cada
subtransaccion. Esto limita el dao a una parte ms pequea de la transaccin,
haciendo
que
el
costo
de
la
recuperacin
sea
el
menor.
Tambin se deben considerar el orden de las lecturas y escrituras. Si las acciones
de lectura y escritura pueden ser mezcladas sin ninguna restriccin, entonces, a
este tipo de transacciones se les conoce como Generales .Por el contrario, si se
restringe o impone que un dato debe ser ledo antes de que pueda ser escrito
entonces se tendrn transacciones Restringidas. Si las transacciones son
restringidas a que todas las acciones de lectura se realicen antes de las acciones
de escritura entonces se les conoce como de Dos Pasos. Finalmente existe un
modelo de accin para transacciones restringidas en donde se aplica aun ms la
restriccin de que cada par < read , write > tiene que ser ejecutado de manera
atmica.
4.1.2 EJECUCIN DE TRANSACCIONES CENTRALIZADA Y DISTRIBUIDA
Los siguientes son los aspectos ms importantes relacionados con el
procesamiento de transacciones
Modelo de estructura de transacciones.
Es importante considerar si las transacciones son planas o anidadas.
Consistencia de la base de datos interna.
Los algoritmos de control de datos tienen que satisfacer las restricciones de
integridad cuando una transaccin pretende hacer un compromiso.
83
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.
Algoritmos de control de concurrencia
Deben sincronizar la ejecucin de transacciones concurrentes bajo el criterio de
correctitud. La consistencia entre transacciones se garantiza mediante el
aislamiento de las mismas.
Protocolos de control de replicas
Se refiere a cmo garantizar la consistencia mutua de datos replicados.
El procesamiento de transacciones bsicamente consiste en una serie de
modificaciones (transacciones) a un determinado recurso del sistema (por ejemplo
una base de datos) y en donde se define un punto de inicio y un punto de
terminacin que define un bloque entre el conjunto de operaciones que son
realizadas.
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
inconsistencia temporal y conflictos. Para evitar lo anterior se implementan dos
maneras diferentes:
1.- Ejecutar transacciones serializadas: Es un sistema que permite el
85
87
88
Seriabilidad.
La seriabilidad consiste en asegurarse que los cambios siguen un orden
adecuado.
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.
T1=read (x) T2=write(x) T3=read (x)
Write (x) write (y) read (y)
Commit read(z) read (z)
Comimit commit
Una candelizacion de las acciones de las tres transacciones de las tres
transacciones anteriores puede ser:
H1 = {W2 (x), R1(x), R3(x), W1(x), C1, W2 (y), R3(y), R2(z), C2, R3(z), C3 }
En bases de datos distribuidos es necesario considerar dos tipos de historia para
poder generar calendarizaciones serializables: la canderizacion de la ejecucin de
transacciones globales sern serializables se deben satisfacer las siguientes
condiciones:
Cada historia local debe ser serializable.
Dos operaciones en conflicto deben estar en el mismo orden relativo en
todas las historias locales donde las operaciones aparecen juntas.
Dos operaciones Oij(x) y Okl(x) (i y k no necesariamente distintos) que accesan el
mismo dato de la base de datos x se dice que estn en conflicto si al menos una
de ellas es una escritura. De esta manera, las operaciones de lectura no tienen
conflictos consigo mismas. Por tanto, existen dos tipos de conflictos readwrite (o write-read) y write-write. Las dos operaciones en conflicto pueden
pertenecer a la misma transaccin o a transacciones diferentes. En el ltimo caso,
se dice que las transacciones tienen conflicto. De manera intuitiva, la existencia de
un conflicto entre dos operaciones indica que su orden de ejecucin es importante.
El orden de dos operaciones de lectura es insignificante.
Una calendarizacin completa define el orden de ejecucin de todas las
operaciones
en
su
dominio.
Formalmente,
una
calendarizacin
c
completa ST definido sobre un conjunto de transacciones T = { T1, T2, ..., Tn } es
un orden parcial STc = { S T, <T } en donde
89
90
wl
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.
91
92
93
4.2.2.2
94
95
96
97
98
99
100
101
Ejemplo:
<Ti,A,10,20>
<Tj,A,20,30>
<Tj,commit> Ti aborta pero Tj comete
Si se realiza un REDO primero, A quedar en 30 y el posterior UNDO dejar a A
con 10. El valor final de A debera ser 30, y eso es posible de alcanzar si se realiza
primero el UNDO y luego el REDO.
La operacin redo utiliza la informacin del registro de la base de datos y realiza
de nuevo las acciones que pueden haber sido realizadas antes de la falla, la
operacin redo genera nueva imagen.
102
Cuando ocurre un fallo del sistema es necesario consultar la bitcora para ver
cules transacciones deben rehacerse y cules deshacerse.
PASOS A SEGUIR ANTE FALLOS:
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>
y cual es el registro <Ti,start> ms cercano. *Luego, se aplica REDO o UNDO
sobre Ti y todas las transacciones que le suceden.
Un punto de control (checkpoints). Es registrado en la bitcora peridicamente
en el momento en que el sistema ha grabado en la BD en disco los efectos de
todas las operaciones de escritura de las transacciones confirmadas.
En un esquema sin concurrencia, en el proceso de recuperacin solamente se
consideraban: *Aquellas transacciones que comenzaron despus del checkpoint
ms reciente. *La nica transaccin (si exista) que estaba activa al momento del
ms reciente checkpoint. En un esquema concurrente puede haber ms de una
transaccin activa al momento del checkpoint.
103
104
bitcora para concluir en todo lo que se encuentra antes de ese punto esta
correcto y verificado.
Si el sistema se llega a caer se realiza la bitcora buscando del final al inicio el
primer registro check point ya encontrado se procesan los registros que se
encuentran despus del check point.
4.3.4 PROTOCOLOS 2PC DE CONFIABILIDAD DISTRIBUIDA
Es un protocolo que consume un gran volumen de tiempo en la ejecucin de una
Transferencia durante el procesamiento normal se puede eliminar accesos a disco
o el nmero de mensajes en el proceso de la transaccin la pertenencia 2pc
podra ser mejorado.
El 2pc es conocido tambin como el protocolo que no resume nada para que
trata todas las transacciones de la misma forma sin importar si las mismas
cometen o abortan.
En el protocolo de bloqueo de dos fases estricto cada subtransaccin debe
informar a las otras subtransacciones de que ha requerido todos los bloqueos.
Una transaccin T que fue iniciada en un sitio S y dividida en varias
subtransacciones ejecutndose en diferentes sitios.
Las subtransaccin se ordenan en un coordinador y las otras participantes.
105
Si est en estado decidiendo (no vot an) decide abortar y enva abort T
al coordinador.
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.
106
Ejercicio 2:
Se pide expresar en trminos de algebra relacional la secuencia de operaciones
necesaria para efectuar las siguientes consultas de base de datos:
A) Obtener los usuarios (U#) que usan al menos todos los programas del
distribuidor D1
U#(usuarios=distribuidor (programas)*( D1)
B) Obtener los programas (P#) que solo son usados por el usuario U5.
P# ( programas*(U#(usos)-U#( usuarios= 5(usos))
p# (programas*P#=P5(distribuidor))n p# ( programas*P#=P8(distribuidor))
Ejercicio 3:
B) videoclubes que disponen de alguna pelcula que le guste a jos prez
108
Ejercicio 5:
A) obtener los nombres de los alumnos que an aprobados todas las
practicas del tercer curso
nombre( alumno*(A# (curso=tercero(practica))))
B) Obtener los nombres de los alumnos que han entregado todas las
tercer curso
alumnos ( practica * ((curso=segundo(entrega)-alumno))n(
practicas(curso=tercero(entrega)
curso
alumno ( curso = segundo (entrega) * practica)
109
Ejercicio 6:
A) Obtener los ciclistas que solo han participado en competiciones
inferior a 15 das.
C# (ciclistas * (duracin = 15 min(competiciones)))
B) Obtener los ciclistas de equipos espaoles que han competido en
todas las competiciones de Espaa.
C#(equipo * (M# ( pas = Espaa (competiciones))))
C) Obtener los ciclistas que han obtenido un primer y un segundo lugar
puestos en competicin con una duracin inferior a 15 das.
nombre ( competiciones * ( puesto = primer (clasificacin *
(competiciones *( puesto=segundo(clasificacin))))) n C#( ciclistas
*(duracin = = 15 das(competicin)))
Ejercicio 7:
A) Obtener el nombre e aquellos conductores que hallan sido
denunciados por todas las infracciones inferiores a 100000 ptas.
nombreC (denuncia-(C#( infraccin = 10000(infraccin )) * (conductor))
B) Obtener el cdigo de aquellos agentes que solo hayan denunciado
infracciones de estacionamiento.
A# (agentes * infraccin ( descrip= estacionamiento (denuncia)
C) Obtener el cdigo de aquellos conductores que no tengan ninguna
denuncia pendiente de pago.
C#(conductores * denuncia ( pagada = S o N)
110
TERMINOS DE REPASO
Ejecucin de transacciones
Concurrencia
Estructura de las transacciones
Transacciones centralizadas
Transacciones distribuidas
Algoritmos basados en concurrencia
Serializacion
Interbloqueo
Protocolos redo
Protocolos undo
111
AUTOEVALUACION
1.- Defina que es una transaccin
2.- Explique las propiedades de las bases de datos para asegurar la consistencia
de los datos.
3.- Mencione que son las transacciones planas.
4.- Explique que son las transacciones anidadas.
5.- Mencione los aspectos ms importantes relacionados con el procesamiento de
transacciones.
6.- En qu consiste ejecutar transacciones serializadas?
7.- Explique en qu consiste ejecutar transacciones calendarizadas.
8.- Cul es la finalidad del control de concurrencias?
9.- Explique que son los candados de dos fases (2PL).
10.- Qu son los algoritmos basados en estampas de tiempo?
11.- Mencione las caractersticas de los algoritmos optimistas.
12.- Qu es el interbloqueo?
13.- Explique las formas de presentar el interbloqueo.
14.- Explique que es la confiabilidad.
15.- Explique los protocolos REDO/UNDO.
112
Bibliografa
Fundamentos de Bases de Datos, (Tercera Edicin), Autores: Abraham
Silberschatz, Henry F. Korth, S. Sudarshan
Modelos avanzados de bases de datos, universidad de castilla-la mancha,
esc.superior de informtica.
Distributed Databases, School of Science & Technology, Bell College (Hamilton)
Silberschatz, Korth, y Sudarshan, Fundamentos de Bases de Datos, 4 ed. Mc
Graw Hill
CONNOLLY, Thomas M. y BEGG, Carolyn E., Sistemas de bases de datos:
diseo, implementacin y gestin. Pearson - Addison Wesley, 4 edicin.
Armes A. Elmasri y Shamkant B. Navathe, Fundamentos de Sistemas de Bases de
Datos. 3 ed. Addison Wesley.
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-dedatosdistribuidas.html
http://catarina.udlap.mx/u_dl_a/tales/documentos/msp/alvarez_c_g/capitulo1.pdf
113