Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria

Documentos relacionados
7. Agrupamiento (clustering)

Capítulo 12: Indexación y asociación

Tema 2. Organizaciones de ficheros y estructuras de acceso

Carlos Castillo UPF 2008

Procesadores de lenguaje Tema 6 La tabla de símbolos

Almacenamiento y Recuperación de la Información

TEMA 2. ORGANIZACIONES DE FICHEROS Y ESTRUCTURAS DE ACCESO

Tabla de Símbolos. Programación II Margarita Álvarez

Sistemas operativos. Tema 10: Sistemas de ficheros


Carlos Castillo UPF 2008

SQL III y Optimización de Consultas

Organización y acceso a los datos

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

6. Organización física de los datos

Procesamiento y Optimización de Consultas

Bases de Datos Indexación y Hashing 1. Indexación. Jorge Pérez Rojas Universidad de Talca, II Semestre 2006

Bases de Datos 3º Informática de Sistemas

Temario. Índices simples Árboles B Hashing

Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2010/2011

Tema 11 Bases de datos. Fundamentos de Informática

Estructuras de datos: Árboles binarios de

ADMINISTRACIÓN DE BASES DE DATOS

Tema Árboles generales. 9.2 Árboles binarios 9.3 Árboles de búsqueda

NIVEL 14: ESTRUCTURAS DE ACCESO DIRECTO

Tiempo de Compilación. Programa fuente. Secuencia. de caracteres. Scanner. Secuencia. de símbolos Parser. Compilador.

Oliverio J. Santana Jaria. Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso Los objetivos de este tema son:

Archivos. Teoría de Sistemas Operativos. Archivos. Archivos. Archivos. Archivos. Administración de Archivos

Diseño y Admón. de Bases de Datos. Ingeniería Informática curso 2010/11

El programa que permite el manejo de la base de datos tiene la siguiente funcionalidad:

Sistemas de Información II Tema 6. Álgebra relacional

Sistemas Operativos. Curso 2016 Sistema de Archivos

Sistema de Ficheros. Sistemas Operativos - ITIG. Álvaro Polo Valdenebro. Abril apoloval@gsyc.es. GSyC Introducción 1

Sistemas de Datos. Rendimiento de la Base de datos. Procesamiento de consultas y administración del rendimiento

Sistemas Operativos Tema 10. Sistema de archivos José Miguel Santos Alexis Quesada Francisco Santana Belén Esteban

Clase 32: Árbol balanceado AVL

T ema 2. S is tem as ges tores de bas es de datos

F47. FICHEROS Y BASES DE DATOS <

Contenido. Sistema de archivos. Operaciones sobre archivos. Métodos de acceso a archivos. Directorio. Sistema de archivos por capas.

UNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA DIRECCION GENERAL DE ASUNTOS ACADEMICOS PROGRAMA DE ASIGNATURA

Estructura de datos Tema 6: Tablas de dispersión (hashing)

Representación de números enteros: el convenio exceso Z

Introducción al tipo Vector Cómo guardar una colección de datos conceptualmente relacionados? - almacenar los 100 primeros números primos, - al

Sistemas de Datos. Estructuras de archivos y métodos de acceso. Registros

Práctica 7. TAD aplicación

Sistemas de Información II Tema 1. El enfoque de bases de datos

ARREGLOS DEFINICION GENERAL DE ARREGLO

Diario Oficial de la Federación

A.N.E.P. Consejo de Educación Técnico Profesional. Educación Media Tecnológica. Orientación INFORMÁTICA ASIGNATURA SISTEMAS DE BASES DE DATOS I

Almacenamiento de datos. Tema 6. Organización interna y diseño físico

Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11

Capítulo 1: Conceptos Básicos de Bases de Datos

Sistemas de Gestión de Bases de Datos

INSTITUTO POLITECNICO NACIONAL

Programación. Tema 8: Tablas Hash. Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el????

UNIDAD 3 ASPECTOS ASOCIADOS CON BASES DE DATOS. Diseno Físico de Bases de Datos Objetivo. 2.2 Visión General del Procesamiento de Consultas

