Sunteți pe pagina 1din 107

Bases de Datos Distribuidas

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.


Instituto Tecnologico Superior de Apatzingán 1
Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 2


Bases de Datos Distribuidas

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.


Instituto Tecnologico Superior de Apatzingán 3
Bases de Datos Distribuidas

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

Instituto Tecnologico Superior de Apatzingán 4


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 5


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 6


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 7


Bases de Datos Distribuidas

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

Instituto Tecnologico Superior de Apatzingán 8


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 9


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 10


Bases de Datos Distribuidas

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

Instituto Tecnologico Superior de Apatzingán 11


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 12


Bases de Datos Distribuidas

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:
Instituto Tecnologico Superior de Apatzingán 13
Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 14


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 15


Bases de Datos Distribuidas

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”.

Instituto Tecnologico Superior de Apatzingán 16


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 17


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 18


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 19


Bases de Datos Distribuidas

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

Instituto Tecnologico Superior de Apatzingán 20


Bases de Datos Distribuidas

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

Instituto Tecnologico Superior de Apatzingán 21


Bases de Datos Distribuidas

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.
Instituto Tecnologico Superior de Apatzingán 22
Bases de Datos Distribuidas

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

Instituto Tecnologico Superior de Apatzingán 23


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 24


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 25


Bases de Datos Distribuidas

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


Instituto Tecnologico Superior de Apatzingán 26
Bases de Datos Distribuidas

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

Instituto Tecnologico Superior de Apatzingán 27


Bases de Datos Distribuidas

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

Instituto Tecnologico Superior de Apatzingán 28


Bases de Datos Distribuidas

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

Instituto Tecnologico Superior de Apatzingán 29


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 30


Bases de Datos Distribuidas

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)


Instituto Tecnologico Superior de Apatzingán 31
Bases de Datos Distribuidas

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

Instituto Tecnologico Superior de Apatzingán 32


Bases de Datos Distribuidas

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


Instituto Tecnologico Superior de Apatzingán 33
Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 34


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 35


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 36


Bases de Datos Distribuidas

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.


Instituto Tecnologico Superior de Apatzingán 37
Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 38


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 39


Bases de Datos Distribuidas

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 Aquí se coloca el Tamaño del Si se activa esta

colocar todos los tipo de dato que campo. opción significara

nombres de los lleva el campo que esta opción

campos que tendrá anteriormente permitirá valores

la tabla. ubicado. nulos.

Instituto Tecnologico Superior de Apatzingán 40


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 41


Bases de Datos Distribuidas

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.

SQL SERVER INTERPRISE MANAGER

NAME

LOCATION

NEXT CANCEL

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

FILE NAME SIZE (MB)

NOMBRE 1

Instituto Tecnologico Superior de Apatzingán 42


BACK NEXT CANCEL
Bases de Datos Distribuidas

Después de presionar NEXT se deben ingresar algunos datos relativos al crecimiento de la

base de datos.

SQL SERVER ENTERPRISE MANAGER X

DO NOT AUTOMATICALLY GRAOW THE DATABASE

AUTOMATICALLY GROW THE DATABASE FILES

GROW THE FILES INMEGABYTES

GROW THE FILES BY PAREENT


10
MAXIMUN FILE SIZE

UNRESTRICTED FILE GROWTH

BACK NEXT CANCEL

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 INTERPRISE MANAGER

FILE NAME SIZE (MB)

NOMBRE 1

BACK CANCEL
NEXT
Instituto Tecnologico Superior de Apatzingán 43
Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 44


Bases de Datos Distribuidas

Í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.

CREATE DIAGRAM WIZARD

AVALABLE TABLES

EMPLEADOS

PRODUCTOS ADD

PROVEEDORES
REMOVE

NEXT BACK CANCEL

Como crear nuevas relaciones entre tablas

Instituto Tecnologico Superior de Apatzingán 45


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 46


Bases de Datos Distribuidas

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

NT SERVER ...

CONNECT INFORMATION

USE WINDOWS NT AUTHENTICATION

USE SQL SERVER AUTHENTICATION

BACK NEXT CANCEL

Instituto Tecnologico Superior de Apatzingán 47


Bases de Datos Distribuidas

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

Instituto Tecnologico Superior de Apatzingán 48


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 49


Bases de Datos Distribuidas

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

ADD
TABLE1….

TABLE2…. CANCEL
TABLE3….

………….. HELP
…………..

Instituto Tecnologico Superior de Apatzingán 50


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 51


Bases de Datos Distribuidas

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

Instituto Tecnologico Superior de Apatzingán 52


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 53


Bases de Datos Distribuidas

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]
Instituto Tecnologico Superior de Apatzingán 54
Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 55


Bases de Datos Distribuidas

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

Instituto Tecnologico Superior de Apatzingán 56


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 57


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 58


Bases de Datos Distribuidas

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
Instituto Tecnologico Superior de Apatzingán 59
Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 60


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 61


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 62


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 63


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 64


Bases de Datos Distribuidas

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

Instituto Tecnologico Superior de Apatzingán 65


Bases de Datos Distribuidas

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

Instituto Tecnologico Superior de Apatzingán 66


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 67


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 68


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 69


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 70


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 71


Bases de Datos Distribuidas

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
Instituto Tecnologico Superior de Apatzingán 72
Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 73


Bases de Datos Distribuidas

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

Instituto Tecnologico Superior de Apatzingán 74


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 75


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 76


Bases de Datos Distribuidas

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).


Instituto Tecnologico Superior de Apatzingán 77
Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 78


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 79


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 80


Bases de Datos Distribuidas

Instituto Tecnologico Superior de Apatzingán 81


Bases de Datos Distribuidas

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
Instituto Tecnologico Superior de Apatzingán 82
Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 83


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 84


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 85


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 86


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 87


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 88


Bases de Datos Distribuidas

Ejecución distribuida de transacciones.

Instituto Tecnologico Superior de Apatzingán 89


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 90


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 91


Bases de Datos Distribuidas

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


Instituto Tecnologico Superior de Apatzingán 92
Bases de Datos Distribuidas

multiples sometidos por usuarios diferentes no interfieren unos con otros de forma que se

produzca resultados incorrectos.

Instituto Tecnologico Superior de Apatzingán 93


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 94


Bases de Datos Distribuidas

Dos operaciones en conflicto deben estar en el mismo orden relativo en todas las

historias locales donde las operaciones aparecen juntas.

Instituto Tecnologico Superior de Apatzingán 95


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 96


Bases de Datos Distribuidas

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).

Instituto Tecnologico Superior de Apatzingán 97


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 98


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 99


Bases de Datos Distribuidas

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.
Instituto Tecnologico Superior de Apatzingán 100
Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 101


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 102


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 103


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 104


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 105


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 106


Bases de Datos Distribuidas

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.

Instituto Tecnologico Superior de Apatzingán 107

S-ar putea să vă placă și