En el complejo mundo de las bases de datos distribuidas, la forma en que organizamos y almacenamos los datos es fundamental para garantizar un rendimiento óptimo y una alta disponibilidad. Si bien la fragmentación horizontal, que divide una relación en subconjuntos de tuplas, y la fragmentación vertical, que la divide en subconjuntos de atributos, son técnicas poderosas por sí solas, a menudo no son suficientes para satisfacer los requisitos complejos de las aplicaciones modernas.

Es aquí donde entra en juego la fragmentación mixta. Esta técnica avanzada permite combinar las estrategias de fragmentación horizontal y vertical, aplicando una después de la otra a los fragmentos resultantes. Al hacerlo, podemos crear fragmentaciones mucho más granulares y específicas, adaptadas precisamente a los patrones de acceso y las necesidades de rendimiento de las diferentes aplicaciones que interactúan con la base de datos.

- Combinando Fragmentaciones: HV y VH
- Un Ejemplo Práctico: La Relación PROVINC
- Aplicando las Reglas: Algoritmos Clave
- Profundidad de la Fragmentación: Niveles del Árbol
- Una Técnica Alternativa: Fragmentación Mixta Basada en Celdas
- ¿Por Qué Fragmentación Mixta?
- Preguntas Frecuentes sobre Fragmentación Mixta
Combinando Fragmentaciones: HV y VH
La fragmentación mixta se distingue principalmente por el orden en que se aplican las técnicas de fragmentación horizontal y vertical. Existen dos aproximaciones principales:
- Fragmentación HV (Horizontal-Vertical): En este enfoque, primero se aplica una fragmentación horizontal a la relación original, dividiéndola en varios fragmentos horizontales. Posteriormente, a cada uno de estos fragmentos horizontales resultantes, se le aplica una fragmentación vertical. Esto significa que cada subconjunto de filas (obtenido de la fragmentación horizontal) se divide adicionalmente en subconjuntos de columnas.
- Fragmentación VH (Vertical-Horizontal): Por el contrario, en la fragmentación VH, el proceso comienza aplicando una fragmentación vertical a la relación original, dividiéndola en varios fragmentos verticales. Luego, a cada uno de estos fragmentos verticales obtenidos, se le aplica una fragmentación horizontal. En este caso, cada subconjunto de columnas (de la fragmentación vertical) se divide adicionalmente en subconjuntos de filas.
Una característica común e importante de ambas estrategias de fragmentación mixta es que el proceso de división sucesiva genera una estructura jerárquica que puede representarse como un árbol. Las hojas de este árbol son los fragmentos finales resultantes, mientras que los nodos internos representan los resultados intermedios de las etapas de fragmentación horizontal o vertical.
Un Ejemplo Práctico: La Relación PROVINC
Para ilustrar el concepto de fragmentación mixta, consideremos el ejemplo de la relación PROVINC mencionado en la información proporcionada. Supongamos que a esta relación se le aplicó previamente una fragmentación horizontal basándose en el valor del atributo CCODZONA, lo que resultó en cuatro fragmentos horizontales distintos. Cada uno de estos fragmentos contiene un subconjunto de las filas originales de la tabla PROVINC, agrupadas por zona.
Ahora, si deseamos aplicar una fragmentación mixta de tipo HV, el siguiente paso sería aplicar una fragmentación vertical a cada uno de estos cuatro fragmentos horizontales. Por ejemplo, podríamos decidir dividir cada fragmento horizontal en dos fragmentos verticales. Esto podría hacerse agrupando los atributos que son accedidos conjuntamente por ciertas aplicaciones. Al aplicar esta fragmentación vertical a cada uno de los cuatro fragmentos horizontales originales, el número total de fragmentos resultantes ascendería lógicamente a ocho (cuatro fragmentos horizontales * dos fragmentos verticales cada uno).
Este ejemplo demuestra cómo la fragmentación mixta permite una división más fina de los datos. Partiendo de una división por filas (horizontal), se aplica una división adicional por columnas (vertical) dentro de cada segmento de filas. Esto es particularmente útil cuando ciertas aplicaciones acceden solo a un subconjunto de filas y solo a un subconjunto de columnas dentro de ese subconjunto de filas.
Aplicando las Reglas: Algoritmos Clave
Aunque no se detallan exhaustivamente las reglas y condiciones específicas para llevar a cabo la fragmentación mixta, es importante destacar que, tanto para la fragmentación HV como para la VH, se aplican los mismos criterios y reglas que se utilizan en la fragmentación horizontal y vertical de forma individual. Esto significa que los métodos y algoritmos desarrollados para las técnicas básicas se pueden adaptar y aplicar secuencialmente en el proceso de fragmentación mixta.
Volviendo al ejemplo de la fragmentación HV en la relación PROVINC, donde se fragmentó horizontalmente y luego verticalmente. Los fragmentos horizontales resultantes son, en esencia, subrelaciones de la relación original. La unión de estos fragmentos horizontales reconstituye la relación PROVINC completa. Por lo tanto, para aplicar la fragmentación vertical a cada una de estas subrelaciones (los fragmentos horizontales), es perfectamente viable y apropiado utilizar los métodos de fragmentación vertical existentes. Por ejemplo, para generar los dos fragmentos verticales dentro de cada fragmento horizontal, podríamos confeccionar la matriz de grupos afines para cada fragmento horizontal utilizando un algoritmo como el algoritmo BEA (Bond Energy Algorithm), que ayuda a agrupar atributos con alta afinidad de acceso por parte de las aplicaciones. Posteriormente, se podría aplicar un algoritmo de fragmentación binaria como PARTICIÓN para determinar los cortes óptimos en la matriz de afinidad y definir los grupos de atributos que conformarán los fragmentos verticales.
La aplicación de estos algoritmos de fragmentación horizontal y vertical de manera secuencial permite asegurar que la fragmentación mixta cumpla con las propiedades deseables, como la completitud (la unión de los fragmentos reconstituye la relación original), la disjuntividad (los fragmentos son disjuntos, aunque en fragmentación vertical esto se logra replicando la clave primaria) y la reconstrucción (la relación original puede ser reconstruida a partir de los fragmentos).
Profundidad de la Fragmentación: Niveles del Árbol
El proceso de fragmentación mixta genera, como se mencionó, una estructura arbórea. Una cuestión relevante es el número de niveles que puede tener este árbol de fragmentación. Teóricamente, nadie impide que, tras realizar una fragmentación VH, a los fragmentos resultantes se les aplique una nueva fragmentación vertical, y a estos últimos una nueva fragmentación horizontal, y así sucesivamente. Esto podría llevar a árboles de fragmentación con múltiples niveles de profundidad.
El número de niveles puede ser grande, pero ciertamente es finito. En el caso de fragmentación horizontal pura o como última etapa, el nivel máximo de profundidad se alcanzaría cuando cada fragmento albergue una única tupla. En el caso de fragmentación vertical pura o como última etapa, el final llegaría cuando cada fragmento contenga un único atributo.
Sin embargo, aunque no deba tomarse como una regla estricta, se sugiere que el número de niveles de fragmentación mixta no debería superar el par, es decir, limitarse a una secuencia de HV o VH. La razón principal de esta recomendación es el coste. Piense, por ejemplo, en el coste computacional que supondría realizar la operación de unión (para fragmentos horizontales) o el yunto (join, para fragmentos verticales) para reconstruir la relación original si tuviera una fragmentación con un nivel 7. Evidentemente, el coste sería muy elevado y podría contrarrestar o incluso eliminar el aumento de rendimiento que se busca precisamente al aplicar estas técnicas de fragmentación.

