jueves, 24 de noviembre de 2011

FIABILIDAD Y DISPONIBILIDAD DE DATOS EN UNA BASE DE DATOS DISTRIBUIDA

FIABILIDAD Y DISPONIBILIDAD
Fiabilidad
Es la probabilidad de que un sistema este en funcionamiento en un determinado momento
Disponibilidad
Es la probabilidad de que el sistema este disponible continuamente en un intervalo de tiempo.

Estos dos aspectos se logran con una mayor efectividad cuando los datos y el software del SGBD (sistema de gestor de base de datos)
está distribuido en varios sitios, en otras palabras cuando no es centralizado. Ya que en el centralizado si falla el principal todos los demas quedan
inaccesibles para los usuarios.
TÉCNICAS DE FRAGMENTACIÓN DE DATOS
Es necesario decidir sobre los sitios en los que se almacenaran las partes de la base de datos.

Fragmentación horizontal: Un fragmento horizontal de una relación es un subcojunto de las tuplas. Estas tuplas se definen por alguna condicion sobre uno o más atributos.
Este tipo de fragmentación divide una relacion horizontalmente agrupandolas filas, creando asi subconjutnos con un cierto significado lógico.

Fragmentación vertical: Un fragmento vertical de una relación agrupa los atributos, solo mantiene algunos. Es importante incluir el atributo de clave primaria para poder
reconstruior la relación completa. Este tipo de fragmentación divide una relacion verticalmente agrupandola en columnas.

Fragmentación mixta: En este tipo de fragmentación se unen ambas fragmentaciones explicadas anteriormente.
El conjunto de fragmentos que incluyen todos los atributos y tuplas de la base de datos se llama esquema de fragmentación.

Procesamiento Distribuido de Consultas

Procesamiento Distribuido de Consultas:



Procesamiento distribuido de consultas

En este aspecto debemos mencionar dos puntos amplios.
Primero consideremos la consulta "obtener los proveedores de partes rojas en Londres". Supongamos que el usuario está en la instalación de Nueva York y los datos están en el sitio de Londres. Supongamos también que son n</I< los registros proveedor que satisfacen solicitud. Si sistema es relacional, consulta implicará en esencia dos mensajes : uno transmitir la solicitud Nueva York a Londres, y otro para devolver el conjunto resultante de n registros de Londres a Nueva York. Si, por otro lado, el sistema no es relacional, sino de un registro a la vez, la consulta implicará en esencia 2n mensajes : n de Nueva York a Londres solicitando el siguiente registro, y n de Londres a Nueva York para devolver ese siguiente registro. Así, el ejemplo ilustra el punto de que un sistema relacional tendrá con toda probabilidad un mejor desempeño que uno no relacional (para cualquier consulta que solicite varios registros), quizá en varios órdenes de magnitud.
En segundo lugar, la optimización es todavía más importante en un sistema distribuido que en uno centralizado. Lo esencial es que, en una consulta como la anterior, donde están implicados varios sitios, habrá muchas maneras de trasladar los datos en al red para satisfacer la solicitud, y es crucial encontrar una estrategia suficiente. Por ejemplo, una solicitud de unión de una relación Rx almacenada en el sitio X y una relación Ry almacenada en el sitio Y podría llevarse a cabo trasladando Rx a Y o trasladando Ry a X, o trasladando las dos a un tercer sitio Z .

Manejo distribuido de transacciones

El manejo de transacciones tiene dos aspectos principales, el control de recuperación y el control de concurrencia, cada uno de los cuales requiere un tratamiento más amplio en el ambiente distribuido. Para explicar ese tratamiento más amplio es preciso introducir primero un término nuevo, "agente". En un sistema distribuido, una sola transacción puede implicar la ejecución de código en varios sitios ( en particular puede implicar a actualizaciones en varios sitios ). Por tanto, se dice que cada transacción está compuesta de varios agentes, donde un agente es el proceso ejecutado en nombre de una transacción dada en determinado sitio. Y el sistema necesita saber cuándo dos agentes son parte de la misma transacción; por ejemplo, es obvio que no puede permitirse un bloqueo mutuo entre dos agentes que sean parte de la misma transacción. La cuestión especifica del control de recuperación; : para asegurar, pues que una transacción dada sea atómica ( todo o nada ) en el ambiente distribuido, el sistema debe asegurarse de que todos los agentes correspondientes a esa transacción se comprometan al unísono o bien que retrocedan al unísono. Este efecto puede lograrse mediante el protocolo de compromiso en dos fases.
En cuanto al control de concurrencia, esta función en un ambiente distribuido estará basada con toda seguridad en el bloqueo, como sucede en los sistemas no distribuidos.

Independencia con respecto al equipo

En realidad, no hay mucho que decir acerca de este tema, el título lo dice todo. Las instalaciones de cómputo en el mundo real por lo regular incluyen varias máquinas diferentes -máquinas IBM, DEC, HP, UNISYS, PC etc- y existe una verdadera necesidad de poder integrar los datos en todos esos sistemas y presentar al usuario "una sola imagen del sistema". Por tanto conviene ejecutar el mismo DBMS en diferentes equipos, y además lograr que esos diferentes equipos participen como socios iguales en un sistema distribuido.

Independencia con respecto al sistema operativo

Este objetivo es un corolario del anterior. Es obvia la conveniencia no sólo de poder ejecutar el mismo DBMS en diferentes equipos, sino también poder ejecutarlo en diferentes sistemas operativos y lograr que una versión MVS y una UNIX y una PC/DOS participen todas en el mismo sistema distribuido.


