Está en la página 1de 49

Dispersin de Registros - Archivos de Acceso Directo

Organizacin de Datos Curso Servetto

Antecedentes
Costos promedio de acceso en un archivo de N (p.e. 10.000)

registros:
Secuencial desordenado: N/2 (p.e. 5.000)
Secuencial ordenado: log2N (p.e. 12) rboles balanceados de orden d (carga promedio de nodos

2/3*d-1): menos de log3/4*d(N/(3/4*d-1)) (p.e. para d=16, menos de 3)

Es posible reducir an ms el costo de acceso?


Y si se prueba con una funcin de mapeo de claves de

registros a direcciones?
2 Dispersin de Registros
OAA

Dispersin (hashing)
Tcnica para generar una direccin base nica para una clave

dada. La dispersin se usa cuando se requiere acceso rpido a un registro.

Tcnica que convierte la clave del registro en un nmero

aleatorio, el que sirve despus para determinar dnde se almacena el registro.

Tcnica de almacenamiento y recuperacin que usa una funcin

de hash para mapear registros en direcciones de almacenamiento.

Dispersin de Registros

OAA

Organizacin de Registros

Para registros de longitud fija se pueden usar bloques con capacidad para uno o muchos registros
Un registro: ranura (slot)o compartimiento individual. Cuando se intenta

insertar un nuevo registro en una ranura ocupada se produce una colisin. Muchos registros: cubeta (bucket)o compartimiento mltiple. Cuando se intenta insertar un nuevo registro en una ranura que est llena se produce un desborde.

Para registros de longitud variable se deben usar cubetas con capacidad para varios registros para evitar la fragmentacin interna. Las ranuras deben tener un campo de control que indique si tienen contenido vlido cuando se acceden. Las cubetas deben tener un campo de control que indique la cantidad de registros que contienen, si son para registros de longitud fija, o el espacio libre que les queda, si son para registros de longitud variable

4 Dispersin de Registros
OAA

Funciones de Dispersin
Transforman la clave de un registro en una direccin de ranura (slo

registros de longitud fija) o en una direccin de cubeta (registros de longitud fija o variable) Pueden transformar claves distintas en una misma direccin: sinnimos Para claves alfanumricas deben transformar los caracteres a un nmero, y luego calcular el resto de dividir al nmero entre la cantidad total de unidades del archivo (usualmente se aplican transformaciones a los valores ASCII de todos o algunos de los caracteres) Para claves numricas pueden aplicar una transformacin para aleatorizar resultados y luego calcular el resto de la divisin entre la cantidad total de unidades del archivo
5 Dispersin de Registros

OAA

Funciones de Dispersin
Resto de Divisin o Mdulo: la

clave se divide entre el nmero de direcciones (debe tratarse de que sea nmero primo, pues tiende a distribuir residuos en forma ms eficiente) Centros cuadrados: la clave se multiplica por si misma y se toman los dgitos centrales del resultado; posteriormente se ajusta al espacio disponible Desplazamiento y suma: los dgitos externos de ambos extremos se corren hacia adentro, se suman y se ajusta al espacio disponible Plegado y suma: los dgitos externos se pliegan y suman y el resultado se ajusta al espacio de direcciones

Anlisis de dgitos: se obtiene un

nmero a ajustar a las direcciones disponibles seleccionando dgitos de la clave original en posiciones donde no aparezcan repeticiones. Conversin de base: la base del nmero se modifica y en la serie de dgitos resultante se reemplazan dgitos no decimales por su equivalente decimal. Ej: para direcciones entre 0 y 99, se ingresa la clave 757: (757)10=(2E5)16; 2145 mod 100= 45 Divisin polinmica: cada dgito de la clave se toma como coeficiente de un polinomio, que se divide por un polinomio fijo, y el coeficiente del resto se toma como nmero a ajustar a las direcciones.

Dispersin de Registros

OAA

Funciones de Dispersin (ejemplos)


Conversin de clave alfabtica a un nmero (paso previo a aplicar una funcin de dispersin cuando las claves son alfabticas o alfanumricas) Info 49|6E|66|6F (ASCII) 73|110|102|111 (decimal) Posibilidades (de acuerdo a la cantidad de caracteres que se tomen y al espacio de direcciones): Concatenar dgitos hexadecimales y pasar a decimal: (496E666F)16 1231971951 Concatenar dgitos decimales: 73110102111 Sumar valores decimales: 73+110+102+111=396 Usar imaginacin