TEMA III. Sistemas de Gestión de. Bases de Datos

Introducción a la Programación 11 O. Humberto Cervantes Maceda

Fundamentos de Organización de Datos

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Programa Oficial de Asignatura. Ficha Técnica. Presentación. Competencias y/o resultados del aprendizaje. Contenidos Didácticos

MEMORIA. Programación II

Algoritmos de Strings. Héctor Navarro

El nivel ISA (II)! Conjunto de Instrucciones

Seguridad. Mecanismos de protección Canales encubiertos Seguridad multinivel

MICROSOFT EXCEL 2016 Básico

CURSO DE EXCEL -INTERMEDIO

TEMA 4 El tipo conjunto

Programación de Sistemas

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 5: Subcapa de acceso al medio

Aritmética Binaria. Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid

Índices en Memoria Secundaria para Búsquedas en Texto

Cuestionario almacenamiento en disco y gestión de memoria.

Almacenamiento y estructura de archivos

Conceptos básicos de bases de datos

Una base de datos de Access puede estar conformada por varios objetos, los más comunes son los siguientes:

OPTIMIZACION DE CONSULTAS A BASES DE DATOS RELACIONALES

Como buscar información en la Biblioteca Virtual de Gartner?

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006

2.2 Nombres, Ligado y Ámbito

Componente del sistema operativo que maneja el acceso a los archivos.

Algoritmos de Búsqueda y Ordenación. Rosalía Laza Fidalgo. Departamento de Informática. Universidad de Vigo

Unidad 2: Gestión de Memoria

Solecmexico Página 1 SUMADOR BINARIO

Tema 5: Memorias. Espacio reservado para notas del alumno

1. Introducción a las comunicaciones

Índices de RI. UCR ECCI CI-2414 Recuperación de Información Prof. M.Sc. Kryscia Daviana Ramírez Benavides

Tema 1: Implementación del sistema de archivos

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché

Convivencia. Gestión del Sistema de Archivos

Plan 95 Adecuado. Visión:

Representación de números enteros: el convenio signo y magnitud

Temario. Índices simples Árboles B Hashing

INFORMÁTICA II. Clase 1: Presentación- Introducción. Semestre 2012/1

Definición de Memoria

Objetivos. <?echo $telefono;?>

Criptografía y Seguridad de Datos Introducción a la Criptografía: Confidencialidad de los mensajes

Temario Access Nº apartado Título apartado Tipo apartado

Árboles. Cursos Propedéuticos Dr. René Cumplido M. en C. Luis Rodríguez Flores

3. COLA DE PRIORIDAD DEFINICION (I)

Transcripción:

Sistemas de Información II Tema 8. Estructuras de datos en memoria secundaria 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). Carlos Castillo UPF 2008 1

Índice Indexación Datos Consulta Índice Datos Respuesta 2

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 3

Índices en ficheros secuenciales 4

Fichero secuencial 10 Juan 20 Pedro 30 Diego 40 Ana Bloques 50 María 60 Iván Persona(idpersona int, nombre char(12)) Asumimos bloque es de tamaño 32 bytes (anormalmente pequeño) 5

Índice denso 10 B1R1 20 B1R2 30 B2R1 40 B2R2 50 B3R1 60 B3R2 Índice 10 Juan 20 Pedro 30 Diego 40 Ana 50 María 60 Iván Datos Todos los elementos están en el índice 6

Otro ejemplo índice denso Datos (19 bytes) 0 1 0123456789012345678 JUANPEDRODIEGOTOMAS Índice (4 ints) 0 4 9 14 Veloz en la recuperación de registros por número ej.: recuperar registro 2 7

Índice disperso 10 B1R1 30 B2R1 50 B3R1 Índice 10 Juan 20 Pedro 30 Diego 40 Ana 50 María 60 Iván Datos Sólo algunos de los elementos están en el índice Densidad del índice = claves indexadas / claves totales 8