Por lo tanto, aunque la fragmentación de múltiples niveles es teóricamente posible, en la práctica, las estrategias de fragmentación mixta HV o VH a un solo nivel de combinación suelen ser suficientes y ofrecen un mejor equilibrio entre granularidad de fragmentación y coste de gestión/reconstrucción.
Una Técnica Alternativa: Fragmentación Mixta Basada en Celdas
Antes de explorar el problema de la asignación de estos fragmentos a los diferentes sitios de una red, es interesante comentar una técnica de fragmentación mixta algo diferente, conocida como la técnica de fragmentación mixta basada en celdas. Esta técnica introduce el concepto de "celdas de rejilla".
¿Qué es una celda de rejilla en este contexto? Podríamos definirla como un fragmento que es simultáneamente horizontal y vertical. La técnica basada en celdas aplica un algoritmo de fragmentación vertical y otro algoritmo de fragmentación horizontal de manera concurrente o entrelazada sobre la relación original. El objetivo inicial de estos algoritmos es lograr una fragmentación máxima. Esto significa que, en la primera fase, se busca que cada celda resultante contenga idealmente un único atributo y una única tupla.
Quizás el lector pueda encontrar este método contradictorio con la advertencia anterior respecto a la eficiencia y la generación de demasiados fragmentos, dada la gran cantidad de celdas generadas en esta fase inicial (efectivamente, el número es el máximo posible bajo esta lógica). Sin embargo, esta fragmentación máxima es solo el primer paso del proceso.
Una vez que se han generado todas estas celdas unitarias, se aplica un método posterior para optimizar la rejilla de celdas. Esta optimización se realiza típicamente mediante la fusión o desfragmentación de celdas adyacentes. La decisión sobre qué celdas fusionar se basa fundamentalmente en los patrones de acceso de las aplicaciones que operan sobre esos fragmentos. Si un conjunto de celdas (que representan un subconjunto de filas y columnas) es accedido con frecuencia por una o más aplicaciones, esas celdas pueden fusionarse en un único fragmento más grande y manejable.
El método basado en celdas, por lo tanto, persigue una fragmentación lo más específica y detallada posible en la fase inicial, para luego agrupar inteligentemente estas unidades mínimas de acuerdo con las necesidades reales de las aplicaciones y la distribución física de los datos en los sitios existentes en la red. Esto permite una adaptación muy precisa de la estructura de almacenamiento a la carga de trabajo.
¿Por Qué Fragmentación Mixta?
La razón fundamental para recurrir a la fragmentación mixta, ya sea HV, VH o basada en celdas, radica en la necesidad de optimizar el rendimiento de las bases de datos distribuidas de una manera que la fragmentación simple (horizontal o vertical) no puede lograr por sí sola. Las aplicaciones a menudo tienen patrones de acceso complejos que no se alinean perfectamente con una división puramente por filas o puramente por columnas.
Por ejemplo, una aplicación podría necesitar acceder frecuentemente a un subconjunto específico de clientes (fragmentación horizontal) y, para esos clientes, solo a su información de contacto y saldo (fragmentación vertical sobre el subconjunto de clientes). Una fragmentación mixta HV sería ideal aquí. Otro ejemplo podría ser una aplicación que accede a la información de inventario (fragmentación vertical) pero solo para los productos que se encuentran en ciertos almacenes (fragmentación horizontal sobre el subconjunto de columnas de inventario). Una fragmentación VH sería más adecuada.
Al combinar ambas técnicas, la fragmentación mixta permite crear fragmentos que agrupan datos que son accedidos conjuntamente por las aplicaciones, minimizando así la necesidad de acceder a múltiples fragmentos o de realizar costosas operaciones de reconstrucción (uniones o yuntos) para satisfacer una sola consulta. Esto conduce a una reducción en la cantidad de datos transferidos a través de la red, una disminución en la latencia de las consultas y, en última instancia, una mejora significativa en el rendimiento general del sistema distribuido.
En resumen, la fragmentación mixta es una herramienta poderosa y flexible para el diseño de bases de datos distribuidas que permite una adaptación más precisa de la estructura de los datos a los patrones de acceso de las aplicaciones, superando las limitaciones de las técnicas de fragmentación horizontal y vertical aplicadas de forma aislada.
Preguntas Frecuentes sobre Fragmentación Mixta
| Pregunta | Respuesta |
|---|---|
| ¿Qué es la fragmentación mixta? | Es una técnica de fragmentación de bases de datos que combina la fragmentación horizontal y la fragmentación vertical, aplicándolas de forma secuencial o concurrente. |
| ¿Cuáles son los tipos principales de fragmentación mixta secuencial? | Los tipos principales son HV (Horizontal seguida de Vertical) y VH (Vertical seguida de Horizontal), dependiendo del orden en que se aplican las fragmentaciones. |
| ¿Se pueden usar los mismos algoritmos de fragmentación horizontal y vertical en la fragmentación mixta? | Sí, los algoritmos y criterios desarrollados para la fragmentación horizontal y vertical se aplican secuencialmente a los fragmentos intermedios en el proceso de fragmentación mixta. |
| ¿Por qué la fragmentación mixta se representa a menudo como un árbol? | Debido a que es un proceso de división sucesiva; cada etapa de fragmentación (horizontal o vertical) genera nuevos fragmentos que pueden ser subdivididos posteriormente, creando una estructura jerárquica. |
| ¿Existe un límite recomendado para el número de niveles de fragmentación en un árbol mixto? | Aunque teóricamente puede haber muchos niveles, se sugiere no superar los dos niveles (es decir, HV o VH simples) para evitar altos costes de reconstrucción de la relación original a partir de los fragmentos. |
| ¿Qué es la fragmentación mixta basada en celdas? | Es una técnica que aplica fragmentación horizontal y vertical de forma simultánea, creando inicialmente fragmentos muy pequeños (celdas) que luego se optimizan mediante fusión según los patrones de acceso de las aplicaciones. |
| ¿Cuál es el principal objetivo de la fragmentación mixta? | Satisfacer de manera más efectiva los requisitos de las aplicaciones que no pueden ser cubiertos adecuadamente por la fragmentación puramente horizontal o vertical, optimizando el rendimiento en entornos distribuidos. |
Si quieres conocer otros artículos parecidos a Fragmentación Mixta: Combinando Estrategias puedes visitar la categoría Bases de datos.

Aprende mas sobre MySQL