R: Resto de la divisin entre cantidad de direcciones (p.e. 750 direcciones de cubetas: 0..749)
C: Centro de cuadrados

R(1231971951) = 201 R(73110102111) = 73110102111 mod 750 = 111 R(396) no aplica


C(1231971951) 1517754888050746401 488805 mod 750 = 555 C(73110102111) 5345087030680846656321 306808 306808 mod 750 = 58 C(396) 156816 se toman todos los dgitos 156816 mod 750 = 66
OAA

Dispersin de Registros

Funciones de Dispersin (ejemplos)


Conversin de clave alfabtica a un nmero Info 49|6E|66|6F (ASCII) 73|110|102|111 (decimal) Concatenar dgitos hexadecimales y pasar a decimal: (496E666F)16 1231971951 Concatenar dgitos decimales: 73110102111 Sumar valores decimales: 73+110+102+111=396 D(1231971951) 971951 + 1231 = 973182 973182 mod 750 = 432 D(73110102111) 102111 + 73110 = 175221 175221 mod 750 = 471 R(396) no aplica D(1231971951) 971951 + 132100 = 1104051 1104051 mod 750 = 51 D(73110102111) 102111 + 011370 = 1113481 113481 mod 750 = 231 R(396) no aplica

D: Desplazamiento y suma (6 dgitos)

P: Plegado y suma (6 dgitos)

Dispersin de Registros

OAA

Organizacin de Colisiones y Desbordes


Los registros que colisionan en una ranura o desbordan una cubeta

pueden ubicarse en otro lugar, en cuyo caso se los denomina registros en saturacin, y van degradando paulatinamente la organizacin de los archivos (las bsquedas se vuelven ms costosas). Las tcnicas que adoptan esta solucin se denominan de dispersin esttica porque la cantidad de direcciones de dispersin de los archivos nunca cambia, y requieren la reestructuracin total de los archivos cuando alcancen algn grado de saturacin que se considere insostenible. Para archivos con cubetas se pueden solucionar los desbordes mediante reestructuraciones parciales que los mantengan siempre organizados (tal como se mantienen los rboles) y que pueden implicar un cambio en la cantidad de direcciones de dispersin. Las tcnicas que adoptan esta solucin se denominan de dispersin dinmica.
9 Dispersin de Registros
OAA

Dispersin Esttica
Organizacin de registros en saturacin Ejemplos comparativos (mismas operaciones a partir de un archivo cargado sin registros en saturacin)

10

Dispersin de Registros

OAA

Organizacin de Colisiones o Desbordes


Saturacin en unidades ajenas (direccionamiento abierto) Saturacin lineal: bsqueda secuencial circular a partir de la ranura o cubeta siguiente; las ranuras pueden encadenarse (saturacin lineal encadenada), pero las cadenas deben comenzar en la direccin original Dispersin doble: una segunda funcin de dispersin determina la longitud de saltos para buscar ranuras o cubetas donde almacenar o encontrar registros en saturacin Saturacin en reas exclusivas para colisiones o desbordes

(direccionamiento cerrado)

Unidades de saturacin lineal al final del archivo (se agregan al archivo segn se

necesite) Unidades de saturacin intercaladas en el archivo (se inicializan al crear el archivo) Encadenamiento de unidades para sinnimos de una unidad original, en otro archivo (cubetas de menor capacidad)
11 Dispersin de Registros

OAA

Estimacin de Registros en Saturacin (colisiones o desbordes)


Archivo con D cubetas (espacio de direcciones 0..D-1) con capacidad para C registros

(capacidad de cubeta), y con R registros almacenados en total (capacidad del archivo D*C)
Funcin de Poisson aplicada a la dispersin (probabilidad que una cubeta tenga n

registros asignados por dispersin): P(n)=(R/D)n * e-(R/D)/n!


Entonces el nmero esperado de direcciones con n registros asignados es

E(n)=D*P(n) El nmero esperado de registros en saturacin (que estn en cubetas que no les corresponden) es S =D*(P(C+1)+2*P(C+2)+3*P(C+3)+) P.e. para un archivo de1.000 cubetas con capacidad para 10 registros:
6.000 registros: S 77

8.000 registros: S 420


10.000 registros: S 1.180

A mayor carga del archivo, mayor es la cantidad de registros en saturacin. El porcentaje