REPLICACIÓN Y REPARTO DE DATOS EN UNA BASE DE DATOS DISTRIBUIDA

REPLICACIÓN Y REPARTO DE DATOS
Totalmente replicada: Es la replicación en el caso más extremo, se replica toda la base da datos en todos los sitios del sistema distribuido.
Esto mejora la disponibilidad y el rendimiento de la obtención de datos en consultas globales. Sin embargo, la velocidad de la actualización disminuye ya que para mantener
la consistencia deve actualizar todas las copias.
Ninguna replicación: Esto significa que cada fragmento se almacenara solo en un sitio. Para ello todos los segmentos deben ser independientes (disjuntos).
Replicación parcial: En este caso, algunso fragmetnos de la base de datos pueden estar replciados y otros no.
El esquema de replicación es la descripción de la replicación de los fragmentos.
La distribución de las datos o reparto de datos es el proceso en el cual se asigna a un determinado sitio un fragmento o una copia del mismo.
TIPOS DE BASE DE DATOS DISTRIBUIDAS:
Homogéneo: Si todos los servidores y clientes utilizan un software identico.
Heterogéneo: Si todos los servidores y clientes no utilizan un software identico
Sin autonomía local: Si el aceeso al SGBD es a través de un cliente.
Con cierto grado de autonoma local: Si se permite transacciones locales acceso directo a un servidor.
SGBD federado o multibases de datos: Cada servidor es un SGBD centralizado independiente y autónomo con propios usuarios locales y transacciones locales.
En conclusión, es un sistea hibrido entre los sietmas distribuidos y centralizados. Centralizado para los usuarios autonomos lcoales y distribuido para los usuarios globales.
Con alto grado de transparencia de distribución o de integración de esquemas: Si el usuario percibe un solo esquema integrado son información alguna de la fragmentación y replciación.
Sin transparencia de distribución ni integración de esquemas: Si el usuario puede ver información alguna de la fragmentación y replciación
Es importante almacenar en el catálogo de distribución todas las correspondencias entre los objetos del esquema integraod y de los objetos que estan distribuidos en los diferentes sitios de la base de datos.

Bases de datos distribuidas y arquitectura cliente servidor

Bases de datos distribuidas y arquitectura cliente servidor:



Una base de datos distribuida (BDD) es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas en diferentes espacios lógicos (pej. un servidor corriendo 2 maquinas virtuales) e interconectados por una red de comunicaciones. Dichas BDD tienen la capacidad de realizar procesamiento autónomo, esto permite realizar operaciones locales o distribuidas. Un sistema de Bases de Datos Distribuida (SBDD) es un sistema en el cual múltiples sitios de bases de datos están ligados por un sistema de comunicaciones de tal forma que, un usuario en cualquier sitio puede acceder los datos en cualquier parte de la red exactamente como si estos fueran accedidos de forma local.
FIABILIDAD Y DISPONIBILIDAD
Fiabilidad: Es la probabilidad de que un sistema este en funcionamiento en un determinado momento
Disponibilidad: Es la probabilidad de que el sistema este disponible continuamente en un intervalo de tiempo.
Estos dos aspectos se logran con una mayor efectividad cuando los datos y el software del SGBD (sistema de gestor de base de datos)
está distribuido en varios sitios, en otras palabras cuando no es centralizado. Ya que en el centralizado si falla el principal todos los demas quedan
inaccesibles para los usuarios.
TÉCNICAS DE FRAGMENTACIÓN DE DATOS
Es necesario decidir sobre los sitios en los que se almacenaran las partes de la base de datos.
Fragmentación horizontal: Un fragmento horizontal de una relación es un subcojunto de las tuplas. Estas tuplas se definen por alguna condicion sobre uno o más atributos.
Este tipo de fragmentación divide una relacion horizontalmente agrupandolas filas, creando asi subconjutnos con un cierto significado lógico.
Fragmentación vertical: Un fragmento vertical de una relación agrupa los atributos, solo mantiene algunos. Es importante incluir el atributo de clave primaria para poder
reconstruior la relación completa. Este tipo de fragmentación divide una relacion verticalmente agrupandola en columanas.
Fragmentación mixta: En este tipo de fragmentación se unen ambas fragmentaciones explicadas anteriormente.
El conjunto de fragmentos que incluyen todos los atributos y tuplas de la base de datos se llama esquema de fragmentación.

domingo, 2 de octubre de 2011

Forma Clausal y Cláusula de Horn

Cláusula de Horn


En lógica proposicional, una fórmula lógica es una cláusula de Horn si es una cláusula (disyunción de literales) con, como máximo, un literal positivo. Se llaman así por el lógico Alfred Horn, el primero en señalar la importancia de estas cláusulas en 1951.Esto es un ejemplo de una cláusula de Horn:
 
\neg p \or \neg q \vee \cdots \vee \neg t \vee u


Una fórmula como esta tambien puede reescribirse de forma equivalente como una implicacion:



(p \wedge q \wedge \cdots \wedge t) \rightarrow u

Una cláusula de Horn con exactamente un literal positivo es una cláusula "definite"; en álgebra universal las cláusulas "definites" resultan (aparecen) como cuasi-identidades. Una cláusula de Horn sin ningún literal positivo es a veces llamada cláusula objetivo (goal) o consulta (query), especialmente en programación lógica.Una fórmula de Horn es una cadena textual (string) de cuantificadores existentiales o universales seguidos por una conjunción nde cláusulas de Horn.