Laboratorio 10: Ejercicios de Fragmentación Horizontal y Vertical
Prof. Heider Sanchez
ACLs: Ana María Accilio, Sebastián Loza
P1 (4 pts): Fragmentación de la Tabla Estudiante
Dada la siguiente tabla Estudiante con los datos:
1. Fragmentación por Términos Mínimos
Dado que el 60% de las consultas se realizan sobre el campo GRUPO y el 35% sobre EDAD, utilice la técnica de términos mínimos para determinar los fragmentos finales. Considere el vector de partición de EDAD: [18, 22].
2. Distribución de Fragmentos
Asumiendo que se dispone de tres servidores de bases de datos, indique cómo se distribuirían los fragmentos:
3. Fragmentación Vertical
Se sabe que:
El área de Control Escolar consulta los campos: NOMBRE, DIR, GRUPO El área de Estadística consulta los campos: PROMEDIO, EDAD, SEXO a. Realizar la fragmentación vertical usando notación formal.
b. Crear una consulta SQL para unir los fragmentos y verificar que se cumple la propiedad de Join sin Pérdida.
P2 (8 pts): Fragmentación Horizontal Derivada
Dado el siguiente esquema de base de datos:
1. Fragmentación Horizontal
Fragmentar la tabla Almacén por el atributo CodPostal con los rangos: [3500, 70000]. Fragmentar la tabla Libro por el atributo Precio con los rangos: [30, 60, 120]. 2. Fragmentación Derivada
Realizar la fragmentación horizontal derivada de la tabla Existencias respecto a la fragmentación de Almacén. Indicar cómo sería la creación de esta fragmentación derivada en código SQL. 3. Asignación de Fragmentos
Dado que se dispone de tres servidores, distribuya los fragmentos según criterio:
Asignación:ServidorLibroAlmacénExistenciasServidor 1Servidor 2Servidor 3
4. Subconsultas Distribuidas
En base a la asignación anterior ¿Qué subconsultas se generan al ejecutar la siguiente consulta en cada servidor?
SELECT Codigo, TotalExistencias
FROM Libro
WHERE Precio > 20 AND Precio < 45;
P3 (8 pts): Fragmentación Vertical
Se tienen las consultas Q1, Q2, Q3 y Q4 que trabajan sobre la tabla:
T(C, C1, C2, C3, C4) -- donde C es la clave primaria
Las operaciones que realiza cada aplicación son:
Q1: SELECT C1 FROM T WHERE C4 = 90; Q3: UPDATE T SET C3 = 20 WHERE C2 = 50; Q4: UPDATE T SET C1 = 10 WHERE C3 = 20; Además, se proporciona las frecuencias de acceso de las aplicaciones a los atributos de la siguiente forma:
acc1(AP1)=1 acc2(AP1)=0 acc3(AP1)=2 acc4(AP1)=0
acc1(AP2)=0 acc2(AP2)=4 acc3(AP2)=3 acc4(AP2)=0
acc1(AP3)=0 acc2(AP3)=0 acc3(AP3)=4 acc4(AP3)=0
acc1(AP4)=3 acc2(AP4)=0 acc3(AP4)=0 acc4(AP4)=0
Tareas:
Construya la matriz de usos. Construya la matriz de afinidad. Agrupe la matriz de afinidad. Determine la fragmentación vertical resultante. Plasme esta técnica en un programa en Python Entregable:
Documento en formato PDF con todos los resultados solicitados.