de carga del archivo se denomina densidad de empaquetamiento DE=R/(D*C) para evitar alta saturacin no se debe permitir DE muy alta

12

Dispersin de Registros

OAA

Operaciones

Creacin: se calcula la cantidad de unidades de organizacin (ranuras o cubetas) para que la mxima cantidad de registros que podra tener el archivo representen una DE no muy alta (0.7 o 0.8) y se inicializan; se puede cargar inicialmente el archivo con una primitiva que no valide unicidad de registros. Actualizacin de Registros: insercin con validacin de unicidad, modificacin y supresin. Las ranuras requieren un campo de control para indicar si estn vacas, ocupadas o borradas, y las cubetas para indicar si alguna vez se desbordaron o no; este campo sirve para acotar bsquedas de registros que no existen (para validacin de unicidad o por solicitud especfica) Recuperacin de Registros: consulta o recuperacin unitaria de registros, y reporte o recuperacin comprensiva de todos los registros (desordenados) por recorrido secuencial. Mantenimiento: reestructuraciones por desorganizacin, y respaldo con reorganizacin a archivos secuenciales.
Dispersin de Registros
OAA

13

Caso de estudio comparativo


Se define la capacidad del archivo

considerando que al alcanzar la mxima cantidad estimada de 20 registros su DE sera 0,8: 0,8 es a 20, lo que 1 es a la capacidad que debe tener el archivo, entonces capacidad=20/0,8=25. Si se definen bloques con capac. 3 registros, el archivo debe tener 25 div 3=8 bloques, y como 25 mod 3 > 0 le sumamos uno ms: 9 Se usa un campo de control en los bloques para indicar si se desbordaron o no. Se muestra un estado inicial del archivo sin registros en saturacin.
14 Dispersin de Registros

Desb. 0 1 2 3 4 5 6 7 8

R1

R2

R3

N N N N N N N N
N

459 946

270 973

954

741

426

462

446 123 376


458

410 789 484


305 809
OAA

Saturacin en unidades ajenas (direccionamiento abierto)


Ejemplos de operaciones, con costos de acceso implicados

15

Dispersin de Registros

OAA

Saturacin Lineal (1)


Alta de registro con clave
Desb. 0 1 2 3 4 5 6 7 8
16 Dispersin de Registros

R1

R2

R3

630 (partiendo de estado inicial sin saturacin):


630 mod 9 = 0

S N N N N N N N
N

459 946

270 973

954 630

La cubeta 0 est llena y no

desbordada: se reescribe cambiando su estado de desborde a S Se lee la siguiente cubeta en busca de espacio Costo de la operacin: L0E0L1E1

741

426

462

446 123 376


458

410 789 484


305 809
OAA

Saturacin Lineal (2)


Alta de registro con clave
Desb. 0 1 2 3 4 5 6 7 8 R1 R2 R3

557:
557 mod 9 = 8
La cubeta 8 est llena y no

S S N N N N N N
S

459 946 557 741

270 973

954 630

desbordada: se reescribe cambiando su estado de desborde a S Se leen las cubetas siguientes hasta encontrar espacio, cambiando sus estados de desborde si fuera necesario Costo de la operacin: L8E8L0L1E1L2E2
17 Dispersin de Registros

426

462

446 123 376


458

410 789 484


305 809
OAA

Saturacin Lineal (3)


Alta de reg. con clave 731: 731 mod 9 = 2 Costo de la operacin: L2E2
Bsqueda de 557:
557 mod 9 = 8
La cubeta 8 no contiene a

Desb. 0 1 2 3 4 5 6 7 8

R1

R2

R3

S S N N N N N N
S

459 946 557 741

270 973 731 426

954 630

ningn registro con esa clave pero est desbordada: se busca a partir de la siguiente (circular), hasta encontrarlo o alcanzar una cubeta NO desbordada que NO lo contenga (corte de bsq.) Costo: L8L0L1L2
18 Dispersin de Registros

462

446 123 376


458

410 789 484


305 809
OAA

Saturacin Lineal (4)


Baja de reg. con clave 459: 459 mod 9 = 0 Costo de la operacin: L0E0
Observaciones:
No se cambia el indicador de

Desb. 0 1 2 3 4 5 6 7 8

R1

R2

R3

S S N N N N N N
S

270 946 557 741

954 973 731 426 462 630

