lectura complementaria tema 8.pdf

16
1 © 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 1 Tema 8C Tema 8C: Lecturas Complementarias : Lecturas Complementarias Acceso Acceso Multi Multi-Clave Clave Introducción Consultas n-dimensionales Organizaciones Indizadas para acceso multiclave Árboles R Organizaciones Direccionadas Multiclave Estructuras Avanzadas para el Acceso Invertido Esquemas de Bits de puntero implícito Comparativa de estructuras para el acceso invertido © 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 2 El acceso multiclave (o n-dimensional) es de gran interés 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 después su coste en las diferentes estructuras físicas específicas. Después de esta caracterización, estas diapositivas explican la más importante de las estructuras auxiliares de este tipo (árbol R) y profundizan lo visto en clase sobre las dispersiones multiclave. También se incluye una breve descripción del esquema de bits de puntero implícito, como estructura avanzada para el acceso invertido. Finalmente, se ofrece una comparativa de las estructuras auxiliares en su aplicación sobre el acceso invertido. Tema 8C Tema 8C: Introducción : Introducción

Upload: rubenciomahou-andbrugals

Post on 22-Oct-2015

60 views

Category:

Documents


2 download

TRANSCRIPT

1

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 1

Tema 8CTema 8C: Lecturas Complementarias: Lecturas ComplementariasAcceso Acceso MultiMulti--ClaveClave

• Introducción

• Consultas n-dimensionales

• Organizaciones Indizadas para acceso multiclave

• Árboles R

• Organizaciones Direccionadas Multiclave

• Estructuras Avanzadas para el Acceso Invertido• Esquemas de Bits de puntero implícito • Comparativa de estructuras para el acceso invertido

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 2

• El acceso multiclave (o n-dimensional) es de gran interés 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 después su coste en las diferentes estructuras físicas específicas.

• Después de esta caracterización, estas diapositivas explican la más importante de las estructuras auxiliares de este tipo (árbol R) y profundizan lo visto en clase sobre las dispersiones multiclave.

• También se incluye una breve descripción del esquema de bits de puntero implícito, como estructura avanzada para el acceso invertido.

• Finalmente, se ofrece una comparativa de las estructuras auxiliares en su aplicación sobre el acceso invertido.

Tema 8CTema 8C: Introducción: Introducción

2

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 3

Tema 8C.1Tema 8C.1: : Consultas Consultas nn--dimensionalesdimensionales

R2

R1

E1 E6E2

E5

E3

E4 E7

E8

E9E10

Tipos de Consulta:

• Exact Match Query (EMQ)• Point Query (PQ)• Window Query (WQ)• Intersection Query (IQ)• Enclosure Query (EQ)

• Containment Query (CQ)• Adjacency Query (AQ)

• Nearest-Neighbor Query (NNQ)• Spatial Join (SJ)

123456789

o1

o2Q1

Q2

Q3,Q6

Q4

Q5

Q7 Q8

• IQ(Q4) = {E7,E9}

• AQ(Q6) = {E10}

• WQ(Q3) = {E2,E5,E10}• PQ(Q2) = {E4}• EMQ(Q1) = {E3}

• CQ(Q7) = {E4,E6}

• EQ(Q5) = {E10}

• SJ({Ei}·{oi}, ‘distancia(Qi,Ei) < 3’) = {(o1,E1),(o1,E4),(o2,E5)}

Ejemplos:

• NNQ(Q8) = {E5,E10}

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 4

Tema 8C.1Tema 8C.1: : Consultas Consultas nn--dimensionalesdimensionales

Ejemplos PrácticosEjemplos Prácticos

¿Qué tipo de consulta responde a las siguientes preguntas?

1. Coche aparcado en la plaza 555

2. ¿En qué edificio está el vigilante?

3. Jugadores en el campo de fútbol (en un intervalo 2D y de tiempo)

4. Carreteras que pasan por Leganés

5. Ámbitos geográficos del Bierzo

6. Provincias limítrofes con Segovia

7. Contar los coches de policía que se encuentran en la zona centro

8. Ambulancia más cercana al lugar de un accidente

9. Ciudades atravesadas por ríos

3

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 5

Uso: especialmente útiles para el manejo de información espacio/temporal

