DBMS distribuido - Estrategias de diseño

En el último capítulo, presentamos diferentes alternativas de diseño. En este capítulo, estudiaremos las estrategias que ayudan a adoptar los diseños. Las estrategias se pueden dividir ampliamente en replicación y fragmentación. Sin embargo, en la mayoría de los casos, se usa una combinación de los dos.

Replicación de datos

La replicación de datos es el proceso de almacenar copias separadas de la base de datos en dos o más sitios. Es una técnica popular de tolerancia a fallos de bases de datos distribuidas.

Ventajas de la replicación de datos

  • Reliability - En caso de falla de cualquier sitio, el sistema de base de datos continúa funcionando ya que una copia está disponible en otro sitio (s).

  • Reduction in Network Load- Dado que se encuentran disponibles copias locales de datos, el procesamiento de consultas se puede realizar con un uso reducido de la red, especialmente durante las horas de máxima audiencia. La actualización de los datos se puede realizar en las horas no pico.

  • Quicker Response - La disponibilidad de copias locales de datos garantiza un procesamiento rápido de consultas y, en consecuencia, un tiempo de respuesta rápido.

  • Simpler Transactions- Las transacciones requieren un número menor de combinaciones de tablas ubicadas en diferentes sitios y una coordinación mínima en toda la red. Por lo tanto, se vuelven de naturaleza más simple.

Desventajas de la replicación de datos

  • Increased Storage Requirements- Mantener múltiples copias de datos está asociado con mayores costos de almacenamiento. El espacio de almacenamiento requerido es múltiplo del almacenamiento requerido para un sistema centralizado.

  • Increased Cost and Complexity of Data Updating- Cada vez que se actualiza un elemento de datos, la actualización debe reflejarse en todas las copias de los datos en los diferentes sitios. Esto requiere complejos protocolos y técnicas de sincronización.

  • Undesirable Application – Database coupling- Si no se utilizan mecanismos de actualización complejos, eliminar la inconsistencia de los datos requiere una coordinación compleja a nivel de aplicación. Esto da como resultado un acoplamiento indeseable de aplicaciones y bases de datos.

Algunas técnicas de replicación comúnmente utilizadas son:

  • Replicación de instantáneas
  • Replicación casi en tiempo real
  • Extraer replicación

Fragmentación

La fragmentación es la tarea de dividir una tabla en un conjunto de tablas más pequeñas. Los subconjuntos de la tabla se denominanfragments. La fragmentación puede ser de tres tipos: horizontal, vertical e híbrida (combinación de horizontal y vertical). La fragmentación horizontal se puede clasificar además en dos técnicas: fragmentación horizontal primaria y fragmentación horizontal derivada.

La fragmentación debe realizarse de manera que la tabla original pueda reconstruirse a partir de los fragmentos. Esto es necesario para que la tabla original pueda reconstruirse a partir de los fragmentos cuando sea necesario. Este requisito se llama "reconstructividad".

Ventajas de la fragmentación

  • Dado que los datos se almacenan cerca del sitio de uso, aumenta la eficiencia del sistema de base de datos.

  • Las técnicas de optimización de consultas locales son suficientes para la mayoría de las consultas, ya que los datos están disponibles localmente.

  • Dado que los datos irrelevantes no están disponibles en los sitios, se puede mantener la seguridad y privacidad del sistema de base de datos.

Desventajas de la fragmentación

  • Cuando se requieren datos de diferentes fragmentos, las velocidades de acceso pueden ser muy altas.

  • En caso de fragmentaciones recursivas, el trabajo de reconstrucción requerirá técnicas costosas.

  • La falta de copias de seguridad de los datos en diferentes sitios puede hacer que la base de datos sea ineficaz en caso de falla de un sitio.

Fragmentación vertical

En la fragmentación vertical, los campos o columnas de una tabla se agrupan en fragmentos. Para mantener la capacidad de reconstrucción, cada fragmento debe contener los campos de clave primaria de la tabla. La fragmentación vertical se puede utilizar para hacer cumplir la privacidad de los datos.

Por ejemplo, consideremos que una base de datos de la Universidad mantiene registros de todos los estudiantes registrados en una tabla de Estudiantes que tiene el siguiente esquema.

ESTUDIANTE

Regd_No Nombre Curso Habla a Semestre Tarifa Marcas

Ahora, los detalles de las tarifas se mantienen en la sección de cuentas. En este caso, el diseñador fragmentará la base de datos de la siguiente manera:

CREATE TABLE STD_FEES AS 
   SELECT Regd_No, Fees 
   FROM STUDENT;

Fragmentación horizontal

La fragmentación horizontal agrupa las tuplas de una tabla de acuerdo con los valores de uno o más campos. La fragmentación horizontal también debería confirmar la regla de la reconstructividad. Cada fragmento horizontal debe tener todas las columnas de la tabla base original.

Por ejemplo, en el esquema del estudiante, si los detalles de todos los estudiantes del Curso de Ciencias de la Computación deben mantenerse en la Facultad de Ciencias de la Computación, el diseñador fragmentará horizontalmente la base de datos de la siguiente manera:

CREATE COMP_STD AS 
   SELECT * FROM STUDENT  
   WHERE COURSE = "Computer Science";

Fragmentación híbrida

En la fragmentación híbrida, se utiliza una combinación de técnicas de fragmentación horizontal y vertical. Esta es la técnica de fragmentación más flexible ya que genera fragmentos con mínima información extraña. Sin embargo, la reconstrucción de la tabla original suele ser una tarea costosa.

La fragmentación híbrida se puede realizar de dos formas alternativas:

  • Al principio, genere un conjunto de fragmentos horizontales; luego genere fragmentos verticales a partir de uno o más de los fragmentos horizontales.

  • Al principio, genere un conjunto de fragmentos verticales; luego genere fragmentos horizontales a partir de uno o más de los fragmentos verticales.