desborde de la cubeta, porque impedira encontrar registros en saturacin que le correspondan Se podra buscar linealmente un registro en saturacin correspondiente a la cubeta para ponerlo en su direccin base y optimizar bsquedas
19 Dispersin de Registros

446 123 376


458

410 789 484


305 809
OAA

Saturacin Lineal vs Dispersin Doble


La saturacin lineal produce agrupamiento de registros en

saturacin en las cubetas siguientes a las de su direccin base u original, las cuales a su vez se desbordan pronto por contener a estos registros intrusos, por lo que las bsquedas se hacen ms extensas cuando hay muchos registros en saturacin La saturacin doble tiene como propsito dispersar los desbordes de una misma cubeta para no producir agrupamiento: los registros que desbordan un misma cubeta base se ubican en distintas cubetas destino
Dispersin de Registros

20

OAA

Dispersin Doble (1)


Alta de registro con clave

630 y usando segunda funcin D(k)=k mod 5 +1 para saltos de bsqueda:


630 mod 9 = 0
La cubeta 0 est llena y no

Desb. 0 1 2 3 4 5 6 7 8

R1

R2

R3

S N N N N N N N
N

459 946

270 973

954 630

desbordada: se reescribe cambiando su estado de desborde a S Se lee la cubeta (0 + 630 mod 5 +1) mod 9 = 1 en busca de espacio Costo de la operacin: L0E0L1E1
21 Dispersin de Registros

741

426

462

446 123 376


458

410 789 484


305 809
OAA

Dispersin Doble (2)


Alta de registro con clave

557:
557 mod 9 = 8
La cubeta 8 est llena y no

Desb. 0 1 2 3 4 5 6 7 8

R1

R2

R3

S N N N N N N N
S

459 946 557 741

270 973

954 630

desbordada: se reescribe cambiando su estado de desborde a S Se lee la cubeta (8 + 557 mod 5 +1) mod 9 = 2 en busca de espacio Costo: L8E8L2E2 (comparar con saturacin lineal)

426

462

446 123 376


458

410 789 484


305 809
OAA

22

Dispersin de Registros

Dispersin Doble (3)


Alta de reg. con clave 731: 731 mod 9 = 2 Costo de la operacin: L2E2
Bsqueda de 557:
557 mod 9 = 8

Desb. 0 1 2 3 4 5 6 7 8

R1

R2

R3

S N N N N N N N
S

459 946 557 741

270 973 731 426

954 630

La cubeta 8 no contiene a

ningn registro con esa clave pero est desbordada: se busca con saltos (circulares) de 557 mod 5 +1 = 3 cubetas, hasta encontrarlo o alcanzar una cubeta NO desbordada que NO lo contenga (corte de bsq.) Costo: L8L2
23 Dispersin de Registros

462

446 123 376


458

410 789 484


305 809
OAA

Dispersin Doble (4)


Baja de reg. con clave 459:
459 mod 9 = 0 Costo de la operacin: L0E0

Desb. 0 1 2 3 4 5 6 7 8

R1

R2

R3

S N N N N N N N
S

270 946 557 741

954 973 731 426 462 630

Bsqueda de 557:
No se cambia el indicador de

desborde de la cubeta, porque impedira encontrar registros en saturacin que le correspondan Se podra buscar linealmente (dado que los registros en saturacin estn dispersos) un registro en saturacin correspondiente a la cubeta para ponerlo en su direccin base y optimizar bsquedas

446 123 376


458

410 789 484


305 809
OAA

24

Dispersin de Registros

Saturacin en cubetas exclusivas (direccionamiento cerrado)


Ejemplos de operaciones, con costos de acceso implicados

25

Dispersin de Registros

OAA

Saturacin Lineal en extensin del archivo (1)


Alta de registro con clave
Desb. 0 1
2 3 4 5 6 7 S

R1
459

R2
270

R3
954

630 (partiendo de estado inicial sin saturacin):


630 mod 9 = 0
La cubeta 0 est llena y no

N N N
N N N N N

946

973

desbordada: se reescribe cambiando su estado de desborde a S Se agrega una cubeta al final del archivo Costo de la operacin: L0E0E9 Se ignora el campo de desborde en el rea de saturacin
26 Dispersin de Registros

741

426

462

446 123 376 458

410 789 484 305 809

8 9

630
OAA

Saturacin Lineal en extensin del archivo (2)