Preliminar: todo dominio presenta una relación de orden

Entradas: están todas en los nodos hoja (resto de nodos, para localizar hojas)

• HOJAS: posición n-dimensional y su correspondiente puntero externo(valor1, valor2, ..., valorN, puntero_externo)

• RESTO: geometría n-dimensional y su correspondiente puntero interno(rango1, rango2, ..., rangoN, puntero_interno)

· · · ·G1 G3 ...

Nodo No Hoja

(al fichero de datos)

· · · ·E1 E2 E3 ...

Entrada 2

valor1valor2

…valorN

Encadenamiento

Tema 8Tema 8C.2C.2: : Árboles Árboles RR ((RR--treestrees))Aspecto de los Aspecto de los nodosnodos

Nodo Hoja

E2

Geometría 2

inf_1inf_2…

inf_N

sup_1sup_2…

sup_N

(a otro nodo del árbol)

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 6

• El intervalo mínimo multidimensional (Minimun Bounding Box - MBB)

consiste en una geometría regular definida por dos puntos (fig. C): inferior (en todas sus dimensiones) y superior (en todas sus dimensiones).

• Si la geometría es muy compleja, ocupará más espacio (en la fig.B, implica

almacenar ¡9 puntos!) � conviene utilizar Geometrías Regulares

A B C

• Todos los punteros externos están en nodos hoja, con sus entradas

Tema 8Tema 8C.2C.2: : Árboles Árboles RR ((RR--treestrees))Almacenando GeometríasAlmacenando Geometrías

• Las entradas pueden ser puntos, ¡pero también geometrías! (fig. A)

La hoja no ocupa un punto, sino un área (definida por una geometría)

4

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 7

Raíz

E4 E5 E6E1 E3E2

Tema 8Tema 8C.2.1C.2.1: : Árboles Árboles RR ((RR--treestrees))Almacenando EntradasAlmacenando Entradas

E1 E2

E4

E5E6

E3R1 R2

R1 R2· ·

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 8

Tema 8Tema 8C.2.1C.2.1: : Árboles Árboles RR ((RR--treestrees))Políticas de Políticas de ParticiónPartición ((Splitting PoliciesSplitting Policies) I) I

• Partición: a partir de un área Ri que contiene un conjunto Si de elementos (geometrías o puntos n-dimensionales) obtener otras dos (o más) á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 serán las MBB que contengan los subconjuntos Sj y Sk

� La política de partición deberá decidir el reparto de todos los elementos de Si en los dos subconjuntos, tal que Sj ∪ Sk ≡ Si

• La política de partición será la que decida el reparto:

• en cuantos subconjuntos (generalmente dos);

• si esos subconjuntos están o no equilibrados (reparto de carga);

• que criterio se escoge para dividir un conjunto en varios (criterio)

5

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 9

Tema 8Tema 8C.2.1C.2.1: : Árboles Árboles RR ((RR--treestrees))Políticas de Políticas de ParticiónPartición ((Splitting PoliciesSplitting Policies) y II) y II

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 distanciasde cada elemento al centro de gravedad de su conjunto.

� MBBs mínimos: se procura minimizar el producto de los intervalos de las MBB (su área, su volumen,...)

� MBBs regulares: se procurará partir por la dimensión cuyo rango en Ri sea (relativamente) mayor

• Reparto: aunque no es obligatorio, se tenderá en general al equilibrio de carga entre ambos subconjuntos

� páginas descendientes llenas al 50%

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 10

Tema 8Tema 8C.2.2C.2.2: : Árboles Árboles RR ((RR--treestrees))Propiedades (I)Propiedades (I)

Ocupación Máxima y Mínima:

• Cada nodo tiene un máximo de entradas (k) y de descendientes (m)� se calculan por el tamaño de página, y de ellos se saca la ocupación mínima

• Todas las hojas (no raíz) tienen un mínimo de entradas (kmin)

• La raíz (no hoja) tiene un mínimo de dos descendientes

• Los nodos internos tienen un mínimo de descendientes (mmin)

• Los nodos no hoja tienen tantas entradas como descendientes

• En general, m = k (aunque existe una variante con m = k + 1 )

· Cálculo del Orden (m): si el reparto es equilibrado en dos descendientes...

