You are on page 1of 16

Tema 8C: 8C: Lecturas Complementarias

Acceso MultiMulti-Clave
Introduccin Consultas n-dimensionales Organizaciones Indizadas para acceso multiclave rboles R Organizaciones Direccionadas Multiclave Estructuras Avanzadas para el Acceso Invertido Esquemas de Bits de puntero implcito Comparativa de estructuras para el acceso invertido

2012 LaBDa Universidad Carlos III Madrid

FFBBDD - 1

Tema 8C: 8C: Introduccin


El acceso multiclave (o n-dimensional) es de gran inters por sus posibilidades y aplicaciones, como las BBDD espacio-temporales Es importante caracterizar las consultas que deben resolverse mediante este tipo de acceso, para evaluar despus su coste en las diferentes estructuras fsicas especficas. Despus de esta caracterizacin, estas diapositivas explican la ms importante de las estructuras auxiliares de este tipo (rbol R) y profundizan lo visto en clase sobre las dispersiones multiclave. Tambin se incluye una breve descripcin del esquema de bits de puntero implcito, como estructura avanzada para el acceso invertido. Finalmente, se ofrece una comparativa de las estructuras auxiliares en su aplicacin sobre el acceso invertido.
FFBBDD - 2

2012 LaBDa Universidad Carlos III Madrid

Tema 8C.1: 8C.1: Consultas n-dimensionales


1 2 3 4 5 6 7 8 9

Tipos de Consulta: Exact Match Query (EMQ) Point Query (PQ) Window Query (WQ) Intersection Query (IQ) Enclosure Query (EQ) Adjacency Query (AQ) Containment Query (CQ) Nearest-Neighbor Query (NNQ) Spatial Join (SJ)

E4 E1 E6

E7 E9

R1
E2 E3 E10

R2
E5

E8

Ejemplos: EMQ(Q1) = {E3} PQ(Q2) = {E4} Q4 WQ(Q3) = {E2,E5,E10} o1 Q2 IQ(Q4) = {E7,E9} Q7 EQ(Q5) = {E10} Q1 AQ(Q6) = {E10} CQ(Q7) = {E4,E6} NNQ(Q8) = {E5,E10} SJ({Ei}{oi}, distancia(Qi,Ei) < 3) = {(o1,E1),(o1,E4),(o2,E5)}
2012 LaBDa Universidad Carlos III Madrid

Q3,Q6

Q5 Q8

o2

FFBBDD - 3

Tema 8C.1: 8C.1: Consultas n-dimensionales


Ejemplos Prcticos
Qu tipo de consulta responde a las siguientes preguntas? 1. 2. 3. 4. 5. 6. 7. 8. 9. Coche aparcado en la plaza 555 En qu edificio est el vigilante? Jugadores en el campo de ftbol (en un intervalo 2D y de tiempo) Carreteras que pasan por Legans mbitos geogrficos del Bierzo Provincias limtrofes con Segovia Contar los coches de polica que se encuentran en la zona centro Ambulancia ms cercana al lugar de un accidente Ciudades atravesadas por ros

2012 LaBDa Universidad Carlos III Madrid

FFBBDD - 4

Tema 8C.2 C.2: : rboles R (R-trees)


Aspecto de los nodos
Uso: especialmente tiles para el manejo de informacin espacio/temporal Preliminar: todo dominio presenta una relacin de orden Entradas: estn todas en los nodos hoja (resto de nodos, para localizar hojas) HOJAS: posicin n-dimensional y su correspondiente puntero externo
(valor1, valor2, ..., valorN, puntero_externo)

RESTO: geometra n-dimensional y su correspondiente puntero interno


(rango1, rango2, ..., rangoN, puntero_interno) Nodo No Hoja
Geometra 2

Nodo Hoja
Entrada 2

Encadenamiento

G1 E

inf_1 sup_1 inf_2 sup_2 2 inf_N sup_N

G3

...

E1

valor1 Evalor2 2 valorN