Alta de registro con clave
Desb. 0 1
2 3 4 5 6 7 S

R1
459

R2
270

R3
954

557:
557 mod 9 = 8
La cubeta 8 est llena y no

N N N
N N N N S

946

973

desbordada: se reescribe cambiando su estado de desborde a S Se lee la primer cubeta de desborde: 9 Costo de la operacin: L8E8L9E9

741

426

462

446 123 376 458

410 789 484 305 809

8 9
27 Dispersin de Registros

630

557
OAA

Saturacin Lineal en extensin del archivo (3)


Alta de reg. con clave 731: 731 mod 9 = 2 Costo de la operacin: L2E2
Bsqueda de 557:
557 mod 9 = 8
La cubeta 8 no contiene a

Desb. 0 1
2 3 4 5 6 7 S

R1
459

R2
270

R3
954

N N N
N N N N S

946 731 741

973

426

462

ningn registro con esa clave pero est desbordada: se busca a partir de la primer cubeta de desborde (9), hasta encontrarlo o alcanzar la ltima cubeta del archivo. Costo: L8L9

446 123 376 458

410 789 484 305 809

8 9

630

557
OAA

28

Dispersin de Registros

Saturacin Lineal en extensin del archivo (4)


Baja de reg. con clave 459: 459 mod 9 = 0 Costo de la operacin: L0E0
Observaciones:
No se cambia el indicador de

Desb. 0 1
2 3 4 5 6 7 S

R1
270

R2
954

R3

N N N
N N N N S

946 731 741

973

desborde de la cubeta, porque impedira encontrar registros en saturacin que le correspondan Se podra buscar linealmente en el rea de desborde un registro en saturacin correspondiente a la cubeta para ponerlo en su direccin base y optimizar bsquedas
29 Dispersin de Registros

426

462

446 123 376 458

410 789 484 305 809

8 9

630

557
OAA

Saturacin Lineal en extensin del archivo vs Saturacin en cubetas de desborde intercaladas


La saturacin lineal en una extensin del archivo, en archivos

grandes puede implicar que el rea de saturacin quede ubicada en otro cilindro del disco, con el costo de desplazamiento asociado Agregar una cubeta de desborde cada cierto nmero de cubetas base para los registros en saturacin correspondientes a cada grupo garantiza que no haya desplazamientos de bsqueda para los desbordes; pero el costo de conseguir esta ventaja es que las cubetas de desborde deben crearse junto con el archivo ocupando ms espacio que el estimado para una densidad de empaquetamiento objetivo
30 Dispersin de Registros
OAA

Saturacin en cubetas de desborde intercaladas (1)


Se intercala una cubeta de desborde

Desb. 0 N

R1 459

R2 270

R3 954

cada tres de la imagen de la funcin de dispersin


La cantidad de direcciones de la

1
2

N
N

946

973

imagen de la funcin se calcula para DE=0,8


La funcin de dispersin es h(k) = k

3
4

N
N 741 446 123 426 410 789 462

mod 9 + (k mod 9) div 3


La cubeta de desborde para una

5
6

N
N

clave k es d(k) = 4 * ((k mod 9) div 3) + 3


Si se desbordara una cubeta de

7
8

N
N

desborde se puede proceder con saturacin lineal en una extensin del archivo para desbordes de cubetas de desborde
31 Dispersin de Registros

9
10

N
N

376
458

484
305 809

11

N
OAA

Saturacin en cubetas de desborde intercaladas (2)


Alta de registro con clave
Desb. 0 S R1 459 R2 270 R3 954

630:
630 mod 9 + (630 mod 9)

1
2

N
N

946 630
741 446 123

973

div 3 = 0 La cubeta 0 est llena y no desbordada: se reescribe cambiando su estado de desborde a S Se lee la cubeta 4 * ((630 mod 9) div 3) + 3 = 3 en busca de espacio Costo de la operacin: L0E0L3E3

3
4

N
N

426 410 789

462

5
6

N
N

7
8

N
N

9
10

N
N

376
458

484
305 809

11
32 Dispersin de Registros

N
OAA

Saturacin en cubetas de desborde intercaladas (3)


Alta de registro con clave
Desb. 0 S R1 459 R2 270 R3 954

557:
557 mod 9 + (557 mod 9)

1
2

N
N

946 630
741 446 123

973

