viernes, 27 de marzo de 2015

Actividad #14

 Algoritmos Distribución Datos No Replicados.


Debido al uso que se da a las redes de computadoras en la actualidad incluyendo Internet, cada vez es más factible implementar Sistemas de Bases de Datos Distribuidas, sin embargo, esta tecnología lleva a los desarrolladores a enfrentar un problema, la carencia de metodologías y herramientas de apoyo para su diseño que permitan decidir la ubicación de los datos en cada uno de los diferentes sitios que componen la red de computadoras.
Este problema se conoce como Diseño de la Distribución y nace de la necesidad de especificar las unidades de almacenamiento adecuadas, ya sea fragmentos verticales, horizontales o mixtos, junto con su ubicación dentro de la aplicación.
El Modelo FURD, ha sido desarrollado para resolver el problema del diseño de las Bases de Datos Distribuidas, el cual está divido en dos etapas o fases: la fragmentación y la ubicación de fragmentos. Estas fases ya se concentran en el Modelo FURD.
 Una vez que se resuelve el Modelo FURD se puede dar solución al problema del diseño. Sin embargo la dificultad radica precisamente en la forma de resolverlo, pues es un problema de optimización muy complejo que a medida que va creciendo su tamaño, se va haciendo más difícil la forma de resolverse.

Actividad #13-Ejercicios




lunes, 23 de marzo de 2015

Actividad #13 Resumen.

Resumen.
Sistema de computación distribuido: elementos de procesamiento que cooperan en la ejecución de tareas, interconectadas por una red de ordenadores.
Base de datos distribuida (bdd): son varias bases de datos interrelacionadas lógicamente y situadas en diferentes nodos de una red de ordenadores. Se considera una base de datos distribuida a una colección lógicamente interrelacionada de datos compartidos físicamente distribuida por una red informática.

Sistema gestor de base de datos distribuido: el que gestiona base de datos distribuidas de forma transparente para el usuario. Se considera un sistema gestor de base de datos distribuido a un sistema-software que permite gestionar la base de datos distribuida y hace que dicha distribución sea transparente para los usuarios.

Ventajas de las base de datos distribuidas:
·         Localización transparente de los datos.
·         Transparencia en los nombres.
·         Transparencia de fragmentación.
·         Más fiabilidad y disponibilidad.
·         Mejora del rendimiento.
·         Expansión más sencilla.
Otras funciones de las bases de datos distribuidas.
o   Seguir la pista a los datos.
o   Procesar consultas distribuidas.
o   Gestionar transacciones distribuidas.
o   Gestionar datos replicados.
o   Recuperar bases de datos distribuidas.
o   Seguridad.
o   Gestionar el catálogo distribuido.
Diseño de bases de datos ditribuidas: fragmentación.
1.      Directorio global.
2.      Fragmentar.
·         Fragmentación horizontal.
·         Fragmentación vertical.
3.      Fragmentación mixta.
4.      Esquema de fragmentación.
Base de datos distribuidas: replicación y asignación.
La replicación mejora la disponibilidad de los datos.
Asignación: dónde se sitúan los fragmentos y réplicas.
Descomposición de actualizaciones y consultas.
·         Sistema gestor de base de datos sin transparencia de distribución: hay que indicar el sitio y la tabla sobre la que se realiza la consulta.
·         Sistema gestor de base de datos sin transparencia de replicación: hay que mantener a mano la consistencia de los datos.
·         Sistema gestor de base de datos con transparencia de distribución, replicación y fragmentación: la consulta o actualización se expresan como si se tratase de un sistema gestor de base de datos centralizado.

Base de datos distribuida y cliente-servidor: arquitectura de 2 niveles.
• Los SGBD totalmente distribuidos (transparentes) aun no son viables comercialmente.
• En su lugar se han creado sistemas basados en cliente-servidor.
• La forma habitual de dividir la funcionalidad del SGBD entre cliente y servidor ha sido la arquitectura de 2 niveles:
– Servidor (o servidor SQL): donde se sitúa el SGBD. Una BDD se situaría en varios servidores.
– Clientes:
• Envían consultas/actualizaciones a servidores
• Tienen interfaces SQL, de usuario y funciones de interfaz del lenguaje de programación
• Consultan en el diccionario de datos la información sobre la distribución de la BD entre los servidores. Tienen módulos que descomponen consultas globales en varias locales a cada servidor.

