Sei sulla pagina 1di 5

FRAGMENTACION DEL PROYECTO

Se tiene la siguiente definición de tabla:


Cilentes (IdCte, NombreCte, DomCte, TelCte, CiudadCte, EdoCte, PaisCte, Pass Cte)

Las siguientes aplicaciones:


q1 = Elegir la ciudad de un cliente conociendo su id.
q2 = Elegir el nombre de todos los clientes de una ciudad especifica.
q3 = Elegir el domicilio de y teléfono de todos los clientes.

Y la matriz de frecuencias de acceso:


S1 S2 Total de accesos
q1 15 9 24
q2 0 3 3
q3 13 8 21

Utilizar el CA y BEA para determinar de forma heurística los grupos de la fragmentación vertical.

Solución
Realizamos las consultas respectivas a cada aplicación
q1: Select CiudadCte From Cilentes Where Id
q2: Select NombreCte From Cilentes Where Ciudad
q3: Select DomCte, TelCte From Cilentes

Calculamos el total de accesos para cada q:


S1 S2 Total de accesos
q1 15 9 24
q2 0 3 3
q3 13 8 21

Se forma la matriz de uso en base a las aplicaciones:


A1(IdCte) A2(,NombreCte A3(DomCte) A4(TelCte) A5(CiudadCte A6(EdoCte) A7(PaisCte) A8(Pass Cte)
)
)
q1 1 0 0 0 1 0 0 0
q2 0 1 0 0 1 0 0 0
q3 0 0 1 1 0 0 0 0

Obtenemos la matriz de afinidad combinando la matriz de uso con el total de accesos:


A1 A2 A3 A4 A5
A1 24 0 0 0 24
A2 0 3 0 0 3
A3 0 0 21 21 0
A4 0 0 21 21 0
A5 24 3 0 0 27
A partir de aquí comienza la aplicación del algoritmo:

Empezamos a diseñar la Matriz de Grupos Afines


a) Copiamos las 2 primeras columnas de la matriz de afinidad (MA) a nuestra matriz de
grupos afines (MGA) y también colocamos A0 y A5 llenas de ceros:
A0 A1 A2 A6
0 24 0 0
0 0 3 0
0 0 0 0
0 0 0 0
0 24 3 0

Para colocar la columna A3 de MA en MGA, tenemos 3 opciones: Entre A0 y A1 o entre A1


y A2 o entre A2 y A5, por tanto tendremos que calcular la contribución de cada opción. El
caso de mayor contribución será el elegido:
cont(A0, A3, A1) = 2 bond (A0, A3) + 2 bond (A3, A1) – 2 bond (A0, A1)
cont(A1, A3, A2) = 2 bond (A1, A3) + 2 bond (A3, A2) – 2 bond (A1, A2)
cont(A2, A3, A6) = 2 bond (A2, A3) + 2 bond (A3, A6) – 2 bond (A2, A6)

Para calcular cada contribución se aplica el bond o límite, el cual consiste en tomar las 2
columnas involucradas en el bond y multiplicar sus valores del mismo renglón en la matriz
de afinidad, al final sumando los productos, es decir:

cont(A0, A3, A1) = 2 bond (A0, A3) + 2 bond (A3, A1) – 2 bond (A0, A1)
= 2 (0) + 2 {(0*24) + (0*0) + (21*0) + (21*0)+(0*24)} – 2 (0)
= 2 (0) + 2 (0) – 2 (0)
=0