div 3 = 8 + 2 = 10 La cubeta 10 est llena y no desbordada: se reescribe cambiando su estado de desborde a S Se lee la cubeta 4 * ((557 mod 9) div 3) + 3 = 11 en busca de espacio Costo de la operacin: L10E10L11E11

3
4

N
N

426 410 789

462

5
6

N
N

7
8

N
N

9
10

N
S

376
458

484
305 809

11
33 Dispersin de Registros

557
OAA

Saturacin en cubetas de desborde intercaladas (3)


Alta de reg. con clave 731: 731 mod 9 + (731 mod 9) div 3= 2 Costo de la operacin: L2E2
Bsqueda de 557:
557 mod 9 + (557 mod 9)

Desb. 0 S

R1 459

R2 270

R3 954

1
2

N
N

946
731

973

3
4

N
N

630
741 446 123 426 410 789 462

div 3 = 8 + 2 = 10 La cubeta 8 no contiene a ningn registro con esa clave pero est desbordada: se busca en 4 * ((557 mod 9) div 3) + 3 = 11 Costo: L10L11

5
6

N
N

7
8

N
N

9
10

N
S

376
458

484
305 809

11
34 Dispersin de Registros

557
OAA

Saturacin en cubetas de desborde intercaladas (3)


Baja de reg. con clave 459: 459 mod 9 + (459 mod 9) div 3 = 0 Costo de la operacin: L0E0
Observaciones:
No se cambia el indicador de

Desb. 0 S

R1 270

R2 954

R3

1
2

N
N

946
731

973

3
4

N
N

630
741 446 123 426 410 789 462

desborde de la cubeta, porque impedira encontrar registros en saturacin que le correspondan Se podra traer un registro de la cubeta de desborde 4 * ((459 mod 9) div 3) + 3 = 3 para ponerlo en su direccin base y optimizar bsquedas
35 Dispersin de Registros

5
6

N
N

7
8

N
N

9
10

N
S

376
458

484
305 809

11

557
OAA

Encadenamiento de cubetas para sinnimos de una cubeta original, en otro archivo


Archivo de Datos
Desb R1 R2 R3

Archivo de Desbordes
Sig. R

0 1
2 3 4

0 -1
-1 -1 -1

459 946
731 741

270 973
426

954

0
1

-1
-1 L0E0E0 L8E8E1

630
557

462

Alta 630 Alta 557

5
6 7 8
36

-1
-1 -1 1

446
123 376 458

410
789 484 305 809

Alta 731
Bsq. 557

L2E2
L8L1

Baja 459

L0E0

Dispersin de Registros

OAA

Dispersin Dinmica
Tcnica de dispersin extensible

37

Dispersin de Registros

OAA

Dispersin Extensible
La funcin de dispersin se usa para acceder a una tabla (archivo)

de direcciones de cubetas o de dispersin Cada vez que se desborda una cubeta del archivo, se agrega una nueva y se distribuye la carga de la desbordada entre sta y la nueva mediante la funcin de dispersin De tanto en tanto, cuando se agrega una cubeta al archivo la tabla de dispersin se duplica Las cubetas requieren campos de control para indicar la cantidad de registros (de longitud fija) o la cantidad de bytes libres (registros de longitud variable), y para indicar el tamao de dispersin de la cubeta (indica cuntas referencias a la cubeta hay en la tabla de dispersin)
38 Dispersin de Registros
OAA

Operaciones con Dispersin Extensible

Creacin: se calcula la cantidad de cubos necesarias para un 20 o 30% ms de la mxima cantidad de registros con los que se va a cargar inicialmente el archivo y se inicializa al tabla de direcciones para esa cantidad de cubos; se carga inicialmente el archivo con una primitiva que no valide unicidad de registros. Actualizacin de Registros: insercin con validacin de unicidad, modificacin y supresin se localiza el cubo donde insertar o encontrar el registro, accediendo a la tabla de direcciones con la funcin de dispersin. De Recuperacin de Registros: consulta o recuperacin unitaria de registro, y reporte o recuperacin comprensiva de todos los registros (desordenados) por recorrido secuencial del archivo de cubos. Mantenimiento: respaldo con reorganizacin a archivo secuencial.
Dispersin de Registros
OAA

39

Versiones de Dispersin Extensible

Con Bits Prefijos: la funcin de dispersin es el nmero conformado por los log2(tamao de la tabla) bits ms significativos del identificador cada cubeta aparece direccionado ta/tc veces en la tabla en direcciones consecutivas