BDD y cliente-servidor: arquitectura de 3 niveles.
• Actualmente es más común utilizar una arquitectura en 3 niveles, sobre todo para aplicaciones web.
• Las 3 capas son:
– Cliente (Presentación):
• Es la interfaz.
• Suelen usar navegadores web y lenguajes como HTML, JavaScript.
• Gestiona las entradas, salidas y la navegación con páginas web estáticas o, cuando accede a BD, con páginas dinámicas.
– Servidor de aplicaciones (SA) (lógica de negocio):
• Incluye, por ejemplo, consultas basadas en datos introducidos por el usuario, o resultados de consultas a los que da formato y envía para su presentación.
• Puede incluir otro tipo de funcionalidad como comprobaciones de seguridad o de la identidad.
• Puede acceder a varias BD conectándose mediante
ODBC, JDBC u otras técnicas.
– Servidor de BD (SBD):
• Procesa consultas y actualizaciones solicitadas por la capa de aplicación.
• Puede devolver los resultados en formato XML.

Estado actual de los SGBDD.
Existen varios productos comerciales con bases de datos distribuidas, como:
• INGRES/STAR de Relational Technology, Inc.
• SQL*STAR, de Oracle Corp.

• DB2 versión 2 Edición 2, de IBM.

viernes, 20 de marzo de 2015

Actividad 13-Sistemas gestores de bases de datos distribuidas existentes.


Sistemas gestores de bases de datos distribuidas existentes.



Las transacciones distribuidas abarcan dos o más servidores conocidos como administradores de recursos. La gestión de la transacción debe ser coordinada entre los gestores de recursos por un componente de servidor llamado un gestor de transacciones. Cada instancia del servidor SQL Database Engine puede funcionar como un gestor de recursos en transacciones distribuidas coordinadas por los administradores de transacciones, tales como Microsoft Coordinador de transacciones distribuidas (MS DTC), u otros gestores de transacciones que soportan la especificación XA Grupo Abierto para el procesamiento de transacciones distribuidas. Para obtener más información, consulte la documentación de MS DTC.
Una transacción en una sola instancia del motor de base de datos que abarca dos o más bases de datos es en realidad una transacción distribuida. La instancia gestiona la transacción distribuida internamente; para el usuario, que opera como una transacción local.

La primera base de datos diseñada para Grid Computing
Oracle Base de Datos 11g ofrece un rendimiento y una escalabilidad excepcionales en servidores Windows, Linux y UNIX, y aporta un rápido rendimiento de la inversión porque permite pasar de un solo servidor a Grid Computing sin modificar ni una sola línea de código.
Oracle Base de Datos 11g automatiza las tareas de administración y ofrece las mejores funciones de seguridad y de cumplimiento de las normativas, por lo que consigue resultados óptimos. Gracias a Real Application Clusters, se obtienen los mayores niveles de disponibilidad. Como ofrece distintas ediciones y unos costes operativos más bajos que IBM DB2 y Microsoft SQL Server, es la opción ideal para empresas en expansión. Compare las distintas ediciones para saber cuál es la que más le conviene.

La base de datos Apache Cassandra es la decisión correcta cuando usted necesita escalabilidad y alta disponibilidad sin comprometer el rendimiento. Escalabilidad lineal y probada tolerancia a fallos en el hardware de los productos básicos o infraestructura en la nube lo convierten en la plataforma perfecta para los datos de misión crítica. El apoyo de Cassandra para replicar a través de múltiples centros de datos es la mejor en su clase, proporcionando una menor latencia para sus usuarios y la tranquilidad de saber que usted puede sobrevivir cortes regionales.

Fuente:
www.wikipedia.org

jueves, 12 de marzo de 2015

Actividad 12.

Tipos de fragmentación.

Fragmentación Horizontal.
Se realiza sobre las tuplas de la relación. Cada fragmento será un subconjunto de las tuplas de la relación. Existen dos variantes de la fragmentación horizontal: la primaria y la derivada. La fragmentación horizontal primaria de una relación se desarrolla empleando los predicados definidos en esa relación. Por el contrario, la fragmentación horizontal derivada consiste en dividir una relación partiendo de los predicados definidos sobre alguna otra.

Fragmentación Vertical.
La fragmentación vertical de una relación R produce una serie de fragmentos R1, R2, ... , Rr, cada uno de los cuales contiene un subconjunto de los atributos de R así como la clave primaria de R. El objetivo de la fragmentación vertical consiste en dividir la relación en un conjunto de relaciones más pequeñas tal que algunas de las aplicaciones de usuario sólo hagan uso de un fragmento. Sobre este marco, la fragmentación óptima es aquella que produce un esquema de división que minimiza el tiempo de ejecución de las aplicaciones que emplean esos fragmentos.

Fragmentación Híbrida.
En muchos casos la fragmentación vertical y horizontal del esquema de la base de datos no será suficiente para satisfacer los requisitos de las aplicaciones. Se pueden 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. Una característica común a ambas es la generación de árboles que representan la estructura de fragmentación.


martes, 10 de marzo de 2015

Actividad 11.

