Upload
salvador-vazquez-martinez
View
430
Download
2
Embed Size (px)
Citation preview
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 1
BASES DE DATOS DISTRIBUIDAS
UNIDAD I FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
1.1 Conceptos básicos
Base de datos es un conjunto de información interrelacionados entre si para un fin
común.
Una Base de Datos Distribuida es un conjunto de archivos lógicamente relacionados, los
cuales se encuentran distribuidos, en varios sitios e interconectados por una red de
comunicación, en el cual:
Cada sitio es un sistema de base de datos en sí mismo.
Los sitios han convenido trabajar juntos (si es necesario) con el fin de que un
usuario de cualquier sitio pueda obtener acceso a los datos de cualquier punto de
la red tal como si todos los datos estuvieran almacenados en el sitio propio del
usuario.
Otras definiciones
Es una colección de múltiples bases de datos ubicados en distintas localidades y
unidades atreves de una red.
Una base de datos distribuida es un conjunto de múltiples bases de datos
lógicamente relacionados, las cuales se encuentran distribuidas en diferentes sitios
e interconectados por una red de comunicación.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 2
Es una base de datos construida sobre una red computacional y no por el contrario
en una máquina aislada. La información que constituye la base de datos esta
almacenada en diferentes sitios en la red, y las aplicaciones que se ejecutan
accesan datos en distintos sitios.
Es una colección de datos que pertenecen lógicamente a un sólo sistema, pero se
encuentra físicamente esparcido en varios "sitios" de la red. Un sistema de base de
datos distribuidas se compone de un conjunto de sitios, conectados entre sí
mediante algún tipo de red de comunicaciones, en el cual:
Cada sitio es un sistema de base de datos en sí mismo, pero, los sitios han
convenido en trabajar juntos (si es necesario) con el fin de que un usuario de
cualquier sitio pueda obtener acceso a los datos de cualquier punto de la red tal
como si todos los datos estuvieran almacenados en el sitio propio del usuario.
En consecuencia, la llamada "base de datos distribuida" es en realidad una especie
de objeto virtual, cuyas partes componentes se almacenan físicamente en varias
bases de datos "reales" distintas ubicadas en diferentes sitios.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 3
1.2 Objetivos de las B.D.D
Construir sistemas de distribuidos bases de datos que incluyen compartir la información,
fiabilidad, disponibilidad y agilizar el procesamiento de las consultas.
Ventajas de la distribución de datos.
La ventaja de los sistemas distribuidos es la capacidad de compartir y acceder a la
información de una forma fiable y eficaz.
Utilización compartida de los datos y distribución del control la ventaja principal de
compartir los datos por medio de la distribución en cada localidad pueda controlar hasta
cierto punto los datos almacenados localmente en un sistema distribuido, existe un
administrador global de la base de datos que se encarga de todo el sistema.
Fiabilidad y disponibilidad
Si se produce un fallo en una localidad del sistema distribuido, es posible que las demás
localidades, puedan seguir trabajando. En particular si los datos se repiten en varias
localidades, una transacción que requiere un dato específico puede contarse con
mecanismos para registrar al sistema con el mínimo de complicaciones.
La disponibilidad es fundamental para los sistemas de bases de datos que se utilizan en
aplicaciones de tiempo real.
Por ejemplo, si una línea área no puede tener acceso a la información, es posible que
clientes a favor de la competencia de la distribución de datos.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 4
Desventajas
La desventaja principal de los sistemas es la mayor complejidad que se requiere para
organizar una coordinación adecuada entre las localidades.
El aumento de la complejidad se refleja en:
Gesta del desarrollo del software.
Mayor posibilidad de errores.
Mayor tiempo extra de procesamiento.
Transparencia y autonomía
En la selección anterior se vio que una relación puede almacenarse de varias formas en
una base de datos distribuida.
En esta sección se analizan algunas de las estrategias y objetivos que son comunes a la
mayoría de las implementaciones de los sistemas de bases de datos distribuidas.
Transparencia de la ubicación
Permite a un usuario acceder a los datos sin conocer, tener que ver los sitios donde
residen los mismos. Las ubicaciones de los datos están ocultas al usuario.
Transparencia de la duplicación
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 5
Significa que existe más de una copia de los datos, una sola copia se debe escoger cuando
se van a recuperar, datos y todas las copias se deben actualizar.
Independencia de la configuración
Permite a la organización añadir o remplazar hardware sin tener que estar cambiando los
componentes de software existentes en el SGBD (Sistema Gestor de Bases de Datos).
SGBD homogéneos
A veces es deseable integrar bases de datos mantenidos por diferentes SGBD sobre
computadoras diferentes.
Duplicación de datos
Ocurre si el sistema mantiene varias copias idénticas de una relación R, con cada copia
almacenada en un sitio diferente.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 6
1.3 Disciplinas de estudio
La disciplina de los sistemas de bases de datos, es necesario conocer cuál ha sido la
evolución y estado actual de la tecnología de bases de datos, con el objetivo de estar
preparados para los cambios que, inevitablemente, se van a dar en el área de las bases de
datos.
Para ello, se relata brevemente la evolución de los sistemas de bases de datos,
centrándose en los fundamentos de la tecnología actual y su motivación. Se Hacen
repasos de las nociones y evoluciones básicas de los modelos prerelacionales, relacional,
objetual y objeto-relacional, las bases de datos distribuidas, multimedia, los almacenes de
datos, la relación entre las bases de datos y la web, así como otras áreas y aplicaciones.
Finalmente, se estudia sucintamente la sociología de la disciplina, su interrelación con
otras disciplinas del área de Lenguajes y Sistemas Informáticos y las organizaciones,
congresos y publicaciones más importantes.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 7
1.4 Arquitectura de bases de datos distribuidas
Hablar de bases de datos distribuidas es hablar de todo unas pocas bases de datos dentro
de las cuales se ubican:
Los sistemas pararelos.
Los sistemas cliente/servidor.
Los sistemas distribuidos.
Sistemas paralelos
La base de datos esta en una sola maquina con varios CPU y varios discos duros.
Todos los usuarios acceden a esa maquina.
Estos sistemas mejoran la velocidad del procesamiento de E/S mediante la
utilización de CPU´S y discos en paralelo.
Arquitectura Cliente/Servidor
El cliente y el servidor pueden actuar como una sola entidad y también pueden
actuar como identidades separadas, realizando actividades o tareas
independientes.
Las funciones del cliente y el servidor pueden estar en plataformas separadas o en
la misma plataforma.
Un servidor da servicio a múltiples clientes en forma concurrente.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 8
Cada plataforma puede ser escalable independientemente, los cambios realizados
en las plataformas de los clientes o de los servidores, ya sean por actualización o
por remplazo tecnológico, se realizan de manera transparente para el usuario final.
La interrelación entre el hardware y el software están basados en una
infraestructura poderosa, de tal forma que el acceso de los recursos de la red no
muestra la complejidad de los diferentes tipos de formatos de datos y de los
protocolos.
Un sistema de servidores realiza múltiples funciones al mismo tiempo que
presenta una imagen de un solo sistema a las estaciones clientes. Esto se logra
combinando los recursos de cómputo que se encuentran físicamente separados en
un solo sistema lógico proporcionando de esta manera el servicio más efectivo
para el usuario final.
Ejemplo: un servidor puede convertirse en cliente cuando realiza la solicitud de
servicios a otras plataformas dentro de la red.
El cliente envía mensajes representados en solicitudes hacia el servidor de bases
de datos. Los resultados de cada orden de SQL son devueltos al cliente.
Sistemas distribuidos
Un objeto distribuido es aquel que esta gestionado por un servidor y sus clientes, invocan
sus métodos utilizando un método. El cliente invoca el método mediante un mensaje al
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 9
servidor que cuestiona al objeto, se ejecuta el método del objeto con el servidor y el
resultado se vuelve al cliente en otro mensaje.
Es una colección de datos construida sobre una red y que pertenece lógicamente, a un
solo sistema distribuido la cual cumple las siguientes condiciones.
La información de la base de datos esta almacenada físicamente en diferentes sitios de la
red.
Cada sitio de la red, la parte de la información, se constituye con una base de datos en si
mismo. Lo anterior expresa claramente que estas bases de datos paralelas necesitan
manejar datos extremadamente grandes, incluso en terabytes, y estos datos se deben
procesar en cuestiones de segundos.
Un sistema distribuido tiene una gran ventaja porque la información esta distribuida, por
si alguna maquina llegara a fallar.
Algunas ventajas contra el sistema paralelo a distribuido:
Interfaz de usuario.- Es la representación del sistema, como el usuario interactua con el
software, es una aplicación.
Sistema subyacente.- Todo lo que tiene estructura de la base de datos.
Diferencias.-
Cliente/servidor.- Están integrados en una sola aplicación. El servidor puede ser cliente
cuando solicita un servicio a otra aplicación.
Centralizado.- Se dice que la interfaz esta separada con bases de datos.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 10
En el sistema centralizado toda la información se encuentra en un solo nodo y
nunca se convierte en servidor.
En el cliente/servidor, el servidor en algunas ocasiones se convierte en cliente.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 11
UNIDAD II DISEÑO DE BASES DE DATOS DISTRIBUIDAS
2.1 Consideraciones de diseño de bases de datos distribuidas
Se debe de tomar en cuenta diferentes factores a la hora de realizar una base de datos
distribuida.
Tres de los principales factores son:
Repetición.- El diseñador debe considerar que ese sistema mantendrá varias copias
idénticas. Cada copia se almacenara en una localidad diferente lo que resulta en una
repetición de la información.
Fragmentación.- Las relaciones de una base de datos distribuida se pueden dividir en
varios fragmentos. Cada fragmento se almacenara en una localidad diferente, es decir el
diseñador debe evaluar la propiedad de que haya fragmentado en diferentes localidades.
Repetición y fragmentación.- Esta consideración es de suma importancia porque es la
combinación de los dos conceptos antes mencionados; es decir, el sistema debe de ser
capas de mantener varias copias idénticas de cada uno de los fragmentos.
El diseñador de una base de datos distribuida debe saber que realizarla implica una toma
de decisiones sobre la ubicación de los programas que accederán a la base de datos y
también sobre los propios datos que constituyen la base de datos, esto es que, tendrá que
configurar una red de computadoras a lo largo de los diferentes puestos.
Fragmentación
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 12
Horizontal = Registros.
Vertical = Filas (Tuplas).
Los criterios del diseñador van a depender en gran medida del problema en si, es decir, el
diseñador tomara en cuenta el enfoque que le dará a la base de datos distribuida, porque
su prioridad será resolver el problema de la compañía, empresa u otro derivado para el
que se este trabajando.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 13
2.2 Diccionario de datos
Es un conjunto de aclaraciones con respecto a los datos, es decir en el diccionario se debe
colocar la información del tipo de dato, sus características, pero sobre todo donde esta
ubicado. Todo buen diseñador debe tener bien presente que esa información le será útil al
administrador de base de datos, el diseñador tiene la obligación de efectuar los
diccionarios que crea correspondientes, es decir crea uno para el usuario y otro para el
administrador.
Estos diccionarios se desarrollan durante el análisis de flujo de datos y ayuda a los
analistas que participan en la determinación de los requerimientos del sistema, su
contenido también se emplea durante el diseño del proyecto.
Identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso
inmediato a la información, se desarrolla durante el análisis de flujo de datos y auxilia a los
analistas que participan en la determinación de los requerimientos del sistema, su
contenido también se emplea durante el diseño.
En un diccionario de datos se encuentra la lista de todos los elementos que forman parte
del flujo de datos de todo el sistema. Los elementos más importantes son flujos de datos,
almacenes de datos y procesos.
El diccionario de datos guarda los detalles y descripción de todos estos elementos.
Ejemplo:
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 14
Campo/dato = Diccionario Tabla - Diccionario
Nombre Nombre
Alias Tipo
Estructura Tabla
Nombre – Tabla Relaciones
Nombre – Red Estructura
Nombre – Red
El diccionario de bases de datos distribuidas va a depender siempre y en su totalidad por
el diseñador, las decisiones que se tomen van enfocadas hacia la base de datos.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 15
2.3 Niveles de transparencia
¿Qué es la transparencia?
Es la separación de la semántica de alto nivel de un sistema de los aspectos de bajo nivel
relacionados a la implementación del mismo.
Un nivel de transparencia adecuado permite ocultar los detalles de implementación a los
usuarios.
La podemos ver como la ocultación de los usuarios y programadores de aplicación de los
componentes especificados por separado. De manera que vean una aplicación como un
todo y no como componentes separados.
La independencia de datos en ambiente distribuido, es el propósito fundamental de la
transparencia.
La transparencia la podemos encontrar en:
Manejo de la red de comunicación.
Manejo de copias repetidas
En la distribución o fragmentación de la información.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 16
2.3.1 Transparencia de localización
Transparencia de Localización.- Permite a los usuarios acezar a la información de un
archivo cualquiera de la BD sin necesidad de indicar en que computadora se encuentra el
archivo.
En un sistema de base de datos distribuidos, los datos se accedan sobre una red de
computadoras, pero las aplicaciones no deben notar que existen.
La transparencia de datos es la inmunidad de las aplicaciones de los usuarios a los cambios
en la definición y/o organización de los datos.
Esta transparencia se puede dar en dos aspectos: lógica y física.
Lógica.- Si se realiza un cambio en la estructura en la tabla, el usuario no se da cuenta.
Físico.- Es el almacenamiento, el usuario no tiene porque enterarse donde están
almacenados los datos o el cambio de la información a otro dispositivo de
almacenamiento.
El éxito de un buen sistema, parte de un buen análisis.
Sistema de información: documenta todo.
Sistema automatizado: herramientas electrónicas “Programador”.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 17
2.3.2 Transparencia de fragmentación
Transparencia de Fragmentación.- Es de mayor nivel, el usuario o programador no
necesita saber que una base de datos esta en particiones. Ni los nombres, ni la ubicación
se especifican antes de acceder a los datos.
Permite al usuario acezar a la información de un archivo fragmentado como si todos los
datos del archivo estuvieran en una misma computadora. Es decir, cuando se crea
transparencia de fragmentación, el sistema crea la ilusión de que los archivos no están
fragmentados.
La transparencia a nivel de fragmentación de datos permite que cuando los objetos de la
bases de datos están fragmentados, el sistema tiene que manejar la conversión de
consultas de usuario definidas sobre relaciones globales a consultas definidas sobre
fragmentos.
Así también, será necesario mezclar las respuestas a consultas fragmentadas para obtener
una sola respuesta a una consulta global. El acceso a una base de datos distribuida debe
hacerse en forma transparente.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 18
2.3.3 Transparencia de réplica
Transparencia de réplica: los usuarios no pueden indicar el número de copias existentes.
La transparencia sobre la replicación de datos se refiere a que si existen replicas de
objetos de la base de datos, su existencia debe ser controlada por el sistema, no por
usuario, se debe tener en cuenta que cuando el sistema se encarga de manejar las replicas
en un sistema, el trabajo de éste es mínimo por lo que se puede obtener una eficiencia
mayor.
Sin embargo, el usuario puede olvidarse de mantener la consistencia de las réplicas
teniendo así datos diferentes.
Por lo que se sugiere que las replicas las haga el sistema en su totalidad sin que el usuario
se percate si esta trabajando o no sobre una replica.
Los usuarios ven cada objeto de datos como lógicamente ú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
ubicación de esas réplicas.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 19
2.4 Fragmentación de datos
La forma en cómo se pueden extraer los datos al ser consultados en un Ambiente
distribuido, se puede hacer una fragmentación de distintas tablas pertenecientes a
diversas Bases de Datos localizadas en diversos servidores.
Existen tres tipos de fragmentación:
� Fragmentación horizontal.
� Fragmentación vertical.
� Fragmentación híbrida.
Ejemplo:
Si la relación r esta fragmentada, se dividirá en un cierto numero de fragmentos r1,
r2,….rn. Estos fragmentos contienen suficiente información como para permitir la
reconstrucción de la relación original r. como se vera, esta reconstrucción puede tener
lugar mediante la aplicación de la operación unión o mediante un tipo especial de
operación reunión en los diferentes fragmentos.
Hay dos esquemas diferentes para fragmentar una relación:
� Fragmentación horizontal
� Fragmentación vertical.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 20
La fragmentación horizontal divide la relación asignado cada tupla de r a uno o varios
fragmentos.
La fragmentación vertical divide la relación descomponiendo el esquema R de la relación r
de un modo especial que se tratara posteriormente.
Estos dos esquemas se pueden aplicar sucesivamente a la misma relación, lo que da lugar
a cierto número de fragmentos diferentes. Nótese que parte de la información pueda
aparecer en varios de los fragmentos.
Se ilustraran estos enfoques fraccionando la relación cuenta con el esquema siguiente:
Esquema-cuenta = (nombre-sucursal, numero-cuenta, saldo)
Relación de ejemplo cuenta:
Nombre-sucursal Numero-cuenta Saldo
Guadarrama C-305 100.000
Guadarrama C-226 64.200
Cercedilla C-177 41.000
Cercedilla C-402 2.000.000
Guadarrama C-155 12.400
Cercedilla C-408 224.600
Cercedilla C-639 150.000
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 21
2.4.1 Fragmentación horizontal
Fragmentar significa tomar datos lógicamente de una tabla para formar otro.
La fragmentación horizontal se realiza sobre las tuplas de la relación, cada fragmento que
se toma será un subconjunto de las tuplas de la relación.
Existen dos variantes de la fragmentación horizontal; la primera derivada.
La fragmentación horizontal primaria de una relación se desarrolla empleando los
predicados definidos en esa relación.
La fragmentación horizontal derivada consiste en dividir en una relación partiendo de los
predicados definidos sobre alguna otra.
Información necesaria para la fragmentación horizontal.
Fragmentación vertical
Información necesaria para la fragmentación vertical.
Fragmentación hibrida.
Información necesaria para la fragmentación horizontal
Esta información implica al esquema conceptual global. Es importante señalar como las
relaciones de las bases de datos se conectan con otras.
Es una conexión de relaciones normalmente se denominan relación propietaria, a aquella
situada en la cola del enlace, mientras que se llama relación miembro a la ubicada en la
cabeza del vinculo. Dicho de otra forma podemos pensar en relaciones de origen cuando
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 22
nos retiramos a las propietarias y relaciones destinos cuando lo hagamos con las
miembro.
Definiremos dos funciones:
Propietaria y miembro. Las cuales proyectaran un conjunto de enlaces sobre un conjunto
de relaciones destino cuando le hagamos con las miembro. Además dado un enlace,
devolverán el miembro y propietario de la relación, respectivamente. La información
cuantitativa necesaria gira entorno a la cordialidad de cada relación notada como
cordialidad.
Ejemplo:
La relación r se divide en cierto número de subconjuntos, r1, r2,….rn.
Cada tupla de la relación r debe pertenecer al menos a uno de los fragmentos, de modo
que se pueda reconstruir la relación original si fuera necesario.
Un fragmento puede definirse como una selección de la recolección global r. es decir, se
utiliza un predicado Pi para construir un fragmento ri de la manera siguiente:
ri= (selección) Pi(r)
Se puede obtener la reconstrucción de la relación r tomando la unión de todos los
fragmentos, es decir,
r=r1 U r2 U…. Urn
A modo de ilustración, supóngase que la relación r es la relación cuenta del ejemplo
anterior.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 23
Esta relación se puede dividir en n fragmentos diferentes, cada uno de los cuales consiste
en tuplas de cuentas que pertenecen a una sucursal concreta.
Si el sistema bancario solo tiene dos sucursales --- Guadarrama y Cercedilla---, entonces
solo habrá dos fragmentos diferentes:
Cuenta1= (selección) nombre-sucursal=<<Guadarrama>> (cuenta)
Cuenta 2= (selección) nombre-sucursal=<<Cercedilla>> (cuenta)
Los dos fragmentos se muestran enseguida:
Fragmentación horizontal de la relación cuenta
Nombre-sucursal Numero-cuenta Saldo
Guadarrama C-305 100.000
Guadarrama C-226 64.200
Guadarrama C-155 12.400
Cuenta 1
Nombre-sucursal Numero-cuenta Saldo
Cercedilla C-177 41.000
Cercedilla C-402 2.000.000
Cercedilla C-408 224.600
Cercedilla C-639 150.000
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 24
Cuenta 2
El fragmento 1 se guarda en el emplazamiento Guadarrama. El fragmento cuenta 2 se
guarda en el emplazamiento Cerdilla.
En nuestro ejemplo los fragmentos son disjuntos. Cambiando los predicados de selección
utilizados para generar los fragmentos, se puede que una tupla de r determinada aparezca
en más de una de las ri.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 25
2.4.2 Fragmentación vertical
Una fragmentación vertical de una relación R produce fragmentos R1, R2,…, Rr, cada uno
de los cuales contiene un subconjunto de los atributos de R así como la llave primaria de
R. El objetivo de la fragmentación vertical es particional una relación en un conjunto de
relaciones más pequeñas de manera que varias de las aplicaciones de usuario se
ejecutarán sobre un fragmento. En este contexto, una fragmentación “óptima” es aquella
que produce un esquema de fragmentación que minimiza el tiempo de ejecución de las
consultas de usuario.
La fragmentación vertical ha sido estudiada principalmente dentro del contexto de los
sistemas de manejo de bases de datos centralizados como una herramienta de diseño, la
cual permite que las consultas de usuario traten con relaciones más pequeñas haciendo,
por tanto, un número menor de accesos a páginas.
La fragmentación vertical es inherentemente más complicada que particionamiento
horizontal ya que existe un gran número de alternativas para realizarla. Por lo tanto, se
utilizan heurísticas para hacer el particionamiento.
Los dos enfoques básicos son:
Agrupamiento.- Inicia asignando cada atributo a un fragmento, y en cada paso, algunos de
los fragmentos satisfaciendo algún criterio se unen para formar un solo fragmento.
División.- Inicia con una sola relación realizar un particionamiento basado en el
comportamiento de acceso de las consultas sobre los atributos.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 26
Información necesaria para la fragmentación vertical
La principal información que necesitaremos se refiere a las aplicaciones por tanto, este
punto tratara de especificar la información que de una aplicación que funciona sobre la
base de datos, podemos extraer teniendo en cuenta que la fragmentación vertical coloca
un fragmento de aquellos atributos a los que accede de forma simultanea, necesitaremos
alguna medida que defina con mas precisión el concepto de simultaneidad. Esta medida
es la afinidad de los atributos que indican la relación estrecha existente entre los
atributos. No es muy realista esperar valores por ello una forma para la cual obtengamos
esos valores partiendo de datos más básicos.
El principal dato relativo a las aplicaciones es la frecuencia de acceso. Sea Q =
{91….92..99}el conjunto de consultas de usuarios aplicaciones que funcionan sobre una
rotación R = (A1…..A2…..AN).
Ejemplo:
La fragmentación vertical de r(R) implica la definición de varios subconjuntos de atributos
R1, R2,….,Rn del esquema R tales que:
R=R1 U R2 U…U Rn
Cada fragmento ri de r queda definido por:
Ri=( proyección) R1 (r)
La fragmentación debe hacerse de modo que se pueda reconstruir la relación de los
fragmentos tomando la reunión natural
R=r1 falta r2 falta r3 falta … falta rn
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 27
Un modo de asegurar que la relación r pueda reconstruirse es incluir los atributos de la
clave primaria de R en cada una de las Ri. De manera más general puede utilizarse
cualquier superclave.
A menudo resulta conveniente añadir un atributo especial, denominado id-tupla, al
esquema R. el valor de id-tupla de una tupla es único, y se utiliza para distinguir esa tupla
de las demás.
El atributo id-tupla es, por tanto, un candidato a clave del esquema ampliado, y se incluye
en cada uno de los Ri. La dirección física o lógica de una tupla puede utilizarse como id-
tupla, dado que cada tupla tiene una dirección única.
Para ilustrar la fragmentación vertical se considera un diseño de base de datos alternativo
para la base da datos bancarios que incluya el esquema siguiente:
Esquema-deposito= (nombre-sucursal, numero-cuenta, nombre-cliente, saldo)
Se muestra la relación depósito
Nombre-sucursal Numero-cuenta Nombre-cliente Saldo
Guadarrama C-305 García 100.000
Guadarrama C-226 Cordero 64.200
Cercedilla C-177 Cordero 41.000
Cercedilla C-402 Obeso 2.000.000
Guadarrama C-155 Obeso 12.400
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 28
Cercedilla C-408 Obeso 224.600
Cercedilla C-639 Badorrey 150.000
Se muestra la relación depósito de la figura anterior con identificadores de tupla
Nombre-sucursal Numero-cuenta Nombre-cliente Saldo Id-tupla
Guadarrama C-305 García 100.000 1
Guadarrama C-226 Cordero 64.200 2
Cercedilla C-177 Cordero 41.000 3
Cercedilla C-402 Obeso 2.000.000 4
Guadarrama C-155 Obeso 12.400 5
Cercedilla C-408 Obeso 224.600 6
Cercedilla C-639 Badorrey 150.000 7
Se muestra una descomposición vertical del esquema-deposito U {id-tupla}
Nombre-sucursal Nombre-cliente Id-tupla
Guadarrama García 1
Guadarrama Cordero 2
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 29
Cercedilla Cordero 3
Cercedilla Obeso 4
Guadarrama Obeso 5
Cercedilla Obeso 6
Cercedilla Badorrey 7
Deposito 1
Nombre-sucursal Saldo Id-tupla
Guadarrama 100.000 1
Guadarrama 64.200 2
Cercedilla 41.000 3
Cercedilla 2.000.000 4
Guadarrama 12.400 5
Cercedilla 224.600 6
Cercedilla 150.000 7
Deposito 2
Esquema-deposito-1 = (nombre-sucursal, nombre-cliente, id-tupla)
Esquema-seposito-2 = (numero-cuenta, saldo, id-tupla)
Las dos relaciones mostradas en la figura anterior resultan de procesar
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 30
Deposito1 = (selección) esquema-deposito-1(deposito)
Deposito2 = (selección) esquema-deposito-2(deposito)
Para reconstruir la relación depósito original a partir de los fragmentos hay que procesar
(Selección) esquema-deposito (deposito1 falta deposito2)
Nótese que la expresión
Deposito1 falta deposito2
Es una forma especial de reunión natural. El atributo de reunión es id-tupla.
Aunque el atributo id-tupla facilite la aplicación de la división vertical, no debe ser visible
para los usuarios, dado que un mecanismo interno de la aplicación y viola la
independencia de los datos, que es una de las virtudes principales del modelo relacional.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 31
2.4.3 Fragmentación híbrida o mixta
Fragmentación mixta o híbrida: En muchos casos la fragmentación vertical u horizontal
del esquema de la base de datos no será suficiente para satisfacer los requisitos de las
aplicaciones. Podemos combinar ambas, utilizando por ello la denominada fragmentación
mixta.
Cuando al proceso de fragmentación vertical le sigue una horizontal, es decir, se
fragmentan horizontalmente los fragmentos verticales resultantes, se habla de la
fragmentación mixta HV. En el caso contrario, estaremos ante una fragmentación VH. Una
característica común a ambas es la generación de árboles que representan la estructura
de fragmentación.
Ejemplo:
La relación r se divide en una serie de relaciones fragmentarias r1, r2,… rn. Cada
fragmento se obtiene como resultado de la aplicación del esquema de fragmentación
horizontal o vertical a la relación r, o a un fragmento de r obtenido con anterioridad.
A modo de ilustración, supóngase que la relación r es la relación depósito anterior.
Esta relación se divide en un principio en los fragmentos deposito1 y deposito2, tal y como
se definieron anteriormente. Ahora se puede volver a dividir el fragmento deposito1
utilizando el esquema de fragmentación horizontal en los dos fragmentos siguientes:
Deposito1a= (selección) nombre-sucursal=<<Guadarrama>> (deposito)
Deposito1b= (selección) nombre-sucursal=<<Cercedilla>> (deposito)
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 32
Por lo tanto, la relación r queda dividida en tres fragmentos: deposito1a, deposito1b y
deposito2.
Cada uno de los fragmentos puede residir en un emplazamiento diferente
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 33
2.5 Distribución de datos
La tarea de distribuir datos no es nada sencillo, sobre todo porque podemos cuidar las
consecuencias de los datos también debemos revisar que tipo de transacción se esta
ejecutando si es de lectura o de escritura de los datos.
¿Qué es una transacción?
Es la ejecución o unidad de programas que debe de conservar la consistencia de una B.D.
toda transacción tiene una característica principal que debe ejecutarse de manera
anatómica. Esto es, que ejecuta completamente todas las instrucciones de las
transacciones o no se ejecutan ninguna.
Ventajas de la distribución de datos
La principal ventaja de los sistemas distribuidos es la capacidad de compartir y acceder a
la información de una forma fiable y eficaz.
Utilización compartida de los datos y distribución del control
La ventaja principal de compartir los datos por medio de la distribución es que cada
localidad pueda controlar hasta cierto punto los datos almacenados localmente. En un
sistema centralizado, el administrador de base de datos de la localidad central controla la
base de datos. En un sistema distribuido existe un administrador global de la base de
datos que se encarga de todo el sistema. Parte de esta responsabilidad se delega al
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 34
administrador de base de datos de cada localidad. Dependiendo del diseño del sistema
distribuido, cada administrador local podrá tener un grado de autonomía diferente, que se
conoce como autonomía local. La posibilidad de contar con autonomía local es en muchos
casos una ventaja importante de las bases de datos distribuidas.
Fiabilidad y disponibilidad
Si se produce un fallo en una localidad de un sistema distribuido, es posible que las demás
localidades puedan seguir trabajando. En particular, si los datos se repiten en varias
localidades, una transacción que requiere un dato específico puede encontrarlo en más de
una localidad. Así, el fallo de una localidad no implica necesariamente la desactivación 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 mínimo de complicaciones.
La disponibilidad es fundamental para los sistemas de bases de datos que se utilizan en
aplicaciones de tiempo real. Por ejemplo, si una línea aérea no puede tener acceso a la
información, es posible que pierda clientes a favor de la competencia.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 35
Agilización del procesamiento de consultas
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 intersección se pueden aplicar en estos sistemas. En los casos en que
hay repetición de los datos, el sistema puede pasar la consulta a las localidades más
ligeras de carga.
Desventajas de la distribución de los datos
La desventaja principal de los sistemas distribuidos es la mayor complejidad que se
requiere para garantizar una coordinación adecuada entre localidades.
El aumento de la complejidad se refleja en:
• Coste del desarrollo de software: es más difícil estructura un sistema de bases de
datos distribuidos y por tanto su coste es menor
• Mayor posibilidad de errores: puesto que las localidades del sistema distribuido
operan en paralelo, es más difícil garantizar que los algoritmos sean correctos.
• Mayor tiempo extra de procesamiento: el intercambio de mensajes y los cálculos
adicionales son una forma de tiempo extra que no existe en los sistemas centralizados.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 36
2.5.1 Algoritmos de distribución de datos no replicados
Permite maximizar el costo de comunicación y al mismo tiempo maximizar el tiempo de
respuesta. El administrador de bases de datos debe de evaluar el modo de operar de la
base de datos, es decir como su nombre lo indica no podemos realizar el algoritmo en
aquellas copias, pero debe ser sobre la base de datos original.
La fragmentación hibrida es de preferencia lo que debe de llevar este tipo de algoritmos,
porque estas utilizan las tres fragmentaciones y las mas aconsejables.
Hablar de algoritmos implica sobre la Programación
Hay gestores que son muy flexibles en cuestiones de programación, mientras que otros
ofrecen más rendimiento. Así, al diseñar el algoritmo tendrá que hacer toda la
información referente a la vida de la base de datos pero por otro lado deberá buscar
siempre de darle soluciones al usuario, pues este será el que al final de cuentas interesa.
Existen en la actualidad infinidad de tecnologías en cuanto a los gestores de la base de
datos se refiere, el que utilizaremos (el mas actual) será SQL SERVER, este gestor comenzó
a crearse por la década de los 90´s, ofrece muchas ventajas sobre otros gestores, la única
desventaja que podríamos encontrar en su compatibilidad con los Windows mas
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 fácil de implantar en SQL SERVER.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 37
Tipos de datos:
Varchar2 (Tamaño).- Almacena cadenas de caracteres de una longitud variable, la
longitud máxima son 4000 caracteres.
Char (Tamaño).- Almacena caracteres con una longitud fija. Siendo 2000 caracteres el
máximo.
Number (Precisión, escala).- Almacena datos numéricos tanto enteros como decimales,
con o sin signo.
Precisión.- Indica el número máximo de dígitos que va a tener el dato.
Escala.- Indica el número de dígitos que puede hacer a la derecha del punto
decimal.
Long.- Almacena cadenas de caracteres de longitud variable puede almacenar hasta 2
Gigas de información.
Long raw.- Almacena datos binarios se emplea para el almacenamiento de graficos,
sonidos, etc. Su tamaño máximo es de 2 Gigas.
Date.- almacena información de fechas y horas, de forma predeterminada almacena un
adato, e el siguiente formato:
Siglo / Año / Mes / Día / Hora /Minutos / Segundos.
Este formato se puede cambiar con otros parámetros.
Raw (tamaño).- Almacena datos binarios, puede almacenar como mucho 2000 Bytes.
Rowid.- Se tarta de un campo que representa una cadena hexadecimal que indica la
dirección de una fila en su tabla.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 38
Nvarchar2 (tamaño).- Es similar al Varchar2 pero el tamaño de un carácter depende de la
elección del juego de caracteres. El tamaño máximo es de 2000 Bytes.
Nchar (tamaño).- Similar al Char y con las mismas características que el Nvarchar2.
Clock.- Similar al Long y se usa para objetos carácter.
Nclock.- Similar al Clock solo que el tamaño del carácter depende del juego de caracteres
utilizado.
Blob.- Similar al Long raw, este se usa para objetos binarios.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 39
2.5.2 Algoritmos de distribución de datos replicados
El algoritmo de distribución de datos replicados será realizado principalmente para los
datos que ya tengan una copia aunque es muy útil, lo cual podemos asegurar que su
utilización y programación dependerán un 100% del gestor que este utilizando.
SQL SERVER
Introducción
SQL SERVER es una de las mayores estrategias o inversiones que a hecho la compañía de
Microsoft, su versión fue hecha para Windows server y NT sin embargo, por las
innovaciones de interfaz y la facilidad de uso que tiene esta aplicación hizo necesaria que
se desarrollara para los Windows actuales como el vista y sus diferentes versiones.
SQL SERVER a pesar de su facilidad de utilización también 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 modulo para la transformación
de datos.
Otras de las características que posee SQL SERVER es un bloqueo dinámico a nivel de fila,
paralelismo entre consultas; consultas distribuidas y permite aceptar bases de datos de
gran tamaño.
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 creación de base de datos.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 40
Como crear una base de datos en SQL SERVER
Existen dos formas bien definidas que crear una base de datos por medio del asistente y
manualmente.
Manualmente:
Dentro de SQL SERVER existe Enterprise manager, se debe de entrar a el, para poder hacer
la base de datos.
1. Clic con el botón derecho al mouse, en la carpeta database.
2. Se elige la opción New y por ultimo clic sobre la opción New database.
3. De la siguiente ventana llenarempos los datos que corresponden.
Pasos para crear una tabla
1. Seleccionar el nombre de la base de datos.
2. Clic derecho en la tabla.
3. Clic en New table.
Columna Name Data Type Lenght Allow Nulls
Esta parte se debe
colocar todos los
nombres de los
campos que tendrá
la tabla.
Aquí se coloca el
tipo de dato que
lleva el campo
anteriormente
ubicado.
Tamaño del
campo.
Si se activa esta
opción significara
que esta opción
permitirá valores
nulos.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 41
Nulls = Aquellas que deben de llevar un dato X.
Net Nulls = no importa que no este lleno el campo Y.
Propiedades de los campos de las tablas
Descripción.- Esta propiedad es exclusiva para el diseñador o bien para el administrador.
Default value.- S e usa para especificar un valor predeterminado para la columna.
Precisión.- Se utiliza para campos numéricos, por aquí se indica la cantidad de dígitos que
llevara un numero.
Scale.- Indica el número de dígitos decimales.
Identify.- Si esta opción se marca con un si estaremos indicando que el campo tendrá un
número generado automáticamente.
Identify Seed.- Indica el valor inicial para el primer registró.
Identify Increment.- Indica el valor del incremento.
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 diseñador.
Formula.- Es una propiedad exclusiva y diseñadas para aquellos campos que necesitan
alguna función.
Collation.- En este campo se debe de especificar a que base de datos pertenece la tabla
que estamos generando se hace por default esta tabla pertenecerá a la base de datos
desde donde fue fragmentada.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 42
Utilización del asistente
La utilización del asistente de base de datos es bastante sencilla. Un asistente puede
activarse por el menú toolswizards. El mismo abre la primera ventana que nos servirá para
crear la base de datos el ítem data base y seguida doble clic en el ítem create base, lo cual
provoca que se abra la siguiente ventana.
En la etapa siguiente se sugiere un valor inicial para los archivos de la base de datos,
también indica el nombre que ya le hemos colocado a la base de datos.
SQL SERVER INTERPRISE MANAGER
NAME
LOCATION
NEXT CANCEL
SQL SERVER INTERPRISE MANAGER
FILE NAME SIZE (MB)
NOMBRE 1
BACK NEXT CANCEL
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 43
Después de presionar NEXT se deben ingresar algunos datos relativos al crecimiento de la
base de datos.
Después de presionar NEXT el asistente solicita el tamaño del archivo y longitud de
transacciones sugiriendo un tamaño inicial de 1 Megabyte.
SQL SERVER ENTERPRISE MANAGER
DO NOT AUTOMATICALLY GRAOW THE DATABASE
AUTOMATICALLY GROW THE DATABASE FILES
GROW THE FILES INMEGABYTES
GROW THE FILES BY PAREENT
MAXIMUN FILE SIZE
UNRESTRICTED FILE GROWTH
BACK NEXT CANCEL
X
10
SQL SERVER INTERPRISE MANAGER
FILE NAME SIZE (MB)
NOMBRE 1
BACK NEXT
CANCEL
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 44
La última de las ventanas el asistente solo nos muestra el resumen de las características
de las bases de datos que va a crearse.
Debemos presionar el botón de finish con esto se creara la base de datos.
Componentes de SQL SERVER
Tablas.- Almacenan información por medio de registros o filas, y se pueden relacionar con
otras tablas.
Diagramas de bases de datos.- Estos representan gráficamente los objetos de la base de
datos lo que permite su manipulación sin utilizar el lenguaje TRANSACT-SQL.
Índices.- Son archivos auxiliares o tipos especiales de archivos y su finalidad es acelerar el
proceso de acceso a un determinado registro o grupo de registros.
Vistas.- Son tablas virtuales cuyo contenido se a definido por medio de consultas “Query”.
Procedimientos almacenados.- Los datos de una base de datos solo pueden accederse por
medio de la ejecución de comandos del lenguaje TRANSACT-SQL.
Al crear una aplicación que sirva como interfaz con la base de datos, el diseñador puede
optar por crear un programa SQL que almacena localmente y luego es enviado al servidor
en procedimientos almacenados.
Triggers.- Es un procedimiento almacenado que se ejecuta automáticamente cuando un
dato de la tabla es modificado como resultado de la ejecución de un comando SQL de tipo
insert, undate delete actualizar.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 45
Índices Ful-Text.- Este tipo especial de índices permite la ejecución de consultas con base
a columnas cuyo contenido sea de tipo carácter.
Diagramas de bases de datos
Son una representación grafica de la base de datos y las relaciones entre sus tablas para
crearlo es muy sencillo.
Se debe activar la base de datos.
Dar clic con el botón derecho del mouse sobre la opción de diagrams.
Dar clic sobre la opción new database diagrams. Se activara la primera de las
ventanas que contiene el asistente.
Como crear nuevas relaciones entre tablas
CREATE DIAGRAM WIZARD
AVALABLE TABLES
NEXT BACK CANCEL
EMPLEADOS
PRODUCTOS
PROVEEDORES REMOVE
ADD
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 46
Esta operación es constantemente sencilla. Primero se debe seleccionar la fila que define
la columna con la llave primaria en la nueva relación, en segundo lugar se dará un clic sin
soltar nuevamente sobre la fila de la llave primaria y se arrastrara la tabla que se desea
seleccionar.
Autores Libros
Id_autor. Id_libro.
Nombre. Titulo.
Descripción. Categoría.
Teléfono. Paginas.
e-mail. Editorial.
Ciudad. Edición.
Estado. Fecha.
País. Lugar.
Activo.
Query analizer
Una de las herramientas importantes de SQL SERVER es Query analizer, la cual permite al
usuario ejecutar una serie de actividades relacionadas con la recuperación y optimización
de consultas en una base de datos.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 47
Una de las características principales del query analizer es la práctica y el uso del lenguaje
TRANSACT-SQL puesto que permite la ejecución inmediata de los comandos y la
visualización de los resultados.
La conexión con el servidor
Después de cargar el query analizer, la caja les muestra una caja de dialogo en la cual
debemos especificar con el que queremos conectarnos. Para tener acceso a esta caja se
debe activar en menú file y connect en el campo de SQL SERVER, se debe de ingresar el
nombre del servidor hacia donde se desea conectar, o bien se hara clic con el botón con
tres puntos para obtener una lista de los servidores que tiene la red.
CONNECT TO SQL SERVER
SQL SERVER
CONNECT INFORMATION
USE WINDOWS NT AUTHENTICATION
USE SQL SERVER AUTHENTICATION
BACK NEXT CANCEL
... NT SERVER
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 48
Ventana de trabajo de Query analizer
La ventana de trabajo estará compuesta por dos paneles, en caso de que solo aparezca
uno se presiona el botón de hide results.
SQL SERVER QUERY ANALIZER
FILE EDIT VIEW QUERY
Vistas
Una vista no es una tabla física, si no un conjunto de instrucciones que retornan un
conjunto de datos.
El uso de las vistas es particularmente útil cuando se desea enfocar un tipo determinado
de información mantenido por supuesto por la base da datos.
Ejemplo:
Imagínese una base de datos de una corporación, a la cual tiene acceso usuarios de varios
departamentos. La información que utiliza el equipo de ventas es ciertamente diferente al
que usa el departamento de facturación o de marketing. Para resolver este problema se
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 49
utilizan diferentes vistas, lo que hace posible ofrecer al usuario solo la información que
necesita sin importar si esta proviene de una o de varias tablas de la base de datos.
Como crear una vista
Las vistas se pueden crear de dos formas:
La primera utilizando el comando de transact- sql llamado create view, o bien utilizando el
editor de vistas del enter. Price manager, al crear una vista se debe tener en cuenta las
siguientes consideraciones:
Una vista solo puede crearse en la base de datos que esta en uso.
No es posible asociar triggers, reglas y valores predeterminados a una vista.
Una vista puede hacer uso de los datos de otra vista.
Una vista puede ser referenciada por un procedimiento almacenado.
No es posible crear un índice para una vista.
Si mas de una columna de la vista tuviera el mismo nombre, estas deben referirse
con un alias, o deben ser atendidas y antecedidas por el nombre de la tabla a la
que pertenecen.
Las columnas de una vista deben ser idénticas a las columnas de las tablas de
origen.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 50
Como guardar una vista
Para guardar las vistas, será necesario primero realizarla, para ello se dara clic en el icono
del disket (guardar), es importante saber que las vistas son guardadas generalmente en la
carpeta de bin, colocaremos el nombre de la vista y se presionara el botón de ok.
Porque es tan importante que después de creada una vista sea guardada, la respuesta es:
en la mayoría de las empresas se hace referencia constantemente a la misma vista, por lo
cual si esta se tiene guardada se podrá consultar, editar o eliminar en un momento
posterior.
Pasos para crear una vista
1. Abrir la base de datos en la que se esta trabajando.
2. Clic con el botón derecho del mouse sobre el icono de vistas.
3. Se abre una ventana preguntando cuales son las tablas de las que se realizara la
vista.
TABLES VIEW
TABLE1….
TABLE2….
TABLE3….
…………..
…………..
ADD
CANCEL
HELP
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 51
4. Este último paso consiste en seleccionar las columnas de la tabla (s) que tendrá
nueva vista.
TABLE 1
ID
NOMBRE
TELEFONO
DIRECCION
Como consultar una vista
Desde el punto de vista del usuario, una vista es una tabla mas como cualquier otra. Por
tanto para ver su contenido será necesario elegir la opción open sql server y enseguida
elegir el submenú return all rows.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 52
UNIDAD III PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS
3.1 Metodología del procesamiento de consultas distribuidas
Las consultas distribuidas detienen acceso a datos de varios orígenes de datos
heterogéneos. Estos orígenes de datos pueden estar almacenados en el mismo equipo o
en equipos diferentes.
Microsoft SQL SERVER admite consultas distribuidas utilizando OLE BD.
Los usuarios de SQL SERVER pueden utilizar consultas distribuidas para obtener acceso a
lo siguiente:
Datos distribuidos almacenados en varias estancias de SQL SERVER.
Datos heterogéneos almacenados en varios orígenes de datos relacionales y no
relacionales a los que se obtienen acceso mediante un proveedor OLE BD.
Los proveedores OLE BD exponen datos en objetos tabulares denominados conjuntos de
filas. SQL SERVER permite hacer referencia a conjunto de filas desde proveedores OLE BD
en instrucciones TRANSAC-SQL como si fueran tablas de SQL SERVER.
En las instrucciones select, insert, update y delete de transac-SQL, se puede hacer
referencia directas a las tablas y vistas de orígenes de datos externos.
Los lenguajes de bases de datos relacionales permiten la expresión de consultas complejas
en una forma concisa y simple.
Particularmente para construir la respuesta a una consulta, el usuario no tiene que
especificar de manera precisa el procedimiento que se debe de seguir. Este procedimiento
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 53
es llevado acabo por un modulo del DBNS llamado el procesador de consultas (query
procesador).
El procedimiento de consultas es mucho mas difícil en ambientes distribuidos que en
centralizados, ya que existe un gran numero de parámetros que afectan el rendimiento de
las consultas distribuidas.
La función principal de un procesador de consultas relacionales es transformar una
consulta en una especificación de alto nivel, típicamente en cálculo relacional, a una
consulta equivalente en una especificación de bajo nivel.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 54
3.2 Estrategias de procesamiento de consultas distribuidas
El procesamiento de consultas tiene varias etapas a seguir para resolver una consulta SQL,
las características del modelo relacional permiten que cada motor de base de datos elija
su propia representación que, comúnmente, resulta ser el álgebra relacional.
Existen varios medios para calcular la respuesta a una consulta. En l caso del sistema
centralizado, el criterio principal para determinar el costo de una estrategia específica es
el número de acceso al disco. En un sistema distribuido es preciso tener en cuenta otros
factores como son:
El costo de transmisión de datos en la red.
Repetición y fragmentación.
Procesamiento de intersección simple.
Select.-Obtiene filas de la base de datos y permite realizar la selección de una o varias filas
o columnas de una o varias tablas. La síntesis completa de la instrucción select es
compleja aunque las clausulas principales pueden resumir del modo siguiente:
Select [select_list]
[into new table]
From table sourse
[where seach_condition]
[group by group_by_expresion]
[having search_condition]
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 55
Whare.- Especifica una condición de búsqueda para restringir las filas que se van a
restringir.
[where]<search_condition>/<old_outer_jom>
Group by.- Especifica los grupos en los que se van a colocar las filas de salida y si se
incluyen funciones de agregado en la clausula select <select_list>, calcula el valor de
resumen de cada grupo.
Order by.- Para especificar un orden determinado de los datos.
All.- Incluye todos los grupos y conjuntos de resultados, incluso aquellos en los que no hay
filas que cumplan la condición de búsqueda especificada en la clausula wher. Cuando se
especifica all, se devuelven valores null.
From.- Especifica las tablas de las que se van a obtener filas. La clausula from es necesaria
excepto cuando la lista de selección solo contiene constantes, variables y expresiones
aritméticas.
Síntesis:
[from {<table_souerce>}[C1,…….N]]
Especifica tablas, vistas, tablas derivadas y tablas combinadas que utilizan en las
instrucciones delete, select, update.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 56
3.2.1 Árboles de consultas
• Pasos
– Parsing y traducción de la consulta
– Optimización
– Generación de código
– Ejecución de la consulta
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 57
3.2.2 Transformaciones equivalentes
Cuando una base de datos se encuentra en múltiples servidores y distribuye a un número
determinado de nodos tenemos:
El servidor recibe una petición de un nodo.
El servidor es atacado por el acceso concurrente a la base de datos cargada
localmente.
El servidor muestra un resultado y le da un hilo a cada una de las maquinas nodo
de la red local.
Cuando una base de datos es acezada de esta manera la técnica que se utiliza es la de
fragmentación de datos que puede ser hibrida, horizontal y vertical.
En esta fragmentación 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 transformación en la consulta primero desfragmentamos
siguiendo los estándares 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.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 58
3.2.3 Métodos de ejecución del Join
Existen diferentes algoritmos que pueden obtener transformaciones eficientes en el
procesamiento de consultas.
Join en bucles (ciclos) anidados
Si z = r s, r recibirá el nombre de relación externa y s se llamará relación interna, el
algoritmo de bucles anidados se puede presentar como sigue:
Para cada tupla tr en s si (tr,ts) si satisface la condición, entonces añadir tr * ts al resultado
Donde tr * ts será la concatenación de las tuplas tr y ts. Como para cada registro de r se
tiene que realizar una exploración completa de ts, y suponiendo el peor caso, en el cual la
memoria intermedia sólo puede concatenar un bloque de cada relación, entonces el
número de bloques a acceder es de sr bn b.
Por otro lado, en el mejor de los casos si se pueden contener ambas relaciones en la
memoria intermedia entonces sólo se necesitarían accesos a bloques.
Join en bucles anidados por bloques
Una variante del algoritmo anterior puede lograr un ahorro en el acceso a bloques, si se
procesan las relaciones por bloques en vez de por tuplas. Para cada bloque Br dar a igual
para cada bloque Bs de s, para cada tupla tr en Br.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 59
La diferencia principal en costos de este algoritmo con el anterior es que en el peor de los
casos cada bloque de la relación interna s se lee una vez por cada bloque de dr y no por
cada tupla de la relación externa.
Join por mezcla
Este algoritmo se puede utilizar para calcular si un Join natural es óptimo en la búsqueda o
consulta. Para tales efectos, ambas relaciones deben estar ordenadas para los atributos en
común es decir se asocia un puntero a cada relación, al principio estos punteros apuntan
al inicio de cada una de las relaciones. Según avance el algoritmo el puntero se mueve a
través de la relación. De este modo se leen en memoria un grupo de tuplas de una
relación con el mismo valor en los atributos de las relaciones.
¿Qué se debe de tomar en cuenta en este algoritmo?
Se tiene que ordenar primero, para después utilizar este método.
Se tiene que considerar el costo de ordenarlo / las relaciones.
Es mas fácil utilizar pequeñas tuplas.
Join por asociación.
Al igual que el algoritmo de join por mezcla, el algoritmo de join por asociación se puede
utilizar para un Join natural o un equi-join. Este algoritmo utiliza una función de asociación
h para dividir las tuplas de ambas relaciones. La idea fundamental es dividir las tuplas de
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 60
cada relación en conjuntos con el mismo valor de la función de asociación en los atributos
de join.
El número de bloques ocupados por las particiones podría ser ligeramente mayor que.
Debido a que los bloques no están completamente llenos. El acceso a estos bloques puede
añadir un gasto adicional de 2·max a lo sumo, ya que cada una de las particiones podría
tener un bloque parcialmente ocupado que se tiene que leer y escribir de nuevo.
Join por asociación híbrida
El algoritmo de join por asociación híbrida realiza otra optimización; es útil cuando el
tamaño de la memoria es relativamente grande paro aún así, no cabe toda la relación s en
memoria. Dado que el algoritmo de join por asociación necesita max +1 bloques de
memoria para dividir ambas relaciones se puede utilizar el resto de la memoria (M – max –
1 bloques) para guardar en la memoria intermedia la primera partición de la relación s,
esto es, así no es necesaria leerla ni escribirla nuevamente y se puede construir un índice
asociativo.
Cuando r se divide, las tuplas de tampoco se escriben en disco; en su lugar, según se van
generando, el sistema las utiliza para examinar el índice asociativo en y así generar las
tuplas de salida del join. Después de utilizarlas, estas tuplas se descartan, así que la
partición no ocupa espacio en memoria. De este modo se ahorra un acceso de lectura y
uno de escritura para cada bloque de y.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 61
Join Complejos
Los join en bucle anidado y en bucle anidado por bloques son útiles siempre, sin embargo,
las otras técnicas de join son más eficientes que estas, pero sólo se pueden utilizar en
condiciones particulares tales como join natural o equi-join. Se pueden implementar join
con condiciones más complejas tales como conjunción o disyunción Dado un join de las
forma se pueden aplicar una o más de las técnicas de join descritas anteriormente en cada
condición individual, el resultado total consiste en las tuplas del resultado intermedio que
satisfacen el resto de las condiciones. Estas condiciones se pueden ir comprobado según
se generen las tuplas. La implementación de la disyunción es homóloga a la conjunción.
Outer Join (Join externos)
Un outer join es una extensión del operador join que se utiliza a menudo para trabajar con
la información que falta.
Por ejemplo:
Suponiendo que se desea generar una lista con todos los choferes y los autos que
manejan (si manejan alguno) entonces se debe cruzar la relación Chofer con la relación
Móvil. Si se efectúa un join corriente se perderán todas aquellas tuplas que pertenecen a
los choferes, en cambio con un outer join se pueden desplegar las tuplas resultado
incluyendo a aquellos choferes que no tengan a cargo un auto.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 62
El outer join tiene tres formas distintas: por la izquierda, por la derecha y completo. El join
por la izquierda ( ) toma todas las tuplas de la relación de la izquierda que no coincidan
con ninguna tupla de la relación de la derecha, las rellena con valores nulos en los demás
atributos de la relación de la derecha y las añade al resultado del join natural.
Un outer join por la derecha ( ) es análogo al procedimiento anterior y el outer join
completo es aquel que efectúa ambas operaciones.
Para el caso de un outer join completo se puede calcular mediante extensiones de los
algoritmos de join por mezcla y join por asociación.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 63
3.3 Optimización de consultas
El objetivo del procesamiento de consultas en un ambiente distribuido es transformar una
consulta sobre una base de datos distribuida en una especificación de alto nivel a una
estrategia de ejecución eficiente expresada en un lenguaje de bajo nivel sobre bases de
datos locales.
El problema de optimización de consultas es minimizar una función de costo tal que
función de costo total = costo de I/O + costo de CPU + costo de comunicación
Los diferentes factores pueden tener pesos diferentes dependiendo del ambiente
distribuido en el que se trabaja.
Por ejemplo:
En las redes de área amplia (WAN), normalmente el costo de comunicación domina dado
que hay una velocidad de comunicación relativamente baja, los canales están saturados y
el trabajo adicional requerido por los protocolos de comunicación es considerable.
Así, los algoritmos diseñados para trabajar en una WAN, por lo general, ignoran los costos
de CPU y de I/O. En redes de área local (LAN) el costo de comunicación no es tan
dominante, así que se consideran los tres factores con pesos variables.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 64
3.3.1 Optimización global de consultas
Dada una consulta algebraica sobre fragmentos, el objetivo de esta capa es hallar una
estrategia de ejecución para la consulta cercana a la óptima.
La estrategia de ejecución para una consulta distribuida puede ser descrita con los
operadores del álgebra relacional y con primitivas de comunicación para transferir datos
entre nodos.
Un aspecto importante de la optimización 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 optimización global es una consulta algebraica optimizada con
operación de comunicación incluida sobre los fragmentos.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 65
3.3.2 Optimización local de consultas
El trabajo de la última capa se efectúa en todos los nodos con fragmentos involucrados en
la consulta. Cada consulta que se ejecuta en un nodo, llamada consulta local, es
optimizada usando el esquema local del nodo. Hasta este momento, se eligen los
algoritmos para realizar las operaciones relacionales. La optimización local utiliza los
algoritmos de sistemas centralizados.
Como realizar triggers.- La mayor parte de las aplicaciones desarrolladas para administrar
una base de datos desde una computadora personal antiguas aplicaciones de las bases de
datos son los responsables de llevarle el control de las reglas de los negocios.
Una de las características de SQL SERVER es que implementa un mecanismo de control
llamado “disparador de bases de datos” (triggers) y como ya sabemos un triggers es solo
un bloque de comandos transac-SQL que se ejecuta actualmente con un comando insert,
select o update es una tabla.
Entre las diversas aplicaciones de un triggers, podemos destacar:
Crear el contenido de una columna derivada de datos.
Crear un mecanismo de validación que implique búsquedas en multiples tablas.
La creación de un triggers.- la forma rápida y sencilla de crearlo es con el comando create
triggers, o bien por medio del enter prise manager en cualquiera de los dos casos es
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 66
necesaria la digitalización de los comandos SQL, que se ejecutaran cuando se active el
triggers.
Ejemplo de la Sintaxis:
Create triggers nombre_del_triggers on nombre_de_la_tabla
For [insert, delete, update]
As comandos
Donde:
On nombre_de_la_tabla.- Indica la tabla para la cual se hará el triggers.
For.- Debe de estar seguido por el tipo de comando o comandos que activan el triggers.
As.- Aquí es donde realmente donde indica el cuerpo del triggers con los comandos que
se van a ejecuta.
Como modificar un trigger: Una vez realizado el triggers puede ser modificado, y no solo
eso si no que además puede modificarse directamente con el comando alter triggers.
Como eliminar triggers.- Para eliminar un trigger podemos utilizar el comando drop
trigger nombre del trigger
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 67
Este comando permite eliminar el trigger de la base de datos y también retua los
privilegios concedidos a otros usuarios. Si se elimina la tabla que contiene un trigger, por
consecuencia también se elimina el trigger de la base de datos. Si no se desea utilizar este
comando, también puede recurrirse a la carta de dialogo triggers propieres.
La replicación en SQL SERVER.- Es una tecnología importante en un ambiente de bases de
datos distribuidas por medio de ella es posible distribuir en la organización de una base de
datos pueden ser duplicadas y copiadas a varios sitios diferentes.
La base de datos distribuida puede sincronizarse, de manera que siempre tengan la misma
información.
Por ejemplo:
Una lista de precios de productos es sincronizada en todas las finales de la empresa.
Modelo de replicación.- SQL SERVER adopta el modelo de recolpilacion basada en el
modelo publish and susenbe. Este modelo esta compuesto por editaros, distribuciones,
suscriptores, artículos y publicaciones.
Este modelo permite a la re indicación de base de datos mediante el uso de ole bd.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 68
Tipos de replicación
Snaphsopt transaccional y marge: Este tipo de replicación toma una fotografía de las
tablas de la base de datos y esta es replicado a sus suscriptores, quienes reciben una copia
completa de los datos en ves de recibir solo las modificaciones efectuadas.
Desventajas: La desventaja principal si así se pueden llamar es que no existe una
actualización frecuente de la base de datos para aquellos usuarios o miembros que no se
actualizan constantemente las tablas.
Replicación transaccional
Esta permite la replicación de tablas y procedimientos almacenados y posibilita la
filtración de los datos que van a publicarse. Este tipo de replicación utiliza un archivo de
log para almacenar las modificaciones hechas en un artículo, por ejemplo una tabla desde
su última publicación, haciéndoles un seguimiento a los comandos insert, update y delete.
Las modificaciones se almacenan en la base de datos del Publisher u después distribuidas
a sus suscriptores.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 69
Replicación nerge
Esta permite la replicación 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 sincronización se
encarga de actualizar las modificaciones relacionadas en las copias de los suscriptores y
viceversa.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 70
UNIDAD IV MANEJO DE TRANSACCIONES
4.1 Transacciones
Es un conjunto de acciones llevadas a cabo por un usuario o un programa de aplicación,
que acceden o cambian el contenido de la base de datos.
Es relativamente simple, aun que su manejo es mas complicado sobre todo cuando
hablamos de un ambiente distribuido. La cantidad de transacciones que se ejecutan en
una base de datos distribuida delimita el proceso y la transacción así, como la velocidad de
los datos es decir la velocidad es base al número de la transacciones ejecutadas en la
organización a pesar de ser tan sencilla la descripción de una transacción, la historia revela
que el manejo de estas existe una gran distancia entre lo ordinario y lo explicito.
Antes de dar significado simple a lo que es una transacción debemos tener en cuenta que
estas son básicas en una base de datos distribuida; dicho de otras palabras mediante estas
se logra visualizar la información que como usuario se necesita para asegurar la
consistencia de los datos se necesita que el sistema de base de datos tenga las
propiedades acid (atomicidad, consistencia, aislamiento, durabilidad).
Atomicidad.- Asegura que todos los efectos de la transacción en la B.O. o bien ninguno de
ellos.
Consistencia.- Si la B.O. es consistente inicialmente la ejecución de la transacción deja la
B.O. en su estado consistente.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 71
Aislamiento.- asegura que la ejecución concurrente de transacciones estas estén aisladas
unas de otras, de tal manera que cada una tiene la intención de que ninguna se ejecuta
concurrentemente.
Durabilidad.- Una vez que una transacción se ha comprometido las actualizaciones hechas
para la transacción, no se pierden incluso si hay un fallo en el sistema.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 72
4.1.1 Estructura de transacciones
La estructura de una transacción usualmente viene dada según el modelo de la
transacción, estas pueden ser planas (simples) o anidadas.
Transacciones planas.- Consisten de una secuencia de operaciones primitivas encerradas
entre las palabras clave begin y end.
Por ejemplo:
Begin_transaction Reservación
…
End
Transacciones anidadas.- Consiste en tener transacciones que pueden ser de otras
transacciones, están incluidas dentro de otras de un nivel superior que se les conoce como
subtransacciones.
Por ejemplo:
Begin_transaction Reservación
Begin_transaction Vuelo
…
End. (Vuelo)
Begin_transaction Hotel
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 73
…
End
…
End.
Una transacción anidada da otra transacción 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 transacción anidada: debe empezar después que su
padre y debe terminar antes que él. Más aún, el commit de una subtransacción es
condicional al commit de su padre, en otras palabras, si el padre de una o varias
transacciones aborta, las subtransacciones hijas también serán abortadas.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 74
4.1.2 Ejecución de transacciones centralizada y distribuida
Teoría del procesamiento de transacciones.
Consiste en una serie de modificaciones (transacciones) aun determinado recurso del
sistema (por ejemplo una base de datos) y en donde se define un punto de inicio (Begin
Tran) y un punto de terminación que define un bloque entre el conjunto de operaciones
que son realizadas.
Dentro de este proceso en bloque los demás 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:
Ejecutar transacciones serializadas. Es un sistema que permite el procesamiento de
transacciones en forma secuencial o serializado y consiste en asignarle una secuencia a
cada transacción, este proceso reduce el rendimiento del
sistema.
Ejecutar transacciones calendarizadas.- Es un sistema que permite el proceso de
transacciones asignándole tiempos de procesamiento el cual permite incrementar el
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 75
rendimiento del sistema ya que se ejecuta un máximo de proceso en forma concurrente y
no a través de una serie.
Propiedades de las transacciones.
Atomicidad de fallas.- Consiste en efectuar todas las transacciones, pero en caso de falla
no se realiza ninguna.
Permanencia.- Consiste en que una vez completada una transacción satisfactoriamente
los cambios ya no pueden perderse.
Seriabilidad.- Consiste en asegurarse que los cambios siguen un orden adecuado.
Aborto de transacciones propio para cada transacción.- Es la capacidad que se tiene para
abortar el proceso transaccional en cualquier punto, el resultado de esta operación no
puede ser revelado para otras transacciones.
Punto de inicio y terminación. Consiste en especificar un bloque inicial y un punto que
termina el fin de ese bloque.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 76
Ejecutar transacciones anidadas.- Consiste en tener transacciones que dependen de
otras, estas transacciones están incluidas dentro de otra de un nivel superior y se les
conoce como: Sub Transacciones.
La transacción de nivel superior puede producir hijos (Subtransacciones) que hagan más
fácil la programación del sistema y mejorando el desempeño.
Instrucciones para el uso de transacciones.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 77
La programación con uso transacciones requiere de instrucciones especiales, las cuales
deben ser proporcionadas por el sistema operativo, por el compilador del lenguaje o por
el manejador de la base de datos. Algunos ejemplos son: BEGIN_TRANSACTION
END_TRANSACTION ABORT_TRANSACTION READ WRITE
La cantidad exacta de instrucciones disponibles para manejar transacciones depende del
tipo de objetos y operaciones que deban ser procesadas.
Procesamiento de transacciones.
La estructura de una transacción usualmente se le da el nombre de modelo de la
transacción, estas pueden ser planas (simples) o anidadas. Un aspecto muy importante en
el manejo de transacciones es el mantener y aplicar algoritmos de control sobre los datos
o recursos; para ese control también se utilizan protocolos que proporcionan confiabilidad
como los siguientes:
� Atomicidad.
� Protocolos de recuperación total.
� Protocolos de compromiso global.
El control de las transacciones también requiere de controlar la concurrencia del acceso y
uso hacia el recurso que se esta manipulando, ese control de concurrencia tiene 2
objetivos:
� Como sincronizar la ejecución concurrente de transacciones.
� Consistencia intratransacción (aislamiento).
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 78
Para llevar a cabo el control de concurrencia dentro de un proceso de transacciones se
manejan 2 modos:
Ejecución centralizada de transacciones.
Ejecución distribuida de transacciones.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 79
Métodos de implantación de transacciones.
Espacio de trabajo privado.
Consiste en realizar copias de los bloques que serán utilizados dentro de una transacción
de manera que se trabaje con estas copias para realizar todas las modificaciones
necesarias. Todo el espacio de trabajo con la información que será utilizada es contenido
dentro de estas copias denominado espacio de trabajo privado. Los demás usuarios
trabajarán con la copia original de los bloques pero no podrán obtener segunda copia de
los mismos.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 80
Bitácora de escritura anticipada.
Este método consiste en realizar una lista con todas las transacciones que van siendo
ejecutadas hacia un bloque o espacio de trabajo que sea estable, a esta lista se le conoce
como lista de intenciones.
Las transacciones serán actualizadas con la información una vez que se ha determinado el
fin de la transacción.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 81
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 82
4.1.3 Estructura de transacciones
La estructura de una transacción usualmente viene dada según el modelo de la
transacción, estas pueden ser planas (simples) o anidadas.
Transacciones planas.- Consisten de una secuencia de operaciones primitivas encerradas
entre las palabras clave begin y end.
Por ejemplo:
Begin_transaction Reservación
…
End
Transacciones anidadas.- Consiste en tener transacciones que pueden ser de otras
transacciones, están incluidas dentro de otras de un nivel superior que se les conoce como
subtransacciones.
Por ejemplo:
Begin_transaction Reservación
Begin_transaction Vuelo
…
End. (Vuelo)
Begin_transaction Hotel
…
End
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 83
…
End.
Una transacción anidada da otra transacción 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 transacción anidada: debe empezar después que su
padre y debe terminar antes que él. Más aún, el commit de una subtransacción es
condicional al commit de su padre, en otras palabras, si el padre de una o varias
transacciones aborta, las subtransacciones hijas también serán abortadas.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 84
4.1.4 Ejecución de transacciones centralizada y distribuida
Teoría del procesamiento de transacciones.
Consiste en una serie de modificaciones (transacciones) aun determinado recurso del
sistema (por ejemplo una base de datos) y en donde se define un punto de inicio (Begin
Tran) y un punto de terminación que define un bloque entre el conjunto de operaciones
que son realizadas.
Dentro de este proceso en bloque los demás 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:
Ejecutar transacciones serializadas. Es un sistema que permite el procesamiento de
transacciones en forma secuencial o serializado y consiste en asignarle una secuencia a
cada transacción, este proceso reduce el rendimiento del sistema.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 85
Ejecutar transacciones calendarizadas. Es un sistema que permite el proceso de
transacciones asignándole tiempos de procesamiento el cual permite incrementar el
rendimiento del sistema ya que se ejecuta un máximo de proceso en forma concurrente y
no a través de una serie.
Propiedades de las transacciones.
Atomicidad de fallas.- Consiste en efectuar todas las transacciones, pero en caso de falla
no se realiza ninguna.
Permanencia.- Consiste en que una vez completada una transacción satisfactoriamente
los cambios ya no pueden perderse.
Seriabilidad.- Consiste en asegurarse que los cambios siguen un orden adecuado.
Aborto de transacciones propio para cada transacción.- Es la capacidad que se tiene para
abortar el proceso transaccional en cualquier punto, el resultado de esta operación no
puede ser revelado para otras transacciones.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 86
Punto de inicio y terminación.- Consiste en especificar un bloque inicial y un punto que
termina el fin de ese bloque.
Ejecutar transacciones anidadas.- Consiste en tener transacciones que dependen de
otras, estas transacciones están incluidas dentro de otra de un nivel superior y se les
conoce como: Sub Transacciones.
La transacción de nivel superior puede producir hijos (Subtransacciones) que hagan más
fácil la programación del sistema y mejorando el desempeño.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 87
Instrucciones para el uso de transacciones.
La programación con uso transacciones requiere de instrucciones especiales, las cuales
deben ser proporcionadas por el sistema operativo, por el compilador del lenguaje o por
el manejador de la base de datos. Algunos ejemplos son: BEGIN_TRANSACTION
END_TRANSACTION ABORT_TRANSACTION READ WRITE
La cantidad exacta de instrucciones disponibles para manejar transacciones depende del
tipo de objetos y operaciones que deban ser procesadas.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 88
Procesamiento de transacciones.
La estructura de una transacción usualmente se le da el nombre de modelo de la
transacción, estas pueden ser planas (simples) o anidadas. Un aspecto muy importante en
el manejo de transacciones es el mantener y aplicar algoritmos de control sobre los datos
o recursos; para ese control también se utilizan protocolos que proporcionan confiabilidad
como los siguientes:
� Atomicidad.
� Protocolos de recuperación total.
� Protocolos de compromiso global.
El control de las transacciones también requiere de controlar la concurrencia del acceso y
uso hacia el recurso que se esta manipulando, ese control de concurrencia tiene 2
objetivos:
� Como sincronizar la ejecución concurrente de transacciones.
� Consistencia intratransacción (aislamiento).
Para llevar a cabo el control de concurrencia dentro de un proceso de transacciones se
manejan 2 modos:
Ejecución centralizada de transacciones.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 89
Ejecución distribuida de transacciones.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 90
Métodos de implantación de transacciones.
Espacio de trabajo privado.
Consiste en realizar copias de los bloques que serán utilizados dentro de una transacción
de manera que se trabaje con estas copias para realizar todas las modificaciones
necesarias. Todo el espacio de trabajo con la información que será utilizada es contenido
dentro de estas copias denominado espacio de trabajo privado. Los demás usuarios
trabajarán con la copia original de los bloques pero no podrán obtener segunda copia de
los mismos.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 91
Bitácora de escritura anticipada.
Este método consiste en realizar una lista con todas las transacciones que van siendo
ejecutadas hacia un bloque o espacio de trabajo que sea estable, a esta lista se le conoce
como lista de intenciones.
Las transacciones serán actualizadas con la información una vez que se ha determinado el
fin de la transacción.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 92
4.2 Control de concurrencia
El control de concurrencia trata con los problemas de aislamiento y consistencia del
procesamiento de transacciones. El control de concurrencia distribuido de una DDBMS
asegura que la consistencia de la base de datos se mantiene en un ambiente distribuido
multiusuario. Si las transacciones son internamente consistentes, la manera más simple de
lograr este objetivo es ejecutar cada transacción sola, una después de otra.
Sin embargo, esto puede afectar grandemente el desempeño de un DDBMS dado que el
nivel de concurrencia se reduce al mínimo. El nivel de concurrencia, el número de
transacciones activas, es probablemente el parámetro más importante en sistemas
distribuidos. Por lo tanto, los mecanismos de control de concurrencia buscan encontrar un
balance entre el mantenimiento de la consistencia de la base de datos y el mantenimiento
de un alto nivel de concurrencia.
El control de las transacciones es una base de datos brindado un suficiente desempeño del
sistema de bases de datos puesto que permite controlar la ejecución de transacciones que
operan en paralelo, accesando o información compartida y por lo tanto interfiriendo
potencialmente unos con otros.
El control de concurrencia es una actividad de coordinar accesos concurrentes a la base de
datos. El control de concurrencia permite a los usuarios accesar a la base de datos. El
control de concurrencia permite a los usuarios accesar a la base de datos en una forma
multi programada mientras se preserva la ilusión de que cada usuario este utilizando solo
en un sistema dedicado. El control de concurrencia asegura que las transacciones
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 93
multiples sometidos por usuarios diferentes no interfieren unos con otros de forma que se
produzca resultados incorrectos.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 94
4.2.1 Serialización de transacciones
Teoría de la serializad
Una canderilizacion ischedulel también llamado una historia se define un conjunto de
transacciones I= {T1,T2, TN} y especifican orden entrelazada de la ejecución 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 }
Serialidad en un SNBD distribuidos
En bases de datos distribuidos es necesario considerar dos tipos de historia para poder
generar calendarizaciones serializables: la canderizacion de la ejecución de transacciones
globales serán serializables se deben satisfacer las siguientes condiciones:
Cada historia local debe ser serializable.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 95
Dos operaciones en conflicto deben estar en el mismo orden relativo en todas las
historias locales donde las operaciones aparecen juntas.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 96
4.2.2 Algoritmos de control de concurrencia
El criterio de clasificación más común de los algoritmos de control de los algoritmos de
control de concurrencia es el tipo de primitiva de sincronización. Esto resulta en dos
clases:
Aquellos algoritmos que están basados en acceso mutuamente exclusivo a datos
compartidos (candados o bloqueos) y aquellos que intentar ordenar la ejecución de las
transacciones de acuerdo a un conjunto de reglas (protocolos). Sin embargo, estas
primitivas se pueden usar en algoritmos con dos puntos de vista diferentes:
El punto de vista pesimista que considera que muchas transacciones tienen conflictos con
otras, o el punto de vista optimista que supone que no se presentan muchos conflictos
entre transacciones.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 97
4.2.2.1 Basados en bloqueo
Los protocolos de bloqueo vista en el capitulo anterior pueden utilizarse en tornos
distribuidos con algunas modificaciones. Estas modificaciones giran en torno del gestor de
bloques.
Existen diversos enfoques para complementar el gestor de bloqueos, cada uno de ellos
con ventaja y desventaja se describen a continuación los principales enfoques.
Gestión único de bloqueo.- El sistema conserva un único de bloqueos que reside en un
único emplazamiento a modo de todas las solicitudes de bloqueo y desbloqueos se
realizan sobre el. Cada tarnsaccion solicita a esta localidad los bloqueos que necesita y
luego, en caso de lectura. La misma se realiza sobre cualquier copia, si es una escritura se
debe resolver sobre todas las copias.
Esta solución tiene por ventaja una implementación muy sencilla le exige dos mensajes
para tratar las solicitudes de bloqueo y una para tratar la de desbloqueo y un tratamiento
muy sencillo para desbloqueo (dado que todas las solicitudes de bloque y desbloqueo se
realiza en un mismo modo, se puede aplicar los métodos).
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 98
4.2.2.2 Basados en estampas de tiempo
Los algoritmos basados en estampas de tiempo no pretenden mantener la seriabilidad por
exclusión mutua. En lugar de eso, ellos seleccionan un orden de serialización a prioridad y
ejecutan las transacciones, de acuerdo a ellas. Para establecer este ordenamiento, el
administrador de transacciones le asigna a cada transacción T1 una estampa de tiempo
única t1 (T1) cuando ésta inicia.
Una estampa de tiempo es un identificador simple que sirve para identificar cada
transacción 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
monofónicamente crecientes.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 99
4.2.2.3 Pruebas de validación optimistas
El protocolo mas reciente propuesta es el denominado optimista (OPT) el cual acentúa la
pertenencia general del sistema reduciendo el bloqueo proveniente de aquellas
transacciones que están preparadas para terminar pero que aun no lo hicieron.
OPT comparte las mismas suposiciones que por este, las transacciones tendieran a
cometer si alcanzan el estado de parcialmente competidas. Bajo esta suposición OPT
“relaja” en lugar de los requerimientos de recuperación permitiendo que una transacción
solicite datos que han sido modificados por otra transacción que se encuentra en estado
de parcialmente cometido y que comenzó el proceso para comenzar antes su ejecución.
Los mecanismos optimistas para el control de concurrencia fueron propuestos
originalmente con el uso de estampas de tiempo. Sin embargo, en este tipo de
mecanismos, no con los datos mas aun así con las estampas de tiempo no se asignan al
inicio de una transacción sino justamente al inicio de su fase de validación. Esto se debe a
que las estampas se requieren únicamente durante la fase de validaacion.
Algoritmos optimistas
No realiza ninguna verificación durante la ejecución.
Los cambios se realizan sobre copias locales.
Al final de la ejecución existe una fase de validación que comprueba que cualquiera
de las actualizaciones violaba la seriabilidad.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 100
4.2.3 Disciplinas del Interbloqueo: prevención, detección, eliminación y recuperación
Interbloqueo.- Un esquema para resolver el interbloque en su detención.
Formas de presentar el interbloqueo
Grafo de esperas.
Grafo de reservas.
Grafo de esperas.- Es un grafo en el cual los nodos son las transacciones y la relación de
espera entrenada se define como sigue: Una transacción y relación de espera a otra
transacción “T9 si te ha solicitado el bloqueo de un granulo y esta petición no puede ser
aceptada porque T9 lo tiene bloqueado”.
Grafo de reservas.- Grafo con dos tipos de nodos, los de las transacciones y los
correspondientes a gránulos.
Un nodo une un granulo G1 a una transacción T10 si T9 tiene bloqueado el granulo G1.
Un arco une una transacción T9 con un granulo G1 si T9 ha solicitado un bloqueo del
granulo pero no le ha conseguido.
Una condición necesaria para que haya un interbloqueo es que Q1 exista con ciclo en el
grafo de reservas.
Detención.- Existen diversos algoritmos para ello en la detención de ciclos en el grafo de
esperas, entre ellos:
Algoritmo 1.- Comprueba la existencia de ciclos mediante la eliminación de nodos
terminales.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 101
Algoritmo 2.- Comprueba posibles ciclos desde la ultima transacción bloqueada y
marcando los nodos por lo que pasa. Si pasa dos veces por el mismo nodo a
detectado un ciclo.
Prevención.- Las técnicas de interbloqueo utilizan el concepto de marca de tiempo de
transacción existen dos esquemas que evitan el interbloqueo.
Recuperación.- El objetivo de esta parte de la asignación es conocer y entender las
distintas fallas que pueden ocurrir en un BMS y como es posible restaurar el sistema
después de dichas fallas este tema se llama recuperación de fallas.
La recuperación de fallas esta internamente ligado Al procesamiento de las transacciones
tiene la cualidad de ser anotómica a pesar de que puede estar compuesto de varias
operaciones de atomicidad se controla como llegada al commit. Si una transacción no
sufrió ningún problema y se pudo ejecutar completa, entonces el DBMS debe de
“comprometerse” hacer permanentes los cambios que la transacción hizo sobre la base de
datos y a que esta debido quedar en un estado de conciencia.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 102
4.3 Confiabilidad
Un sistema de manejo de base de datos confiables aquel que puede continuar procesando
las solicitudes de usuario aun cuando el sistema sobre el que opera no es confiable en
otras palabras, aun cuando los componentes de un sistema distribuido fallen un DDMBS
confiable debe seguir ejecutándose las solicitudes de usuario sin violar la consistencia de
la base de datos.
La confiabilidad se refiere a la consistencia de los resultados.
La confiabilidad se busca que los resultados de un cuestionario concuerden con los
resultados del mismo cuestionario en otra ocasión. Si esto ocurre se puede decir que hay
un alto grado de confiabilidad.
La confiabilidad es cuando dos o más evaluadores evalúan al mismo estudiante sobre el
mismo material y se obtienen puntuaciones semejantes.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 103
4.3.1 Conceptos básicos de confiabilidad
La confiabilidad se puede ver como una medida con la cual un sistema conforma su
comportamiento a alguna especificación.
También se puede interpretar que no haya experimentado ninguna falla dentro de
un periodo de tiempo dado.
Disponibilidad, por otro lado es la fracción de tiempo que un sistema satisface su
especificación.
En términos de confiabilidad lo que preocupa es la consistencia de los resultados. Se
necesita la confiabilidad para poder hablar de resultados válidos, puesto que no es posible
evaluar algo que cambia continuamente. Sin embargo, es posible que un cuestionario sea
confiable, puesto que sus resultados son consistentes, pero que no mida lo que se espera
que mida. En ese caso tenemos un ejemplo claro de un cuestionario con confiabilidad
pero carente de validez.
La confiabilidad es una condición necesaria, pero no suficiente para la validez. Las
evidencias de validez siempre han de ir de la mano con las evidencias de
confiabilidad.
La confiabilidad indica el grado de consistencia, pero no dice si las inferencias que
se hacen y las decisiones que se toman partiendo del cuestionario son defendibles.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 104
4.3.2 Protocolos REDO/UNDO
La operación redo utiliza la información del registro de la base de datos y realiza de nuevo
las acciones que pueden haber sido realizadas antes de la falla, la operación redo genera
nueva imagen.
Por otra parte, es posible que el administrador del buffer haya realizado la escritura en la
base de datos volátil correspondiente debe de incluir datos suficientes para permitir
deshacer ciertas actualizaciones en el nuevo estado de la base de datos y regresarla al
estado anterior a esta operación se le conoce como UNDO.
La operación UNDO restablece un dato a su imagen anterior utilizando la información del
registro de bases de datos.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 105
4.3.3 Puntos de verificación (checkpoints)
Cuando ocurre una falta en el sistema es necesario consultar la bitácora para determinar
cuales son las transacciones que necesitan para volver hacerse cuando no necesiten
hacerse.
Estos puntos de verificación nos ayudan para reducir el gasto de tiempo consultando la
bitácora. El punto de verificación en un registro que se genera en la bitácora 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 bitácora buscando del final al inicio el primer
registro check pont ya encontrado se procesan los registros que se encuentran después
del check pont.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 106
4.3.4 Protocolo 2PC de confiabilidad distribuida
Es un protocolo que consume un gran volumen de tiempo en la ejecución de una
transferencia durante el procesamiento normal se puede eliminar accesos a disco o el
numero de mensajes en el proceso de la transacción la pertenencia 2pc podría ser
mejorada.
El 2pc es conocido también 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.
Replicación nerge
Esta permite la replicación 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 sincronización se
encarga de actualizar las modificaciones realizadas en las copias de los suscriptores y
viceversa.
Depurar, verificar y quitar lo que no sirve
Optimización de consultas
Descomposición.- Codificación incluye el SNBD DDL, análisis o depuración,
simplificación=calculo relacional/algebra relacional, restructuración=regresar al usuario al
resultado.
Bases de Datos Distribuidas
Instituto Tecnologico Superior de Apatzingán 107
Optimización global.- Medios físicos y lógicos que permiten realizar la consulta, la red,
algebra relacional. Se realiza con la ayuda de otro nodo.
Optimización local.- Se realiza en el nodo en el que se esta consultando.
PHP.- Permite realizar páginas dinámicas desde la perspectiva del servidor, y después del
ASP es uno de los más ampliamente utilizados, debido a su versatibilidad y gran utilidad.
Manejo de transacciones
Generalmente definir una transacción es relativamente simple, aunque su manejo es más
complicado sobre todo cuando hablamos de un ambiente distribuido. La cantidad de
transacciones que se ejecutan en una base de datos distribuida delimito el proceso y la
transacción, así como la velocidad de los datos es decir, la velocidad en base al número de
transacciones ejecutadas en la organización.