m · Tptro_interno + k · Tentrada < Tnodo

Tentrada = 2·(Σ Tclave i ) + Tptro_externotal que...

2k+1 mmín = kmín =

y además...

6

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 11

Tema 8Tema 8C.2.2C.2.2: : Árboles Árboles RR ((RR--treestrees))Propiedades (II)Propiedades (II)

Profundidad del árbol:

• El árbol R es balanceado en altura (crece de abajo-arriba)• Se puede acotar superiormente el número de hojas:

Nº máximo de hojas = nº de entradas / ocupación mínima �

• También se puede acotar superiormente el número de ascendientesen el nivel n-1 (la fórmula para hallar esa cota es la misma)

• Aplicando iterativamente esa fórmula hasta llegar a la raíz (nivel cuyonúmero de nodos sea 1) se podrá calcular la profundidad del árbol (n)

• La profundidad del árbol determina el número mínimo de accesos.

• Si los intervalos no se solapan, también determina el coste máximo de algunos tipos de acceso (concretamente, de exact match y point query)

2kmin+1 nhojas =

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 12

R1

Raíz

E6E1 E3E2

Inserción:

• En su MBB • Si entra en varios, el menor• Si no entra en ninguno, el que vaya a crecer menos con la nueva inserción…

· ·

Tema 8Tema 8C.2.3C.2.3: : Árboles Árboles RR ((RR--treestrees))Operaciones de ActualizaciónOperaciones de Actualización

E1 E2 E4

E5E6

E3

R1 R2

E4

E5

E7 E8

Corolarios:

• Cualquier nodo intermediopuede ser actualizado al insertar (actualizar R1, R2...)

• Esas entradas intermedias ¡se pueden solapar!

E9

E9

E10

R1 R2

E11

R2

R2 R3·E11

E10R3

E8

E7

7

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 13

Tema 8Tema 8C.2.3C.2.3: : Árboles Árboles RR ((RR--treestrees))Operaciones de ActualizaciónOperaciones de Actualización

Borrados:

• Condensación del árbol: por efecto de borrados, la ocupación de un

nodo puede bajar del umbral establecido. En tal caso se eliminará ese nodo, reubicando las entradas que contenía.

• Ajuste de MBB’s: 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 - 14

Tema 8Tema 8C.2.4C.2.4: : Árboles Árboles RR ((RR--treestrees))Variantes del ÁrbolVariantes del Árbol--RR

Variante del diseño de un nodo (variante de página):

• En todo nodo no hoja, se puede tener una entrada ‘resto’.

• Dicha entrada tendría la geometría definida por el MBB ascendiente

menos las geometrías definidas en el nodo. Por no ser una geometría

explícita, no se almacenaría en el nodo: sólo se almacena su puntero

interno (como en los B, el nodo tendría un puntero más que entradas).

• Si es la raíz, el resto es el dominio n-dimensional menos las geometrías que contiene explícitamente.

RN = resto

R3R2

R1

dominio

· · · ·R1 R2 R3

al nodo al nodo al nodo al nodoR1 R2 R3 resto

8

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 15

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 entradaSi desborda:

- parte por la menor sub-región (MBB) que contenga la mitad de los elementos

Tema 8Tema 8C.2.4C.2.4: : Árboles Árboles RR ((RR--treestrees))Variantes del ÁrbolVariantes del Árbol--RR: variante de MBB: variante de MBB

E5

R2

E4

E9 E6

E8

E7

E3

E2

E1

E10

Candidatos:

C1: (15,15)

C2: (30,8)

C3: (21,13)

E1 E3E2 E10E4 E6E5 E7 E9E8¡¡Desbordamiento!!

R1

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 16

E9 E4E10 E6 E5 E2 E8E3 E7 E1

R2 R1

E5

E4

E9 E6

E8

E7

E3

E2

E1

E10

R1R2

R2

Nueva Raíz:

¿Me puedo ahorrar R1 en el antecesor (nodo no hoja)?

Región R2:

(0,0)*(15,15)

Región R1:

(0,0)*(31.5,18) – R2

Tema 8Tema 8C.2.4C.2.4: : Árboles Árboles RR ((RR--treestrees))Variantes del ÁrbolVariantes del Árbol--RR: variante de MBB: variante de MBB

