jueves, 26 de marzo de 2015

Actividad #14

Que es la replicacion de una base de datos distribuida

Replicación es el proceso de copiar y administrar objetos de base de datos, tales como tablas, hacia múltiples bases de datos en localidades remotas que son parte de un sistema de bases de datos distribuido. Los cambios ejecutados en una localidad son capturados y guardados local mente antes de ser aplicados a las localidades remotas. Los términos sistemas de bases de datos distribuidas y replicación de bases de datos, están relacionados, pero no son equivalentes. En un sistema puro de bases de datos distribuidas se maneja o administra una sola copia de todos los objetos de la base de datos y sus datos, es decir que existe de manera única la ocurrencia de un objeto de base de datos en todas las localidades, es decir la información se encuentra particionada de manera horizontal entre todas las localidades. Las aplicaciones en una base de datos distribuida utilizan transacciones distribuidas para acceder y modificar tanto los datos 
locales como remotos. 
El término replicación se refiere a la operación de copiar y administrar objetos de base de datos en múltiples bases de datos a lo largo de un sistema distribuido, en este caso, existen varias copias del mismo objeto en diferentes localidades. Dado que la replicación depende de una tecnológica de base de datos distribuida, la replicación ofrece beneficios en las aplicaciones, que no son posibles en un ambiente puro de base 
de datos distribuida, tal como la disponibilidad y rendimiento.

Hay 2 tipos de replicacion:

-Replicación básica: las réplicas de tablas se gestionan para accesos de sólo lectura. Para modificaciones, se deberá acceder a los datos del sitio primario.

-Replicación avanzada (simétrica): amplían las capacidades básicas de sólo- lectura de la replicación, permitiendo que las aplicaciones hagan actualizaciones a las réplicas de las tablas, a través de un sistema replicado de la base de datos. Con la replicación avanzada, los datos pueden proveer lectura y acceso a actualizaciones a los datos de las tablas.

Ventajas de replicacion 

 -Disponibilidad.-El modo en que la replicación incrementa la disponibilidad de los datos para los usuarios y aplicaciones.

-Fiabilidad.- Al haber múltiples copias de los datos disponibles en el sistema, se dispone de un mecanismo excelente de recuperación cuando existan fallos en nodos.

-Rendimiento.- Se mejora para las transacciones de consulta cuando se introduce la replicación en un sistema que estuviera aquejado de sobrecarga de recursos centralizados.

-Reducción de la carga.- Modo en que se utiliza la replicación para distribuir datos en ubicaciones remotas

-Copia de seguridad:En condiciones normales, una base de datos replicada de forma correcta es válida como copia de seguridad.Además se puede realizar copias de seguridad usando un servidor esclavo para así no interferir al servidor maestro.

-Mejorar la escalabilidad:Podríamos configurar nuestras aplicaciones para balancear las consultas de lectura (SELECT) entre los servidores replicados.

-Alta disponibilidad:En aplicaciones y entornos en donde sólo se requieren lecturas, podríamos configurar nuestras aplicaciones para balancear las consultas de lectura (SELECT) entre los servidores replicados de manera que si uno se cae se continue prestando servicio.


https://drive.google.com/file/d/0BwdKiO11D1ZDRFhlY1M0aGVvY28/view?usp=sharing

miércoles, 25 de marzo de 2015

Actividad #13

Base de datos distribuidas y arquitectura cliente servidor 

• Sistema de computación distribuido: elementos de procesamiento que cooperan en la ejecución de tareas,interconectados por una red de ordenadores.
• BD distribuida (BDD): son varias BD interrelacionadas lógicamente y situadas en diferentes nodos de una red de ordenadores.
• SGBD distribuido: el que gestiona BD distribuidas de forma transparente para el usuario (éste ve las BD como si fueran una sola BD centralizada)
• Ventajas de las BDD:
– Localización transparente de los datos:
– Transparencia en los nombres:
– Transparencia de fragmentación

Fragmentancion:

Fragmentar se refiere a decidir donde situar las partes de BDD
existen fragmentación vertical, fragmentación vertical derivada fragmentación mixta.

Replicacion y Asignación:

La replicación mejora la disponibilidad de los datos, caso extremo: tener una réplica de la BD completa en 
cada sitio (ordenador):
– Ventajas: mejora el rendimiento local y global además de la disponibilidad (con un sitio activo se 
accede a toda la BD)
– Inconvenientes: actualizaciones más costosas (se deben realizar en todas las réplicas para mantener la 
coherencia). El control de concurrencia y recuperación es también más costoso.