cont(A1, A3, A2) = 2 bond (A1, A3) + 2 bond (A3, A2) – 2 bond (A1, A2)
= 2 (0) + 2 {(0*0) + (0*3) + (21*0) + (21*0+(0*3)} – 2 {(24*0) + (0*3)
+ (0*0) + (0*0)+(24*3)}
= 2 (0) + 2 (0) – 2 (72)
= -144

cont(A2, A3, A6) = 2 bond (A2, A3) + 2 bond (A3, A6) – 2 bond (A2, A6)
= 2 (0) + 2 (0) – 2 (0)
=0

A0 A1 A2 A3 A6
0 24 0 0 0
0 0 3 0 0
0 0 0 21 0
0 0 0 21 0
0 24 3 0 0
A4 puede colocarse entre A0 y A1 o entre A1 y A2 o entre A2 y A3 o entre A3 y A6, lo cual nos
da 4 opciones. Habrá que calcular sus contribuciones:

cont(A0, A4, A1) = 2 bond (A0, A4) + 2 bond (A4, A1) – 2 bond (A0, A1)
= 2 (0) + 2 {(0*24) + (0*0) + (21*0) + (21*0)+(0*24)} – 2 (0)
= 2 (0) + 2 (0) – 2 (0)
=0

cont(A1, A4, A2) = 2 bond (A1, A4) + 2 bond (A4, A2) – 2 bond (A1, A2)
= 2 (0) + 2 {(0*0) + (0*3) + (21*0) + (21*0)+( 0*3) } – 2 (72)
= 2 (0) + 2 (0) – 2 (0)
=0

cont(A2, A4, A3) = 2 bond (A2, A4) + 2 bond (A4, A3) – 2 bond (A2, A4)
= 2 (0) + 2 {(0*0) + (0*0) + (21*21) + (21*21)+(0*0)} – 2 (0)
= 2 () + 2 (882) – 2 (0)
= 1764

cont(A3, A4, A6) = 2 bond (A3, A4) + 2 bond (A4, A6) – 2 bond (A3, A6)
= 2 (882) + 2 (0) – 2 (0)
= 1764

Elegimos la última contribución dado que es la de mayor valor, y esto indica que A4 debe ir al
final. Construimos pues, la matriz de grupos afines:
A0 A1 A2 A3 A4 A6
0 24 0 0 0 0
0 0 3 0 0 0
0 0 0 21 21 0
0 0 0 21 21 0
0 24 3 0 0 0

A5 puede colocarse entre A0 y A1 o entre A1 y A2 o entre A2 y A3 o entre A3 y A4 o entre A4 y


A5 lo cual nos da 5 opciones. Habrá que calcular sus contribuciones:

cont(A0, A5, A1) = 2 bond (A0, A5) + 2 bond (A5, A1) – 2 bond (A0, A1)
= 2 (0) + 2 {(24*24) + (3*0) + (0*0) + (0*0)+(27*24)} – 2 (0)
= 2 (0) + 2 (1224) – 2 (0)
= 2448

cont(A1, A5, A2) = 2 bond (A0, A5) + 2 bond (A5, A1) – 2 bond (A0, A1)
= 2 (0) + 2 {(24*0) + (3*3) + (0*0) + (0*0)+(27*3)} – 2 {(24*0)+(0*3)+(0*0)+
(0*0)+(24*3)}
= 2 (1224) + 2 (90) – 2 (72)
= 2484

cont(A2, A5, A3) = 2 bond (A2, A5) + 2 bond (A5, A3) – 2 bond (A2, A3)
= 2 (90) + 2{(24*0)+(3*0)+(0*21) +(0*21)+(27*0)} – 2 {(0*0)+(3*0)+(0*21)+
(0*21)+(3*0)}
= 2 (90) + 2 (0) – 2 (0)
= 180

cont(A3, A5, A4) = 2 bond (A3, A5) + 2 bond (A5, A4) – 2 bond (A3, A4)
= 2 (0) + 2{(24*0)+(3*0)+(0*21) +(0*21)+(27*0)} – 2 {(0*0)+(0*0)+(21*21)+
(21*21)+(0*0)}
= 2 (0) + 2 (0) – 2 (882)
= -1764

cont(A4, A5, A6) = 2 bond (A4, A5) + 2 bond (A5, A6) – 2 bond (A4, A6)
=2(0)+2(0) – 2 (0)+
= 2 (0) + 2 (0) – 2 (0)
=0

“elegimos la última contribución” porque no fue la última la seleccionada


entre A1 y A2l. Construimos pues, la matriz de grupos afines:
A0 A1 A5 A2 A3 A4 A6
0 24 24 0 0 0 0
0 0 3 3 0 0 0
0 0 0 0 21 21 0
0 0 0 0 21 21 0
0 24 27 3 0 0 0

Y quitamos A0 y A6:
A1 A5 A2 A3 A4
24 24 0 0 0
0 3 3 0 0
0 0 0 21 21
0 0 0 21 21
24 27 3 0 0

Erick aquí le acomodas y se lo mandas al profe


A1 A2 A3 A4 A5
24 24 0 0 0
24 27 3 0 0
0 3 3 0 0
0 0 0 21 21
0 0 0 21 21

A1 y A5 en un grupo.

A3 y A4 en el otro grupo, pero recuerde que A1 debe incluirse también (por ser la columna de
la llave primaria)

Realizar los fragmentos verticales de acuerdo a los grupos obtenidos


--1
Select Idcliente,
Into ProyectoFrag1
From Clientes
--2
Select IdCte, DomCte, TelCte
Into ProyectoFrag2
From Clientes

Potrebbero piacerti anche