1. ¿Qué es transacción?
Es una unidad de la ejecución de un programa que accede y posiblemente actualiza varios elementos de datos. Una transacción se inicia por la ejecución de un programa de usuario escrito en un lenguaje de manipulación de datos de alto nivel o un lenguaje de programación, y está delimitado por instrucciones de la forma inicio transacción y el fin de transacción.

2. ¿Qué significa ACID?
(Atomicity, Consistency, Isolation y Durability).


  • Atomicidad. O todas las operaciones de la transacción se realizan adecuadamente en la base de datos o ninguna de ellas.
  • Consistencia. La ejecución aislada de la transacción conserva la consistencia en la base de datos.
  • Aislamiento. Aunque se ejecuten varias transacciones concurrentemente, el sistema garantiza que cada par de transacciones T1 y T2, se cumple para que los efectos de T1 o bien T2, ha terminado su ejecución antes de que empiece la siguiente.
  • Durabilidad. Tras la finalización con éxito de una transacción, los cambios realizados en la base de datos permanecen, incluso si hay falla de datos en el sistema.
3. ¿Qué significa TX?Tx significa Transmisión o Transmisor (en este caso Transacción).

4. ¿Para qué sirve el Rollback?Es una operación que devuelve a la base de datos a algún estado previo. Esta función finaliza la transacción actual y dehace los cambios realizados.


5. Defina Integridad de datos.Integridad de datos en general. Hace referencia a que todas las características de los datos deben ser correctos para que los datos estén completos.Integridad de datos en bases de datos. Se refiere al estado de correción y completitud de los datos ingresado en una base de datos.


6. Defina concurrencia.La concurrencia es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.


7. Defina grado de consistencia.
La coherencia entre todos los datos de la base de datos.


8. Mencione aspectos relacionados al procesamiento de transacciones.Los siguientes son los aspectos más importantes relacionados con el procesamiento de transacciones:

  • Modelo de estructura de transacciones: Es importante considerar si las transacciones son planas o pueden estar anidadas.
  • Consistencia de la base de datos interna: Los algoritmos de control de datos semántico tienen que satisfacer siempre las restricciones de integridad cuando una transacción pretende hacer un commit.
  • Protocolos de confiabilidad: Es necesario introducir medios de comunicación entre los diferentes nodos de una red para garantizar la atomicidad y durabilidad de las transacciones.
  • Algoritmos de control de concurrencia: Los algoritmos de control de concurrencia deben sincronizar la ejecución de las transacciones concurrentes bajo el criterio de correctitud.
  • Protocolos de control de réplicas: El control de réplicas se refiere a cómo garantizar la consistencia mutua de datos replicados.
9. Defina los estados de una transacción.
  1. Activa. El estado inicial; la transacción permanece en este estado durante su ejecución.
  2. Parcialmente comprometida: Después de ejecutarse la última transacción.
  3. Fallida. Tras descubrir que no se puede continuar la ejecución normal.
  4. Abortada. Después de haber retrocedido la transacción y restablecido la base de datos a su estado anterior al comienzo de la transacción.
  5. Comprometida. Tras completarse con éxito.

Actividad 10


Tipos de transparencia.

En una BDD es deseable que cuente con las transparencias de distribución, que facilita al usuario de la misma, realizar las tareas con mayor eficacia, las cuales son:
a) Transparencia de Localización.- Permite a los usuarios accesar a la información de un archivo cualquiera de la BD sin necesidad de indicar en que computadora se encuentra el archivo.
b) Transparencia de Fragmentación.- Permite al usuario accesar 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.
c) Transparencia de réplica.- El sistema conserva copias idénticas de la relación y guarda cada réplica en un sitio diferente.

Tipos de fragmentación.

Fragmentación vertical

El objetivo de la fragmentación vertical consiste en dividir la relación en un conjunto de relaciones más pequeñas tal que algunas de las aplicaciones de usuario sólo hagan uso de un fragmento. Sobre este marco, una fragmentación óptima es aquella que produce un esquema de división que minimiza el tiempo de ejecución de las aplicaciones que emplean esos fragmentos.


Fragmentación horizontal

Se realiza sobre las tuplas de la relación, es decir que cada fragmento será un subconjunto de las tuplas de la relación.
Una tabla T se divide en subconjuntos, T1, T2, …Tn. Los fragmentos se definen mediante una operación de selección. Su reconstrucción se realizará mediante la unión de los fragmentos componentes.
Existen dos tipos de fragmentación como es: fragmentación horizontal primaria y la fragmentación horizontal derivada.

Fragmentación Mixta

La fragmentación mixta puede llevarse a cabo de tres formas diferentes: desarrollando primero la fragmentación vertical y, posteriormente, aplicando la fragmentación horizontal sobre los fragmentos verticales (denominada partición VH), o aplicando primero una división horizontal para luego, sobre los fragmentos generados, desarrollar una fragmentación vertical (llamada partición HV), o bien, de forma directa considerando la semántica de las transacciones.