Con Bits Sufijos o Modular: la funcin de dispersin es el resto de la divisin entre el tamao de la tabla cada cubo aparece direccionado ta/tc veces en la tabla cada tc registros, con ta tamao actual de la tabla y tc tamao de la tabla al agregarse o balancearse por ltima vez el cubo
Dispersin de Registros
OAA

40

Dispersin Extensible con Bits Prefijos


Se trabaja con los primeros bits de una porcin final de las claves numricas (representadas en binario) La funcin de dispersin deriva a la posicin de la tabla determinada por los log2(tt) primeros bits de la porcin de la clave (tt: tamao de tabla de dispersin)

41

Dispersin de Registros

OAA

Bits Prefijos (1)


Cubetas para 4 registros y tomando ltimos 10 bits de claves:

Tabla: 1 1 1 1 1 1 1 1 2 2 2 2 4 3 0 0

Bloques Libres: Claves de elementos en Bloques: 0: td 8; 1110101000 1110010100 1: td 2; 0000111111 0011110101 0010111100 0000011101 2: td 4; 1001100011 1011101101 1011000101 1010010011 3: td 16; 1101100010 1101110111 4: td 16; 1100100000 1100011010 1100100010
42 Dispersin de Registros
OAA

Bits Prefijos (2)


Alta 0101000000:

Tabla: 5 5 5 5 1 1 1 1 2 2 2 2 4 3 0 0 Bloques Libres: Claves de elementos en Bloques: 0: td 8; 1110101000 1110010100 1: td 4; 0101000000

2: td 4; 1001100011 1011101101 1011000101 1010010011


3: td 16; 1101100010 1101110111

4: td 16; 1100100000 1100011010 1100100010


5: td 4; 0000111111 0011110101 0010111100 0000011101

43

Dispersin de Registros

OAA

Bits Prefijos (3)


Baja 0101000000:

Tabla: 5 5 5 5 5 5 5 5 2 2 2 2 4 3 0 0 Bloques Libres: 1


Claves de elementos en Bloques: 0: td 8; 1110101000 1110010100 1: td 4; 0101000000

2: td 4; 1001100011 1011101101 1011000101 1010010011


3: td 16; 1101100010 1101110111

4: td 16; 1100100000 1100011010 1100100010


5: td 2; 0000111111 0011110101 0010111100 0000011101

44

Dispersin de Registros

OAA

Dispersin Extensible con Bits Sufijos o Modular


Se trabaja con los ltimos bits de las claves numricas (representadas en decimal) La funcin de dispersin deriva a la posicin de la tabla determinada por los k mod tt (k: clave, tt: tamao de tabla de dispersin)

45

Dispersin de Registros

OAA

Bits Sufijos (1)


Cubetas para 4 registros y claves entre 1 y 999:

Tabla: 2 0 3 0 2 0 1 0 Bloques Libres: Claves de elementos en Bloques: Bloque 0, td 2: 463 5 47 201 Bloque 1, td 8: 902 Bloque 2, td 4: 472 796 20 128 Bloque 3, td 8: 594 562 826
46 Dispersin de Registros
OAA

Bits Sufijos (2)


Baja 902:

Tabla: 2 0 3 0 Bloques Libres: 1


Claves de elementos en Bloques: Bloque 0, td 2: 463 5 47 201 Bloque 1, td 8: 902 Bloque 2, td 4: 472 796 20 128 Bloque 3, td 4: 594 562 826
47 Dispersin de Registros
OAA

Bits Sufijos (3)


Alta 604:

Tabla: 1 0 3 0 2 0 3 0
Bloques Libres: Claves de elementos en Bloques: Bloque 0, td 2: 463 5 47 201 Bloque 1, td 8: 472 128 Bloque 2, td 8: 796 20 604 Bloque 3, td 4: 594 562 826

48

Dispersin de Registros

OAA

Bits Sufijos (4)


Alta 347:

Tabla: 1 0 3 4 2 0 3 4
Bloques Libres: Claves de elementos en Bloques: Bloque 0, td 4: 5 201 Bloque 1, td 8: 472 128 Bloque 2, td 8: 796 20 604 Bloque 3, td 4: 594 562 826 Bloque 4, td 4: 463 47 347
49 Dispersin de Registros
OAA