9

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 17

Tema 8Tema 8C.2.4C.2.4: : Árboles Árboles RR ((RR--treestrees))Variantes del ÁrbolVariantes del Árbol--RR

• Árbol R empaquetado (Packed R-tree): partición óptima del universo y árbol R mínimo (óptimo). Precisa conocer los elementos a priori.

• Árbol R esférico (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 superposición de MBB - Forzar reinserción: 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 (escogiéndolas bien, a menudo se evita la partición del nodo).

- Esa técnica también se utiliza cuando se superponen dos MBB del mismo nodo, de modo que se minimiza la superposición de intervalos en un nivel.

- Al extender MBB, se procura evitar superposición y reducir su perímetro.

Resultado: árboles más densos y aplastados, y búsquedas de camino único.

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 18

R2

R1

Raíz

E6E1 E3E2

¡¡¡ R1 DESBORDA !!!

Escogeremos una (o más) entrada(s) para reinsertar

1.- Criterios de Selección:

• que pertenecen a otro rango• que está más alejada del cdg• que reduce el MBB• que reduce el MBB por la dimensión de intervalo mayor

· ·

Tema 8Tema 8C.2.4C.2.4: : Árboles Árboles R*R* ((R*R*--treestrees))Forzando la ReForzando la Re--InserciónInserción

E1E2

E6

R1 R2

E4

E5

E7

E8

Observación:

• la reinserción también esútil para evitar solapamiento

E9 E10

E10

R1 R2

E11

R2 R3

R2 R3·E11

E12

E7 E9E12

E4

E8

E3

E5

10

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 19

Tema 8Tema 8C.2.5C.2.5: : ConsultasConsultas nn--dimdim concon RR--treestreesEjemplos de Implementación en (Ejemplos de Implementación en (SpatialSpatial)Oracle)Oracle

SELECT A.feature FROM TABLA A, VENTANAS BWHERE B.activa=‘S’ AND

sdo_filter(A.shape, B.shape)=‘TRUE’;

Window Query:

Nearest Neighbour-Query:

Spatial Join:

SELECT H.feature FROM HOSPITALES H, AMBULANCIAS AWHERE A.matrícula=‘0000AAA’ AND

sdo_nn(A.shape, H.shape,NULL)=‘TRUE’;

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 - 20

• Estas organizaciones usan cada clave de modo independiente, creando de esta forma una ‘rejilla n-dimensional’ sobre los registros para su dispersión según n funciones de transformación sobre n subespacios.

• Es necesario escoger bien los subespacios: las claves más frecuentemente utilizadas en las búsquedas han de tener más espacio para dispersarse, mientras que a las claves infrecuentes puede asignársele un subespaciomenor (optimizando así el tiempo medio de acceso):

Ejemplo: CD1 = primer apellido, CD2 = segundo apellido

Búsquedas 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

- n=16 � n1 = 10 y n2 = 6 así buscar con 1 clave son 26·0.9+ 210·0.1 = 160 bq relevantes

Nota: n es el número de bits en la dirección binaria, tal que N = 2n y n = Σni

Tema 8Tema 8C.3C.3: : Dispersión Dispersión MulticlaveMulticlave

11

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 21

- Si uno de los subespacios tiene N2= 0, equivale a un direccionamiento normal.(buscar por N1 sería 1 acceso y por N2 sería una búsqueda serial en todo N)

- El reparto óptimo depende del espacio completo (n) y de los porcentajes de uso (pi)

0

1000

2000

3000

4000

5000

6000

7000

8000

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

Tamaño de los subespacios N1/N2 (bits de dirección), sobre un total de N=16

Número de bloques relevantes (con % de búsqueda 90/10)

ni =log2 + n100-pi

pi

2

* Sobre dos subespacios:

Tema 8Tema 8C.3C.3: : Dispersión Dispersión MulticlaveMulticlaveCálculo de Cálculo de SubespaciosSubespacios

* Sobre más subespacios:

• hallar el primero (ni), • para el siguiente, actualícese la fórmula, 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 - 22

Tema 8Tema 8C.3C.3: : Disp. Virtual Disp. Virtual MulticlaveMulticlave(apoyada en Directorios)(apoyada en Directorios)

- No deben incluirse claves poco utilizadas, porque aumenta el tamaño del áreade datos y el nº de bloques relvs. en cada búsqueda que no incluya esa clave.

- El aumento excesivo del área de datos tiene como consecuencias que aparezcan bloques vacíos, que bajan la densidad y malgastan accesos.

La dispersión multiclave ‘reparte’ la velocidad del acceso direccionado entre varias claves. Hay que utilizarlo cuando la búsqueda por todas las claves (clave global) es probable, y también lo es cada clave individual.

• Para mejorar estas organizaciones se suele incorporar una estructura auxiliar (directorio), de tamaño reducido (bloqueada en Mintermedia) que señale los cubos vacíos (para no acceder a ellos), incluso que establezca una nueva dirección real para los ocupados (y no almacenar los vacíos).

12

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 23

Tipos de directorio (dispersión virtual):

I. Directorio de ocurrencias: por cada cubo, un bit

Ese bit indica si el cubo está vacío (0) o contiene algo (1). Se ahorran accesos al descontar los bloques relevantes vacíos.

II. Directorio virtual: por cada cubo, un puntero

Utiliza direcciones virtuales para compactar el fichero de datos.

La siguiente optimización consistiría en adaptar el área de datos a lasnecesidades 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 rejillacomo un ‘cuadriculado’ d-dimensional del universo.

Tema 8Tema 8C.3C.3: : Disp. Virtual Disp. Virtual MulticlaveMulticlave(apoyada en Directorios)(apoyada en Directorios)

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 24

Tema 8Tema 8C.3C.3: Dispersiones : Dispersiones MulticlaveMulticlave(Extensibles y Dinámicas)(Extensibles y Dinámicas)

• Para describir la dispersión extensible multiclave (así como la dinámica), hay que considerar extensiones para cada dimensión: cada componente de la dirección tendrá más bits de los usados inicialmente

- Se ha de disponer de funciones de dispersión de muchos bits (mi)

- Inicialmente, sólo se usan k bits (k<m), que definen k1· k2·...· kd clusters(cada cluster pertenece a una dimensión, y pueden repetirse...)

- Cuando un cluster se satura, se divide añadiendo l bits de la dimensión j (la que mejor disperse), tal que kj+l < m1 (en general, supondremos l=1)

- Esos bits se añaden en la parte alta (a la izquierda) de la dirección virtual(de modo que no hay que rehacer el directorio, solo replicarlo 2l veces)

100111010111010110100

nombre apellido1 nombre apellido2 apellido1

13

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 25

- 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 vacíos a cada entrada del directorio (d-dimensional) que entre en uso.

- La localización en el directorio n-dimensional sigue la concatenación:la entrada (v1, v2, ..., vd) se halla en la posición v1+2k1·(v2+2k2·(...·(vd)...))

Ejemplo:

100111010111010110100nombre apellido1 nombre apellido2 apellido1

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

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

Fulano Zutánez Doe,nombre ≡ 0 1 0 1 0 1 0 1 1apellido1 ≡ 1 0 1 1 1 1 0 1 0 0apellido2 ≡ 0 0 0 1 0 1 1 0 1 0

101011 = 43 10 = 2110100 = 52 011 = 31010 = 10

Posición:52+26·10+210·43+216·3+219·2 = 1158836

Tema 8Tema 8C.3C.3: Dispersiones : Dispersiones MulticlaveMulticlave(Extensibles y Dinámicas)(Extensibles y Dinámicas)

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 26

• 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

• También es posible hacer una rejilla regular:

• Esto evitaría su almacenamiento (y mantenerla en memoria principal)

• Pero si desborda y se escinde un cluster, el tamaño del directorio aumenta 2l veces.El área de datos sólo aumenta lo necesario porque sólo 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

EXCELL EXCELL (Extendible CELL)(Extendible CELL)

Fichero Rejilla Fichero Rejilla (Grid File)(Grid File)

Fichero BANG Fichero BANG (Balanced and Nested Grid)(Balanced and Nested Grid)

Tema 8Tema 8C.3C.3: : Organizaciones Organizaciones MulticlaveMulticlaveAlgunos Ejemplos:Algunos Ejemplos:

14

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 27

• 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, sólo un par de bytes)