E3

...
FFBBDD - 5

(a otro nodo del rbol)

(al fichero de datos)

2012 LaBDa Universidad Carlos III Madrid

Tema 8C.2 C.2: : rboles R (R-trees)


Almacenando Geometras
Todos los punteros externos estn en nodos hoja, con sus entradas Las entradas pueden ser puntos, pero tambin geometras! (fig. A) La hoja no ocupa un punto, sino un rea (definida por una geometra) Si la geometra es muy compleja, ocupar ms espacio (en la fig.B, implica almacenar 9 puntos!) conviene utilizar Geometras Regulares El intervalo mnimo multidimensional (Minimun Bounding Box - MBB) consiste en una geometra regular definida por dos puntos (fig. C): inferior (en todas sus dimensiones) y superior (en todas sus dimensiones).

A
2012 LaBDa Universidad Carlos III Madrid

C
FFBBDD - 6

Tema 8C.2.1 C.2.1: : rboles R (R-trees)


Almacenando Entradas
E3 E1

R1
E2 E6 E4

R2
E5

Raz

R R
1

E1

E2

E3

E4

E5

E6
FFBBDD - 7

2012 LaBDa Universidad Carlos III Madrid

Tema 8C.2.1 C.2.1: : rboles R (R-trees)


Polticas de Particin (Splitting Policies) I
Particin: a partir de un rea Ri que contiene un conjunto Si de elementos (geometras o puntos n-dimensionales) obtener otras dos (o ms) reas Rj y Rk que contengan todos los elementos de Si.
Aunque no es obligatorio, se suelen buscar dos reas Rj y Rk Esas reas sern las MBB que contengan los subconjuntos Sj y Sk La poltica de particin deber decidir el reparto de todos los elementos de Si en los dos subconjuntos, tal que Sj Sk Si La poltica de particin ser la que decida el reparto: en cuantos subconjuntos (generalmente dos); si esos subconjuntos estn o no equilibrados (reparto de carga); que criterio se escoge para dividir un conjunto en varios (criterio)
FFBBDD - 8

2012 LaBDa Universidad Carlos III Madrid

Tema 8C.2.1 C.2.1: : rboles R (R-trees)


Polticas de Particin (Splitting Policies) y II
Reparto: aunque no es obligatorio, se tender en general al equilibrio de carga entre ambos subconjuntos pginas descendientes llenas al 50% Criterios de reparto: Agrupamiento: para cada subconjunto candidato Sc se hallar el centro de gravedad (c.d.g.); se buscar el reparto que minimice el sumatorio de las distancias de cada elemento al centro de gravedad de su conjunto. MBBs mnimos: se procura minimizar el producto de los intervalos de las MBB (su rea, su volumen,...) MBBs regulares: se procurar partir por la dimensin cuyo rango en Ri sea (relativamente) mayor
2012 LaBDa Universidad Carlos III Madrid

FFBBDD - 9

Tema 8C.2.2 C.2.2: : rboles R (R-trees)


Propiedades (I)
Ocupacin Mxima y Mnima: Cada nodo tiene un mximo de entradas (k) y de descendientes (m)
se calculan por el tamao de pgina, y de ellos se saca la ocupacin mnima Todas las hojas (no raz) tienen un mnimo de entradas (kmin) La raz (no hoja) tiene un mnimo de dos descendientes Los nodos internos tienen un mnimo de descendientes (mmin) Los nodos no hoja tienen tantas entradas como descendientes En general, m = k (aunque existe una variante con m = k + 1 )

Clculo del Orden (m): si el reparto es equilibrado en dos descendientes...

m Tptro_interno + k Tentrada < Tnodo


tal que...

y adems...

Tentrada = 2( Tclave i ) + Tptro_externo

mmn = kmn =

k+1 2

2012 LaBDa Universidad Carlos III Madrid

FFBBDD - 10

Tema 8C.2.2 C.2.2: : rboles R (R-trees)


