Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bibliografa: Elmasri y Navathe: Fundamentos de Sistemas de Bases de Datos 3 edicin, 2002 (Captulo 6). Garcia-Molina, Ullman y Widom: Database systems: the complete book. Prentice-Hall (Captulos 12 y 13). Carlos Castillo UPF 2008
1
ndice
Indexacin Datos
Consulta
ndice
Datos Respuesta
2
Indexacin
ndice
Estructura que permite encontrar rpidamente un registro de datos
Requerimientos
Bajo sobrecosto (overhead) en espacio Alta velocidad de bsqueda [Opcional] Alta velocidad de insercin [Opcional] Alta velocidad de borrado
Fichero secuencial
10 | Juan 20 | Pedro 30 | Diego 40 | Ana 50 | Mara 60 | Ivn Persona(idpersona int, nombre char(12)) Asumimos bloque es de tamao 32 bytes (anormalmente pequeo)
5
Bloques
ndice denso
10 20 30 40 50 60 B1R1 B1R2 B2R1 B2R2 B3R1 B3R2 10 | Juan 20 | Pedro 30 | Diego 40 | Ana 50 | Mara 60 | Ivn Datos
ndice
0123456789012345678 JUANPEDRODIEGOTOMAS 0
Veloz en la recuperacin de registros por nmero ej.: recuperar registro 2
ndice (4 ints)
4 9 14
ndice disperso
10 B1R1 30 B2R1 50 B3R1 10 | Juan 20 | Pedro 30 | Diego 40 | Ana 50 | Mara 60 | Ivn Datos
ndice
Slo algunos de los elementos estn en el ndice Densidad del ndice = claves indexadas / claves totales
8
ndice primario
ndice sobre el atributo segn el cual estn ordenados los elementos, con el primer elemento de cada bloque Es un ndice disperso Bloque 1 Aaron, Ed Acosta, Marc Bloque 2 Adams, John Akers, Jan ... Bloque n Wright, Pam Zimmer, Byron
9
12
ndice de agrupacin
Registros ordenados por un campo que no es nico. Ej.: cod_aero, num_vuelo
Cod_aero Bloque AAR B1 LAN B1 QAT B2 VAR B3 Bloque 1 AAR, 222 AAR, 333 LAN, 444 Bloque 2 LAN, 555 LAN, 666 QAT, 777 Bloque 3 VAR, 888
13
14
ndice secundario
Se construye sobre un campo que no es clave primaria Es un ndice denso (cada registro tiene un lugar en el ndice)
15
16
1 B1R1, B2R2 nombre id_indice Anna 1 Joan 2 Jordi 3 Xavier 4 2 B1R2, B3R1 3 B3R2, B2R1
17
ndices multinivel
18
B-Tree
Block-tree
[Bayer & McCreight, 1972]
19
20
Nodo interno
21 52 75
x < 21
75
75 <=x
21
21 <= x < 52
52
52 <=x < 75
21
B-Tree
13
23 31 43
11
13 17 19
23 29
31 37 41
43 47
22
Bsqueda en B-Tree
Buscar un elemento
Nodo hoja: bsqueda binaria entre los punteros Nodo interno: bsqueda binaria y descender por el nodo apropiado
23
24
23 31 43
11 12
13 17 19
23 29
31 37 41
43 47
25
Insertar 40 en B-Tree
13
23 31 43
11
13 17 19
23 29
43 47
31 37
40 41
26
23 31
43
11
13 17 19
23 29
43 47
31 37
40 41
27
Borrado de 7 en B-Tree
13
23 31 43
11
13 17 19
23 29
31 37 41
43 47
28
23 31 43
11
13 17 19
23 29
31 37 41
43 47
29
Borrado de 11 en B-Tree
13
23 31 43
11
13 17 19
23 29
31 37 41
43 47
30
23 31 43
13 17 19
23 29
31 37 41
43 47
31
13
23 31 43
13 17 19
23 29
31 37 41
43 47
32
13
31 43
13 17 19
23 29
31 37 41
43 47
33
34
Hashing
35
Funcin de Hashing
h(.)
36
37
Ejemplo simple
http://en.wikibooks.org/wiki/Data_Structures/Hash_Tables
38
http://en.wikibooks.org/wiki/Data_Structures/Hash_Tables
39
http://en.wikibooks.org/wiki/Data_Structures/Hash_Tables
40
41
Hashing extensible
La funcin de hashing tiene x bits Se ocupa primero 1 bit => slo 2 buckets Cuando se produce overflow, se reorganiza para ocupar 2 bits => 4 buckets La tabla de hashing crece dinmicamente duplicando su tamao
42
Resumen
Los SGBD ocultan una alta complejidad Conocer cmo 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
43