• Si se pudiera calcular la posición del registro a partir de la posición del esquema de bits (puntero implícito), se podría ahorrar el puntero.

• Para ello, es necesario que la organización base esté formada por cubos de tamaño fijo (o, al menos, acotados superiormente).

• Así, cada registro (ocurra o no) tendrá su esquema de bits reservado

• Ejemplo: sea un cubo con Tc máx =10, y un esquema de 1 Blos 10 primeros bytes corresponden respectivamente a los 10 registros del primer cubo, los diez siguientes al segundo cubo, y así.

Tema 8Tema 8C.4C.4: : Esquemas de bitsEsquemas de bitsPuntero ImplícitoPuntero Implícito

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 28

• El puntero implícito es posible porque los esquemas de bits son fijos (siempre tienen el mismo tamaño)

• Como habrá esquemas de bits sin usar (correspondientes a registros que no ocurren, porque el cubo no está lleno), es necesario añadir un bit al esquema (cuyo significado es que el esquema ‘está en uso’).

• Cálculo del puntero:Si ordenamos los cubos de 0..N-1 y los bytes de 0 en adelante, y con un tamaño de esquema Tesq, el ordinal de un esquema que físicamente empieza en el byte b será ord = b / Tesq, y el puntero se calcula como:

parte alta = ord DIV Tc máx ,, parte baja = ord MOD Tc máx