Índice primario Índice sobre el atributo según el cual están ordenados los elementos, con el primer elemento de cada bloque Es un índice disperso Aaron, Ed Adams, John... Wright, Pam B1 B2 Bn Bloque 1 Aaron, Ed Acosta, Marc Bloque 2 Adams, John Akers, Jan... Bloque n Wright, Pam Zimmer, Byron 9

Datos Cálculo costo acceso sin índice Número de registros Tamaño del bloque Tamaño del registro Costo búsqueda binaria? r = 30,000 registros B = 1,024 bytes R = 100 bytes Elementos por bloque = R/B ~ 10 Bloques totales = r / 10 = 3,000 bloques Costo búsqueda binaria = log 2 (3000) ~ 12 10

Cálculo costo acceso con í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 11

Desventajas de este índice Inserción y borrado son costosos Solución: Inserción: desbordamiento de bloques Borrado: marca de borrado por elemento 12

Índice de agrupación 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

Índice de agrupación con bloques separados Se reserva espacio en cada bloque Cod_aero Bloque AAR 1 LAN 2 QAT 4... Bloque 1 AAR, 222 AAR, 333Bloque 2 # LAN, 444 next # LAN, 555 LAN, 666Bloque 3 next 3 LAN,777 # # next # Bloque 4 QAT,888 QAT,999 # next # 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

Índice secundario, sobre campo único Ej.: Pais( id_pais, nombre_pais ) nombre_pais id_bloque Argentina 3 Argelia 1 Burundí 3 Camerún 2 Chad 2... Bloque 1 1, Francia 2, Argelia 3, Suecia Bloque 2 4, Camerún 5, Chad 6, México Bloque 3 7, Burundí 8, Noruega 9, Argentina 16

Índice secundario, sobre campo no-único Ej.: Persona( dni, nombre, apellido ) nombre id_indice Anna 1 Joan 2 Jordi 3 Xavier 4 1 B1R1, B2R2 2 B1R2, B3R1 3 B3R2, B2R1 Bloque 1 x, Anna, x x, Joan, x Bloque 2 x, Jordi, x x, Anna, x Bloque 3 x, Joan, x x, Jordi, x Se utiliza un nivel intermedio de indirección 17

Índices multinivel 18

B-Tree Block-tree [Bayer & McCreight, 1972] Árbol balanceado Típicamente (mínimo) 3 niveles Variante B+ es más popular 19

Nodo hoja (externo) 34 82 95 Al registro 34 Al registro 82 Al siguiente hermano Al registro 95 20

Nodo interno 21 52 75 x < 21 75 75 <=x 21 <= x < 52 52 <=x < 75 21 52 21

B-Tree 13 7 23 31 43 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 22

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) 23

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) 24

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 25

Insertar 40 en B-Tree 13 7 23 31 43 2 3 5 7 11 13 17 19 23 29 43 47 31 37 40 41 26

Insertar 40 en B-Tree (cont.) 13 40 7 23 31 43 2 3 5 7 11 13 17 19 23 29 43 47 31 37 40 41 27

Borrado de 7 en B-Tree 13 7 23 31 43 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 28

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 29

Borrado de 11 en B-Tree 13 5 23 31 43 2 3 5 11 13 17 19 23 29 31 37 41 43 47 30

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 31

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 32

Borrado de 11 en B-Tree (cont.) 23 13 31 43 2 3 5 13 17 19 23 29 31 37 41 43 47 33

Contenidos del B-Tree Un B-Tree de orden k (datos por nodo) y altura h, cuántos elementos puede tener? 34

Hashing 35

Función de Hashing N claves en un dominio de tamaño D N << D h(.) Típicamente enteros entre 0 y M Con M > N 36

Función de hashing típica int hashfunction(char *s) { int i; for( i=0; *s; s++ ) { i = 131*i + *s; } return( i % M ); } 37

Ejemplo simple http://en.wikibooks.org/wiki/data_structures/hash_tables 38

Colisión: solución con lista enlazada http://en.wikibooks.org/wiki/data_structures/hash_tables 39

Colisión: solución con linear probing http://en.wikibooks.org/wiki/data_structures/hash_tables 40

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 41

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 42

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 43