• Asignación: dónde se sitúan los fragmentos y réplicas
– La elección del lugar y el grado de replicación depende de los objetivos de rendimiento y disponibilidad. También del tipo de transacciones y su frecuencia.
– Encontrar una solución óptima o incluso una buena es un problema complejo 

 Clientes Servidor (arquitectura nivel 2 )

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
• Interacción cliente-servidor (arquitectura de 2 niveles):
– El cliente analiza la consulta del usuario. La descompone en varias subconsultas y envía cada una a un servidor. 
– Cada servidor ejecuta su subconsulta y devuelve el resultado al cliente
– El cliente combina los resultados recibidos y muestra al usuario el resultado de su consulta

martes, 10 de marzo de 2015

Actividad #11


¿Qué es una transacción?

-Una transacción es una unidad de la ejecución de un
programa que accede y posiblemente actualiza varios
elementos de datos.

¿Qué significa ACID?  y defina cada una de las palabras que forman las siglas

-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
(es decir, sin otra transacción que se ejecute
concurrentemente) conserva la consistencia de la
base de datos.

• Aislamiento. Aunque se ejecuten varias transacciones
concurrentemente, el sistema garantiza que para cada par de transacciones Ti y Tj, se cumple
que para los efectos de Ti, o bien Tj ha terminado
su ejecución antes de que comience Ti , o bien que
Tj ha comenzado su ejecución después de que Ti
termine. De este modo, cada transacción ignora al
resto de las transacciones que se ejecuten concurrentemente
en el sistema.

• Durabilidad. Tras la finalización con éxito de una
transacción, los cambios realizados en la base de
datos permanecen, incluso si hay fallos en el sistema.

¿Qué significa Tx?
 Tx significa Transmisión o Transmisor (en este caso Transacción).

¿Para que nos sirve el Rollback?
-Para Retroceder 

Defina Integridad de datos
-El componente de mantenimiento de la integridad de una base de
datos asegura que las actualizaciones no violan las restricciones de integridad
que hayan especificado sobre los datos. El componente de seguridad de una
base de datos incluye la autenticación de usuarios y el control de acceso para
restringir las posibles acciones de cada usuario.

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

Defina Grado de consistencia
Podría definirse como la coherencia entre todos los datos de la base de datos.

Mencione aspectos relacionados al 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: En transacciones distribuidas es necesario introducir medios de comunicación entre los diferentes nodos de una red para garantizar la atomicidad y durabilidad de las transacciones. Así también, se requieren protocolos para la recuperación local y para efectuar los compromisos (commit) globales.
  • Algoritmos de control de concurrencia: Los algoritmos de control de concurrencia deben sincronizar la ejecución de transacciones concurrentes bajo el criterio de correctitud. La consistencia entre transacciones se garantiza mediante el aislamiento de las mismas.
  • Protocolos de control de réplicas: El control de réplicas se refiere a cómo garantizar la consistencia mutua de datos replicados. Por ejemplo se puede seguir la estrategia read-one-write-all (ROWA).

Defina los estados de una transacción:
  1. Activa (Active): El estado inicial; la transacción permanece en este estado durante su ejecución.
  2.  
  3. Parcialmente comprometida (Uncommited): Después de ejecutarse la ultima transacción.
  4.  
  5. Fallida (Failed): Tras descubrir que no se puede continuar la ejecución normal.
  6.  
  7. Abortada (Rolled Back): Después de haber retrocedido la transacción y restablecido la base de datos a su estado anterior al comienzo de la transacción.
  8.  
  9. Comprometida (Commited): Tras completarse con éxito.

lunes, 9 de marzo de 2015

Actividad #10

Tipos De Transparencia en BDD

-Transparencia sobre la localización de datos. el comando que se usa es
independiente de la ubicación de los datos en la red y del lugar en donde la
operación se lleve a cabo. Por ejemplo, en Unix existen dos comandos para hacer una copia de archivo. Cp se utiliza para copias locales y rcp se utiliza para copias remotas. En este caso no existe transparencia sobre la localización.

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

La transparencia sobre replicación de datos. se refiere a que si existen réplicas de
objetos de la base de datos, su existencia debe ser controlada por el sistema no por el
usuario. Se debe tener en cuenta que cuando el usuario se encarga de manejar las
réplicas 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.

Ejemplos De Fragmentacion en BDD

FRAGMENTACION HORIZONTAL
FRAGMENTACION VERTICAL