• La operación 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 proyección de un acceso invertido.

Tema 8Tema 8C.4C.4: : Esquemas de bitsEsquemas de bitsPuntero ImplícitoPuntero Implícito

15

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 29

• Ventajas: menor tamaño de índice, que implica menor coste para procesarlo,y mayor tasa de acierto en memoria intermedia (que, asu vez, implica un coste efectivo aún menor).

• además, utilizado en la proyección de un acceso invertido, puede ahorrar accesos (no siempre es necesario recorrerlo a la totalidad)

• Inconvenientes: es necesario que la organización base esté formada por cubos de tamaño 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 tamaño 4 B en un soporte de Tbq=2 KB, y un fichero de 104 registros en cubos con Tc máx=10 y N=1600

• Esquema de bits � 104 * (1+4) bytes � 25 bloques• Esq. bits puntero implícito � 1600*10* 1 byte � 8 bloques

Tema 8Tema 8C.4C.4: : Esquemas de bitsEsquemas de bitsPuntero ImplícitoPuntero Implícito

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 30

• El acceso por esquema de bits es muy eficiente

• las entradas tienen tamaño fijo

• operaciones de actualización son inmediatas (muy eficientes)

• comprobación de la entrada por aplicación de máscaras (eficiente)

• admite multivaluación 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!)

Tema 8Tema 8C.5C.5: : Comparativa (I)Comparativa (I)Listas Invertidas vs. Listas Invertidas vs. BitmapsBitmaps

16

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 31

• El acceso por listas invertidas es complementario:• es más eficiente cuanto mayor es el dominio (número de posibles valores)

� a más valores más listas� cada lista tendrá menos punteros (listas invertidas más pequeñas). � al ser más pequeñas, son más manejables

(por ejemplo, si se implementan en árbol B, mayor será el orden del árbol)

•Además:• buen comportamiento con volúmenes grandes (número elevado de registros)• admite multivaluación, pero no multiclave (a menos que se fusione con R-tree)

• las condiciones que pueden aplicarse son algo más complejas (p.e., rangos)

• Sin embargo, el mantenimiento y manejo son muy costosos:• actualizaciones costosas (desplazamiento de entradas, ...) � no consecutividad• manejo de mucha información (en Mppal y secundaria)• algunas condiciones de selección siguen siendo muy costosas.

Tema 8Tema 8C.5C.5: : Comparativa (II)Comparativa (II)Listas Invertidas vs. Listas Invertidas vs. BitmapsBitmaps

© 2012 LaBDa – Universidad Carlos III Madrid FFBBDD - 32

Tema Tema 8C.68C.6: : Evolución de los MétodosEvolución de los Métodosde Acceso Multidimensionalde Acceso Multidimensional

[Gaede and Günther, 98]