Propiedades (II)
Profundidad del rbol: El rbol R es balanceado en altura (crece de abajo-arriba) Se puede acotar superiormente el nmero de hojas:
N mximo de hojas = n de entradas / ocupacin mnima

nhojas =

kmin + 1 2

Tambin se puede acotar superiormente el nmero de ascendientes en el nivel n-1 (la frmula para hallar esa cota es la misma) Aplicando iterativamente esa frmula hasta llegar a la raz (nivel cuyo nmero de nodos sea 1) se podr calcular la profundidad del rbol (n) La profundidad del rbol determina el nmero mnimo de accesos. Si los intervalos no se solapan, tambin determina el coste mximo de algunos tipos de acceso (concretamente, de exact match y point query)
2012 LaBDa Universidad Carlos III Madrid

FFBBDD - 11

Tema 8C.2.3 C.2.3: : rboles R (R-trees)


Operaciones de Actualizacin
Insercin: En su MBB Si entra en varios, el menor Si no entra en ninguno, el que vaya a crecer menos con la nueva insercin Corolarios: Cualquier nodo intermedio puede ser actualizado al insertar (actualizar R1, R2...) Esas entradas intermedias se pueden solapar!
E3 E1 E7 E2 E9 E8

R1
E6

R2
E4 E11

E10

R3
E5

R R R
1 2

Raz

E5 E10 E11 E7 E9 E4 E8 E6
FFBBDD - 12

E1

E2

E3

2012 LaBDa Universidad Carlos III Madrid

Tema 8C.2.3 C.2.3: : rboles R (R-trees)


Operaciones de Actualizacin
Borrados: Condensacin del rbol: por efecto de borrados, la ocupacin de un nodo puede bajar del umbral establecido. En tal caso se eliminar ese nodo, reubicando las entradas que contena. Ajuste de MBBs: en ocasiones, al borrar un elemento, el MBB ascendiente puede reducirse sin dejar de contener el resto de entradas Modificaciones: Si no afecta al MBB ascendiente, se actualiza la entrada en su nodo En caso de afectarlo, lo mejor es eliminar la entrada y reinsertarla
2012 LaBDa Universidad Carlos III Madrid

FFBBDD - 13

Tema 8C.2.4 C.2.4: : rboles R (R-trees)


Variantes del rbolrbol-R
Variante del diseo de un nodo (variante de pgina): En todo nodo no hoja, se puede tener una entrada resto. Dicha entrada tendra la geometra definida por el MBB ascendiente menos las geometras definidas en el nodo. Por no ser una geometra explcita, no se almacenara en el nodo: slo se almacena su puntero interno (como en los B, el nodo tendra un puntero ms que entradas). Si es la raz, el resto es el dominio n-dimensional menos las geometras que contiene explcitamente. dominio

R R R
1 2 al nodo

al nodo

R1 R2 R3 RN = resto
FFBBDD - 14

al nodo al nodo

R1

R2

R3

resto

2012 LaBDa Universidad Carlos III Madrid

Tema 8C.2.4 C.2.4: : rboles R (R-trees)


