sistemas de información ii tema 8. estructuras de datos en ... · sistemas de información ii tema...
TRANSCRIPT
![Page 1: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/1.jpg)
1
Sistemas de Información II
Tema 8. Estructuras de datos en memoria secundaria
Carlos Castillo
UPF – 2008
Bibliografía:Elmasri y Navathe: “Fundamentos de Sistemas de Bases de
Datos”3ª edición, 2002 (Capítulo 6).
Garcia-Molina, Ullman y Widom: “Database systems: the complete book”. Prentice-Hall (Capítulos 12 y 13).
![Page 2: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/2.jpg)
2
Consulta
ÍndiceDatos
Respuesta
IndexaciónÍndice
Datos
![Page 3: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/3.jpg)
3
Indexación
Índice
Estructura que permite encontrar rápidamente un registro de datos
Requerimientos
Bajo sobrecosto (overhead) en espacio
Alta velocidad de búsqueda
[Opcional] Alta velocidad de inserción
[Opcional] Alta velocidad de borrado
![Page 4: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/4.jpg)
4
Índices en ficheros secuenciales
![Page 5: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/5.jpg)
5
Fichero secuencial
10 | Juan20 | Pedro
30 | Diego40 | Ana
50 | María60 | Iván
Bloques
Persona(idpersona int, nombre char(12))
Asumimos bloque es de tamaño 32 bytes(anormalmente pequeño)
![Page 6: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/6.jpg)
6
Índice denso
10 | Juan20 | Pedro
30 | Diego40 | Ana
50 | María60 | Iván
Todos los elementos están en el índice
10 B1R120 B1R230 B2R140 B2R250 B3R160 B3R2
ÍndiceDatos
![Page 7: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/7.jpg)
7
Otro ejemplo índice denso
0 1
0123456789012345678
JUANPEDRODIEGOTOMAS
0
4
9
14
Índice (4 ints)
Datos (19 bytes)
Veloz en la recuperaciónde registros por número
ej.: recuperar registro 2
![Page 8: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/8.jpg)
8
Índice disperso
10 | Juan20 | Pedro
30 | Diego40 | Ana
50 | María60 | Iván
Sólo algunos de los elementos están en el índice
Densidad del índice = claves indexadas / claves totales
10 B1R130 B2R150 B3R1
ÍndiceDatos
![Page 9: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/9.jpg)
9
Índice primario
Aaron, Ed B1Adams, John B2...Wright, Pam Bn
Bloque 1Aaron, Ed – Acosta, Marc
Bloque 2Adams, John – Akers, Jan
...
Bloque nWright, Pam – Zimmer, Byron
Índice sobre el atributo según el cual están ordenados los elementos, con el primerelemento de cada bloque
Es un índice disperso
![Page 10: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/10.jpg)
10
Cálculo costo accesosin índice
Datos
Número de registros r = 30,000 registros
Tamaño del bloque B = 1,024 bytes
Tamaño del registro R = 100 bytes
¿Costo búsqueda binaria?
Elementos por bloque = R/B ~ 10
Bloques totales = r / 10 = 3,000 bloques
Costo búsqueda binaria = log2(3000) ~ 12
![Page 11: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/11.jpg)
11
Cálculo costo accesocon índice
Datos
Número de registros r = 30,000 registros
Tamaño del bloque B = 1,024 bytes
Tamaño del registro R = 100 bytes
Tamaño de la clave V = 9 bytes
Tamaño del #bloque P = 6 bytes
¿Costo búsqueda binaria?
Tamaño del índice: (V+P)*3,000 = 45,000
Número de bloques: 45,000/1,024 = 44
Búsqueda binaria = log2(44) ~ 6 + 1 = 7
![Page 12: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/12.jpg)
12
Desventajas de este índice
Inserción y borrado son costosos
Solución:
Inserción: desbordamiento de bloques
Borrado: marca de “borrado” por elemento
![Page 13: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/13.jpg)
13
Índice de agrupación
Registros ordenados por un campo que no es único.
Ej.: cod_aero, num_vuelo
Cod_aero BloqueAAR B1LAN B1QAT B2VAR B3
Bloque 1AAR, 222AAR, 333LAN, 444
Bloque 2LAN, 555LAN, 666QAT, 777
Bloque 3VAR, 888
![Page 14: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/14.jpg)
14
Índice de agrupación con bloques separados
Se reserva espacio en cada bloque
Cod_aero BloqueAAR 1LAN 2QAT 4...
Bloque 1AAR, 222AAR, 333#next #
Bloque 2LAN, 444LAN, 555LAN, 666next 3
Bloque 3LAN,777##next #Bloque 4
QAT,888QAT,999#next #
![Page 15: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/15.jpg)
15
Índice secundario
Se construye sobre un campo que no es clave primaria
Es un índice denso (cada registro tiene un lugar en el índice)
![Page 16: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/16.jpg)
16
Índice secundario,sobre campo único
Ej.:
Pais( id_pais, nombre_pais )
nombre_pais id_bloqueArgentina 3Argelia 1Burundí 3Camerún 2Chad 2...
Bloque 11, Francia2, Argelia3, Suecia
Bloque 24, Camerún5, Chad6, México
Bloque 37, Burundí8, Noruega9, Argentina
![Page 17: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/17.jpg)
17
Índice secundario,sobre campo no-único
Ej.: Persona( dni, nombre, apellido )
nombre id_indiceAnna 1Joan 2Jordi 3Xavier 4
Bloque 1x, Anna, xx, Joan, x
Bloque 2x, Jordi, xx, Anna, x
Bloque 3x, Joan, xx, Jordi, x
1B1R1, B2R2
2B1R2, B3R1
3B3R2, B2R1
Se utiliza un nivel intermedio de indirección
![Page 18: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/18.jpg)
18
Índices multinivel
![Page 19: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/19.jpg)
19
B-Tree
“Block-tree”
[Bayer & McCreight, 1972]
Árbol balanceado
Típicamente (mínimo) 3 niveles
Variante B+ es más popular
![Page 20: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/20.jpg)
20
Nodo hoja (externo)
34 82
Al registro 34
Al registro 82
Al siguiente hermano
95
Al registro 95
![Page 21: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/21.jpg)
21
Nodo interno
21 52 75
x < 21
21 <= x < 52 52 <=x < 75
75 <=x
21 52
75
![Page 22: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/22.jpg)
22
B-Tree13
7 23 31 43
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
![Page 23: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/23.jpg)
23
Búsqueda en B-Tree
Buscar un elemento
Nodo hoja: búsqueda binaria entre los punteros
Nodo interno: búsqueda binaria y descender por el nodo apropiado
Búsqueda de elementos dentro de un rango (WHERE x > 10 AND x < 20)
![Page 24: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/24.jpg)
24
Reglas del B-Tree
La raíz tiene 1 elemento (2 punteros) al menos
Todas las hojas están al mismo nivel
Existe una ocupación mínima (no sólo máxima)
En nuestros ejemplos es 1
Existe una ocupación máxima (en este caso k=3)
![Page 25: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/25.jpg)
25
Insertar � 12� en B-Tree (trivial)13
7 23 31 43
2 3 5 7 11 12 13 17 19 23 29 31 37 41 43 47
![Page 26: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/26.jpg)
26
Insertar � 40� en B-Tree13
7 23 31 43
2 3 5 7 11 13 17 19 23 29
31 37
43 47
40 41
![Page 27: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/27.jpg)
27
Insertar � 40� en B-Tree (cont.)13 40
7 23 31
2 3 5 7 11 13 17 19 23 29
31 37
43 47
40 41
43
![Page 28: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/28.jpg)
28
Borrado de � 7� en B-Tree13
7 23 31 43
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
![Page 29: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/29.jpg)
29
Borrado de � 7� en B-Tree (cont.)13
5 23 31 43
2 3 5 11 13 17 19 23 29 31 37 41 43 47
![Page 30: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/30.jpg)
30
Borrado de � 11� en B-Tree13
5 23 31 43
2 3 5 11 13 17 19 23 29 31 37 41 43 47
![Page 31: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/31.jpg)
31
Borrado de � 11� en B-Tree (cont.)13
5 23 31 43
2 3 5 13 17 19 23 29 31 37 41 43 47
![Page 32: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/32.jpg)
32
Borrado de � 11� en B-Tree (cont.)13
13 23 31 43
2 3 5 13 17 19 23 29 31 37 41 43 47
![Page 33: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/33.jpg)
33
Borrado de � 11� en B-Tree (cont.)23
13 31 43
2 3 5 13 17 19 23 29 31 37 41 43 47
![Page 34: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/34.jpg)
34
Contenidos del B-Tree
Un B-Tree de orden k (datos por nodo) y altura h, ¿cuántos elementos puede tener?
![Page 35: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/35.jpg)
35
Hashing
![Page 36: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/36.jpg)
36
Función de Hashing
N claves en undominio de tamaño D
N << D
Típicamenteenteros entre0 y M
Con M > N
h(.)
![Page 37: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/37.jpg)
37
Función de hashing típica
int hashfunction(char *s) {
int i;
for( i=0; *s; s++ ) {
i = 131*i + *s;
}
return( i % M );
}
![Page 38: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/38.jpg)
38
Ejemplo simple
http://en.wikibooks.org/wiki/Data_Structures/Hash_Tables
![Page 39: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/39.jpg)
39
Colisión: solución conlista enlazada
http://en.wikibooks.org/wiki/Data_Structures/Hash_Tables
![Page 40: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/40.jpg)
40
Colisión: solución conlinear probing
http://en.wikibooks.org/wiki/Data_Structures/Hash_Tables
![Page 41: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/41.jpg)
41
Hashing en memoria secundaria
Se usa M pequeño (M < N)
Cada bucket de la tabla de hashing es uno de los M bloques
Se admiten k colisiones, k=registros por bloque
Los bloques pueden tener punteros a bloques para desbordamiento
Cuando se llena (M*k) puede ser muy lento hacer rehashing
![Page 42: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/42.jpg)
42
Hashing extensible
La función de hashing tiene x bits
Se ocupa primero 1 bit => sólo 2 buckets
Cuando se produce overflow, se reorganiza para ocupar 2 bits => 4 buckets
La tabla de hashing crece dinámicamente duplicando su tamaño
![Page 43: Sistemas de Información II Tema 8. Estructuras de datos en ... · Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria Carlos Castillo UPF – 2008 Bibliografía:](https://reader033.vdocuments.pub/reader033/viewer/2022060903/609f2998b400e85c8a63b584/html5/thumbnails/43.jpg)
43
Resumen
Los SGBD ocultan una alta complejidad
Conocer cómo se organizan cada motor de bases de datos ayuda a obtener mejor eficiencia
Índices generan sobrecosto en espacio y sobrecosto en tiempo al modificar los datos => usar responsablemente