Variantes del rbolrbol-R: variante de MBB
Variante de entrada: Todo MBB empieza en el origen (cota inf=(0,0,...0) Al insertar, se buscar la menor MBB que pueda contener la entrada Si desborda: - parte por la menor sub-regin (MBB) que contenga la mitad de los elementos
Candidatos: C1: (15,15) C2: (30,8) C3: (21,13)

E5 E4

R2

E1 E2 E8

R1

E3 E9 E10 E6 E7

E1 E2 E3 E4 E5 E6 E7 E8 E9
2012 LaBDa Universidad Carlos III Madrid

E10

Desbordamiento!!
FFBBDD - 15

Tema 8C.2.4 C.2.4: : rboles R (R-trees)


Variantes del rbolrbol-R: variante de MBB
R2
E4 E3 E9 E10 E6 E7 E1 E2 E8

R1
Regin R2: (0,0)*(15,15) Regin R1: (0,0)*(31.5,18) R2

E5

Me puedo ahorrar R1 en el antecesor (nodo no hoja)? Nueva Raz:

R2 R1

E9 E10 E4 E6 E5
2012 LaBDa Universidad Carlos III Madrid

E2 E3 E8 E7 E1
FFBBDD - 16

Tema 8C.2.4 C.2.4: : rboles R (R-trees)


Variantes del rbolrbol-R
rbol R empaquetado (Packed R-tree): particin ptima del universo y rbol R mnimo (ptimo). Precisa conocer los elementos a priori. rbol R esfrico (Sphere R-tree): esferas n-dimensionales en lugar de MBB rbol P (P-tree): utiliza poliedros (definidos o predefinidos) en lugar de MBB rbol R* (R* tree): aumenta la densidad y reduce la superposicin de MBB
- Forzar reinsercin: cuando un nodo desborda, en lugar de dividirlo se toma cierta cantidad de sus entradas (por poner algunos ejemplos: 1, 2, el 30%) y se reinsertan (escogindolas bien, a menudo se evita la particin del nodo). - Esa tcnica tambin se utiliza cuando se superponen dos MBB del mismo nodo, de modo que se minimiza la superposicin de intervalos en un nivel. - Al extender MBB, se procura evitar superposicin y reducir su permetro.

Resultado: rboles ms densos y aplastados, y bsquedas de camino nico.


2012 LaBDa Universidad Carlos III Madrid

FFBBDD - 17

Tema 8C.2.4 C.2.4: : rboles R* (R* R*-trees)


Forzando la ReRe-Insercin
R1 DESBORDA !!! Escogeremos una (o ms) entrada(s) para reinsertar 1.- Criterios de Seleccin: que pertenecen a otro rango que est ms alejada del cdg que reduce el MBB que reduce el MBB por la dimensin de intervalo mayor
Observacin: la reinsercin tambin es til para evitar solapamiento
E3 E1 E12

R1
E2 E7 E9 E8 E6

R2
E4 E11 E10

R3 2
E5

R R R
1 2

Raz

E5 E10 E11 E4 E6 E8 E7 E9
FFBBDD - 18

E1

E2

E3 E12

2012 LaBDa Universidad Carlos III Madrid

Tema 8C.2.5 C.2.5: : Consultas n-dim con R-trees


Ejemplos de Implementacin en (Spatial (Spatial)Oracle )Oracle
Window Query:
SELECT A.feature FROM TABLA A, VENTANAS B WHERE B.activa=S AND sdo_filter(A.shape, B.shape)=TRUE;

Nearest Neighbour-Query:
SELECT H.feature FROM HOSPITALES H, AMBULANCIAS A WHERE A.matrcula=0000AAA AND sdo_nn(A.shape, H.shape,NULL)=TRUE;

Spatial Join:
SELECT C.nombre, R.nombre FROM TABLE(SDO_JOIN(CIUDADES,SHAPE, RIOS,SHAPE,mask=FILTER) J, CIUDADES C, RIOS R WHERE J.rowid1=C.rowid AND J.rowid2=R.rowid;
2012 LaBDa Universidad Carlos III Madrid

FFBBDD - 19

Tema 8C.3 C.3: : Dispersin Multiclave


Estas organizaciones usan cada clave de modo independiente, creando de esta forma una rejilla n-dimensional sobre los registros para su dispersin segn n funciones de transformacin sobre n subespacios. Es necesario escoger bien los subespacios: las claves ms frecuentemente utilizadas en las bsquedas han de tener ms espacio para dispersarse, mientras que a las claves infrecuentes puede asignrsele un subespacio menor (optimizando as el tiempo medio de acceso):
CD1 = primer apellido, CD2 = segundo apellido Bsquedas con 1 clave: 90% CD1 y 10% CD2 - n=16 n1 = 8 y n2 = 8 con este reparto, buscar con 1 clave supone 256 bq relevantes

Ejemplo:

- n=16

n1 = 10 y n2 = 6 as buscar con 1 clave son 260.9+ 2100.1 = 160 bq relevantes


n = ni
FFBBDD - 20

Nota: n es el nmero de bits en la direccin binaria, tal que N = 2n y


2012 LaBDa Universidad Carlos III Madrid

10

Tema 8C.3 C.3: : Dispersin Multiclave


Clculo de Subespacios
- Si uno de los subespacios tiene N2= 0, equivale a un direccionamiento normal.
(buscar por N1 sera 1 acceso y por N2 sera una bsqueda serial en todo N) - El reparto ptimo depende del espacio completo (n) y de los porcentajes de uso (pi)

* Sobre dos subespacios:

Nmero de bloques relevantes (con % de bsqueda 90/10)


8000 7000 6000 5000 4000 3000 2000 1000 0 16/0 15/1 14/2 13/3 12/4 11/5 10/6 9/7 8/8 7/9 6/10 5/11 4/12 3/13 2/14 1/15 0/16

ni =

pi log2 100-pi

+n

Tamao de los subespacios N1/N2 (bits de direccin), sobre un total de N=16

* Sobre ms subespacios:
hallar el primero (ni), para el siguiente, actualcese la frmula, sustituyendo: 100 (100-pi) ,, n (n-ni) y sucesivamente, se emplea (100-pi) y (n-ni) para los i subespacios ya calculados
2012 LaBDa Universidad Carlos III Madrid

FFBBDD - 21

Tema 8C.3 C.3: : Disp. Virtual Multiclave


(apoyada en Directorios)
La dispersin multiclave reparte la velocidad del acceso direccionado entre varias claves. Hay que utilizarlo cuando la bsqueda por todas las claves (clave global) es probable, y tambin lo es cada clave individual.
- No deben incluirse claves poco utilizadas, porque aumenta el tamao del rea de datos y el n de bloques relvs. en cada bsqueda que no incluya esa clave. - El aumento excesivo del rea de datos tiene como consecuencias que aparezcan bloques vacos, que bajan la densidad y malgastan accesos.

Para mejorar estas organizaciones se suele incorporar una estructura auxiliar (directorio), de tamao reducido (bloqueada en Mintermedia) que seale los cubos vacos (para no acceder a ellos), incluso que establezca una nueva direccin real para los ocupados (y no almacenar los vacos).
2012 LaBDa Universidad Carlos III Madrid

FFBBDD - 22

11

Tema 8C.3 C.3: : Disp. Virtual Multiclave


(apoyada en Directorios)
Tipos de directorio (dispersin virtual): I. Directorio de ocurrencias: por cada cubo, un bit Ese bit indica si el cubo est vaco (0) o contiene algo (1). Se ahorran accesos al descontar los bloques relevantes vacos. Directorio virtual: por cada cubo, un puntero Utiliza direcciones virtuales para compactar el fichero de datos.

II.

La siguiente optimizacin consistira en adaptar el rea de datos a las necesidades puntuales del fichero disp. virtual extensible multiclave En 1982, Tamminen propone esa disp. virtual extensible multiclave (EXCELL) En (1981-1984) Nievergelt, Hinterberger y Sevcik proponen los ficheros rejilla como un cuadriculado d-dimensional del universo.
2012 LaBDa Universidad Carlos III Madrid

FFBBDD - 23

Tema 8C.3 C.3: : Dispersiones Multiclave


(Extensibles y Dinmicas)
Para describir la dispersin extensible multiclave (as como la dinmica), hay que considerar extensiones para cada dimensin: cada componente de la direccin tendr ms bits de los usados inicialmente - Se ha de disponer de funciones de dispersin de muchos bits (mi) - Inicialmente, slo se usan k bits (k<m), que definen k1 k2... kd clusters (cada cluster pertenece a una dimensin, y pueden repetirse...)

100111010111010110100
nombre apellido1 nombre apellido2 apellido1

- Cuando un cluster se satura, se divide aadiendo l bits de la dimensin j (la que mejor disperse), tal que kj+l < m1 (en general, supondremos l=1)
- Esos bits se aaden en la parte alta (a la izquierda) de la direccin virtual (de modo que no hay que rehacer el directorio, solo replicarlo 2l veces)
2012 LaBDa Universidad Carlos III Madrid

FFBBDD - 24

12

Tema 8C.3 C.3: : Dispersiones Multiclave


(Extensibles y Dinmicas)
- Es deseable que el almacenamiento de los bloques sea lineal - Para poder mantener una correspondencia entre direcciones y bloques, se har uso de un directorio multidimensional, que ir asignando bloques vacos a cada entrada del directorio (d-dimensional) que entre en uso. - La localizacin en el directorio n-dimensional sigue la concatenacin: la entrada (v1, v2, ..., vd) se halla en la posicin v1+2k1(v2+2k2(...(vd)...)) Ejemplo:
nombre x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 apellido1 y9 y8 y7 y6 y5 y4 y3 y2 y1 y0 apellido2 z9 z8 z7 z6 z5 z4 z3 z2 z1 z0 Fulano Zutnez Doe, nombre 0 1 0 1 0 1 0 1 1 apellido1 1 0 1 1 1 1 0 1 0 0 apellido2 0 0 0 1 0 1 1 0 1 0
101011 = 43 110100 = 52 1010 = 10 10 = 2 011 = 3

100111010111010110100
nombre apellido1 nombre apellido2 apellido1

x7 x6 y8 y7 y6 x5 x4 x3 x2 x1 x0 z3 z2 z1 z0 y5 y4 y3 y2 y1 y0
220 219 218 217 216 215 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20

Posicin: 52+2610+21043+2163+2192 = 1158836


FFBBDD - 25

2012 LaBDa Universidad Carlos III Madrid

Tema 8C.3 C.3: : Organizaciones Multiclave


Algunos Ejemplos:
El directorio d-dimensional forma un cuadriculado del universo (rejilla) Es necesario almacenar la forma de la rejilla (escala de la rejilla) El fichero as organizado es un

Fichero Rejilla

(Grid File)

Tambin es posible hacer una rejilla regular:

EXCELL (Extendible CELL)

Esto evitara su almacenamiento (y mantenerla en memoria principal)


Pero si desborda y se escinde un cluster, el tamao del directorio aumenta 2l veces. El rea de datos slo aumenta lo necesario porque slo se escinde el cluster necesario, dejando el resto de entradas del directorio apuntando a los mismos clusters.

Si tomamos en una rejilla formada por intervalos no rectangulares y anidados almacenada en un rbol balanceado, tenemos un Fichero BANG
(Balanced and Nested Grid)
FFBBDD - 26

2012 LaBDa Universidad Carlos III Madrid

13

Tema 8C.4 C.4: : Esquemas de bits Puntero Implcito


Las entradas por esquemas de bits suelen incluir un puntero (relativo) que apunta al registro al que hace referencia el registro. El puntero suele ser muy grande (partes alta y baja, => 4B) con respecto al esquema de bits (hasta 16 valores, slo un par de bytes) Si se pudiera calcular la posicin del registro a partir de la posicin del esquema de bits (puntero implcito), se podra ahorrar el puntero. Para ello, es necesario que la organizacin base est formada por cubos de tamao fijo (o, al menos, acotados superiormente). As, cada registro (ocurra o no) tendr su esquema de bits reservado Ejemplo: sea un cubo con Tc mx =10, y un esquema de 1 B los 10 primeros bytes corresponden respectivamente a los 10 registros del primer cubo, los diez siguientes al segundo cubo, y as.
FFBBDD - 27

2012 LaBDa Universidad Carlos III Madrid

Tema 8C.4 C.4: : Esquemas de bits Puntero Implcito


El puntero implcito es posible porque los esquemas de bits son fijos (siempre tienen el mismo tamao) Como habr esquemas de bits sin usar (correspondientes a registros que no ocurren, porque el cubo no est lleno), es necesario aadir un bit al esquema (cuyo significado es que el esquema est en uso). Clculo del puntero: Si ordenamos los cubos de 0..N-1 y los bytes de 0 en adelante, y con un tamao de esquema Tesq, el ordinal de un esquema que fsicamente empieza en el byte b ser ord = b / Tesq, y el puntero se calcula como: parte alta = ord DIV Tc mx ,, parte baja = ord MOD Tc mx La operacin inversa permite recuperar con acceso directo el esquema correspondiente a cierto puntero, por lo que no es necesario recorrer serialmente este ndice para hacer la proyeccin de un acceso invertido.
FFBBDD - 28

2012 LaBDa Universidad Carlos III Madrid

14

Tema 8C.4 C.4: : Esquemas de bits Puntero Implcito


Ventajas: menor tamao de ndice, que implica menor coste para procesarlo,y mayor tasa de acierto en memoria intermedia (que, asu vez, implica un coste efectivo an menor). adems, utilizado en la proyeccin de un acceso invertido, puede ahorrar accesos (no siempre es necesario recorrerlo a la totalidad)

Inconvenientes: es necesario que la organizacin base est formada por cubos de tamao fijo (acotados superiormente), lo que puede conllevar desperdicio de espacio, menor densidad, y mayor volumen. Ejemplo: para cierta clave A definida sobre un dominio de 5 valores, con puntero relativo de tamao 4 B en un soporte de Tbq=2 KB, y un fichero de 104 registros en cubos con Tc mx=10 y N=1600 Esquema de bits 104 * (1+4) bytes 25 bloques Esq. bits puntero implcito 1600*10* 1 byte 8 bloques
FFBBDD - 29

2012 LaBDa Universidad Carlos III Madrid

Tema 8C.5 C.5: : Comparativa (I)


Listas Invertidas vs. Bitmaps
El acceso por esquema de bits es muy eficiente las entradas tienen tamao fijo operaciones de actualizacin son inmediatas (muy eficientes) comprobacin de la entrada por aplicacin de mscaras (eficiente) admite multivaluacin e ndices multiclave Pero queda limitado a: claves cuyo dominio (posibles valores) sea discreto y reducido
(para evitar esquemas de bits demasiado largos)

condiciones sencillas (igualdad/desigualdad)


ficheros de volumen medio-bajo (no demasiados registros) (procesa todas las entradas serialmente!)
2012 LaBDa Universidad Carlos III Madrid

FFBBDD - 30

15

Tema 8C.5 C.5: : Comparativa (II)


Listas Invertidas vs. Bitmaps
El acceso por listas invertidas es complementario: es ms eficiente cuanto mayor es el dominio (nmero de posibles valores)
a ms valores ms listas cada lista tendr menos punteros (listas invertidas ms pequeas). al ser ms pequeas, son ms manejables
(por ejemplo, si se implementan en rbol B, mayor ser el orden del rbol)

Adems:
buen comportamiento con volmenes grandes (nmero elevado de registros)
admite multivaluacin, pero no multiclave (a menos que se fusione con R-tree)

las condiciones que pueden aplicarse son algo ms complejas (p.e., rangos)

Sin embargo, el mantenimiento y manejo son muy costosos:


actualizaciones costosas (desplazamiento de entradas, ...) no consecutividad manejo de mucha informacin (en Mppal y secundaria) algunas condiciones de seleccin siguen siendo muy costosas.
2012 LaBDa Universidad Carlos III Madrid

FFBBDD - 31

Tema 8C.6 8C.6: : Evolucin de los Mtodos


de Acceso Multidimensional
[Gaede and Gnther, 98]

2012 LaBDa Universidad Carlos III Madrid

FFBBDD - 32

16

You might also like