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



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

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

RESTRICCIONES DE INTEGRIDAD Y DEPENDENCIAS FUNCIONALES Bases de Datos Universidad de Talca, II Semestre Jorge Pérez R.

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

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

MANUAL COPIAS DE SEGURIDAD

Utilidades para el control de stock de los artículos

Tablas. Estas serán las tablas que usaremos en la mayoría de ejemplos. Empleado

Ampliación de Estructuras de Datos

Tema 2. Organizaciones de ficheros y estructuras de acceso

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

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

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

Unidad 3. NORMALIZACIÓN.

Base de datos en Excel

Operación Microsoft Access 97

UNIVERSIDAD TECNOLOGICA ECOTEC DIEGO BARRAGAN MATERIA: Sistemas Operativos 1 ENSAYO: Servidores BLADE

Estructura de una BD Oracle. datafiles redo log controlfiles tablespace objetos Estructura lógica. Tablespaces tablespace SYSTEM

Registro (record): es la unidad básica de acceso y manipulación de la base de datos.

Qué es un sistema de almacenamiento RAID?

Operación de Microsoft Excel

Manual Operativo Sistema de Postulación Online

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Para añadir un presupuesto nuevo, seleccionaremos en el apartado Presupuestos la opción en la parte superior Añadir.

ARANZADI INFOLEX COPIAS DE SEGURIDAD.

HERRAMIENTAS DE ACCESS ACCESS Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Nociones de performance

Configuración en Red

CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO

Plataforma Educativa Manual del Docente Nivel II Módulo 3 Wiki

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

APLICACIONES INFORMÁTICAS de BASE de DATOS

CVS Concurrent Versions System Manual de Usuario

A.1. Definiciones de datos en SQL

EL PROCESO DE INVENTARIO PARA ESCENARIOS DE SERVICIOS DISTRIBUIDOS

Fundamento de Informática Teórica(2003) Prof. Dr. Eric Jeltsch F. ORGANIZACION FISICA DE LOS SISTEMAS DE BASE DE DATOS

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Gestion de archivos. Problemas al almacenar datos sólo en la memoria:

2. Entorno de trabajo y funcionalidad en Arquímedes

Gestión de Retales WhitePaper Noviembre de 2009

Sitios remotos. Configurar un Sitio Remoto

Análisis de los datos

Para la versión actual 8.0 Internet Explorer, la ventana nueva se muestra así:

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

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

GedicoPDA: software de preventa

Rev Gestión Documental

INSTRUCCIONES CIERRE EJERCICIO 2014

MANUAL DE LA CONFIGURACIÓN Y USO DEL MÓDULO DE ASM PARA PRESTASHOP

Guía rápida del usuario DoliShop

Sistema para el control y tramitación de documentos SITA MSc. María de la Caridad Robledo Gómez y Ernesto García Fernández.

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

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

Árboles binarios de búsqueda ( BST )

Cómo parametrizar el Puesto de Trabajo asociado a una base de datos de IVA

PowerPoint 2010 Modificar el diseño de las diapositivas

Cierre de Ejercicios Fiscales en el Sistema ASPEL-COI 4.0

CONSIDERACIONES GENERALES DEL FUNCIONAMIENTO DEL PROGRAMA

Manual de Microsoft Power Point 2007 Parte 2 Universidad Politécnica de San Luis Potosí

Manual para usuarios USO DE ONEDRIVE. Universidad Central del Este

Carta Técnica VS Control Total Versión 2014

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

Inventario Físico GIO INTELLIGENT

Guía de uso del Cloud Datacenter de acens

Creación de usuarios Acceso a Alexia

Aplicateca. Manual de Usuario: Ilion Factura Electrónica. Espíritu de Servicio

Servicios Educativos Del Estado De Chihuahua Sistema Integral de Presupuestos y Materiales. Indice. Introducción Barra de Herramientas...

Instructivo para Uso de Librerías CAD

BALANCED SCORECARD. Creación de Tableros Tablero de Indicadores. Cartilla I

Módulo Cédulas de Auditorías desde Excel

GENERALIDADES DE BASES DE DATOS

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

Alumna: Adriana Elizabeth Mendoza Martínez. Grupo: 303. P.S.P. Miriam De La Rosa Díaz. Carrera: PTB. en Informática 3er Semestre.

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

Que es normalización? Normalización de una base de datos Grados de normalización: Primera Forma Grados de normalización: Segunda Forma Grados de

EDICIÓN Y FORMATO (II)

POSICIONAMIENTO EN LA WEB (SEM Y SEO)

Árboles AVL. Laboratorio de Programación II

Optimizar base de datos WordPress

INVENTARIO INTRODUCCIÓN RESUMEN DE PASOS

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

En los últimos tiempos ya nadie discute las ventajas que supone tener una base de

Documentación del CK-BaaB

Una vez que tengamos el padrón de un determinado tributo con todos sus datos actualizados, podemos generar los recibos de ese padrón.

Exportación de cuentas contables del programa Aspel Coi

Bases de datos relacionales y el modelo entidad-relación

7. Conclusiones. 7.1 Resultados

Consultas con combinaciones

El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra.

Estructuras de datos: Proyecto 2

Resumen de técnicas para resolver problemas de programación entera Martes, 9 de abril. Enumeración. Un árbol de enumeración

Resumen ÁREA DE FACTURACIÓN::INFORMES::Pedidos Detalle Resumen ÁREA DE

Bases de Datos XPath - XQuery 1. XML: XPath - XQuery. Jorge Pérez Rojas Universidad de Talca, II Semestre 2006

Sistema PYMES Ventas e Inventarios H&S

Inventario Físico Capítulo 1 INVENTARIO DacEasy Contabilidad Versión 11

SICAE S.L.L. Almansa nº Pozuelo de Alarcón (Madrid) Manual general de C. de Inventario/Ordenador V.1 Pag.

Existen tres tipos de claves principales que pueden ser definidas por Microsoft Access: Auto numérico, Campo simple y Campos múltiples.

En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas.

MANUAL DE USO PORTAL B2B PROCESO OPERATIVO- DESPACHOS

Universidad de Colima Facultad de Ingeniería Mecánica y Eléctrica. Base de Datos I. Maestra: Martha E. Evangelista Salazar

Transcripción:

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

Bases de Datos Indexación y Hashing 2 Acceso a Datos Muchas consultas hacen referencia sólo a una pequeña parte de los datos Por ejemplo: Encontrar todos los empleados del departamento de Marketing hace referencia sólo a una pequeña fracción de los datos en la tabla empleado Es muy ineficiente que el sistema deba recorrer todos los registros e ir comprobando el código del departamento de cada empleado antes de dar la respuesta Lo ideal sería que el sistema pudiera localizar directamente estos registros Problema grave adicional: En el contexto de BDs los datos se encuentran físicamente en memoria secundaria acceso muy costoso

Bases de Datos Indexación y Hashing 3 Acceso a Datos (cont) Para aumentar la eficiencia de acceso se diseñan estructuras adicionales asociadas a los archivos que mantienen la información de la BD Existen distintas formas generales (sólo veremos construcción de índices) Cada una de las técnicas tiene ventajas y desventajas comparativas y deben evaluarse en función de: tiempo de acceso a datos tiempo de inserción de datos tiempo de eliminación de datos espacio extra necesario

Bases de Datos Indexación y Hashing 4 Índices La idea de un índice en una BD es la misma que en el caso de un índice de un libro de texto En un libro un índice alfabético permite ir directamente a la página asociada con cada entrada del índice Una situación similar ocurre en una biblioteca en donde se mantienen fichas indexadas por Autor, Tema, Título, que entregan la dirección (estante y número) de un libro para así encontrarlo fácilmente

Bases de Datos Indexación y Hashing 5 Indices (cont) Un índice se define para un atributo de una relación Se guarda para cada valor de este atributo las direcciones de todos los bloques que contienen tuplas con ese valor para dicho atributo Los valores en un índice se mantienen con cierto orden de modo que se puede buscar rápidamente Existen distintas técnicas de indexación, con distintas características Indexación por archivos secuenciales Indexación por Árboles B

Bases de Datos Indexación y Hashing 6 Indexación por Acceso Secuencial Es uno de los esquemas de indexación más antiguos Supone que los archivos (tuplas) se encuentran ordenados secuencialmente y por lo tanto tienen una llave de búsqueda primaria Por ejemplo, si los datos de los empleados se encuentran físicamente ordenados por nombre en el disco, el nombre del empleado se convierte en una llave de búsqueda Importante: no confundir con llave primaria de la relación! No olvidar que la búsqueda debe hacerse sobre memoria secundaria lenta Dos tipos de índices: índice denso, índice escaso

Bases de Datos Indexación y Hashing 7 Indice Denso Indice Tabla Campos Carcamo Chavez Cortez Figueroa Galvez Gomez Venegas Campos 11003441 campos@empresacl 800000 Carcamo 13447180 carcamo@empresacl 500000 Chavez 12008991 chabez@empresacl 600000 Cortez 11003442 cortez@empresacl 800000 Figueroa 09998711 figueros@empresacl 600000 Galvez 13556781 galvez@empresacl 600000 Gomez 13556788 gomez@empresacl 500000 Gonzalez 08881672 gonzalez@empresacl 2000000 Parra 10934412 parra@empresacl 300000 Pena 12008993 pena@empresacl 600000 Perez 10934411 perez@empresacl 300000 Vargas 12400113 vargas@empresacl 600000 Venegas 12400112 venegas@empresacl 600000 Un registro de índice para cada valor de la llave de búsqueda El registro contiene el valor de la llave y un puntero a la tupla

Bases de Datos Indexación y Hashing 8 Indice Denso (cont) Si queremos encontrar los datos para el empleado Cortez: Buscamos Cortez en el índice Seguimos el puntero para obtener los datos

Bases de Datos Indexación y Hashing 9 Indice Escaso Indice Escaso Tabla Campos Figueroa Parra Vargas Campos 11003441 campos@empresacl 800000 Carcamo 13447180 carcamo@empresacl 500000 Chavez 12008991 chabez@empresacl 600000 Cortez 11003442 cortez@empresacl 800000 Figueroa 09998711 figueros@empresacl 600000 Galvez 13556781 galvez@empresacl 600000 Gomez 13556788 gomez@empresacl 500000 Gonzalez 08881672 gonzalez@empresacl 2000000 Parra 10934412 parra@empresacl 300000 Pena 12008993 pena@empresacl 600000 Perez 10934411 perez@empresacl 300000 Vargas 12400113 vargas@empresacl 600000 Venegas 12400112 venegas@empresacl 600000 Registros de índice sólo para algunos valores de la llave

Bases de Datos Indexación y Hashing 10 Indice Escaso (cont) Si queremos encontrar los datos para el empleado Cortez: Buscamos la llave en el índice que es menor o igual a Cortez Resulta ser Campos en el ejemplo Seguimos el puntero a Campos y buscamos secuencialmente a Cortez en la tabla

Bases de Datos Indexación y Hashing 11 Indexación por Acceso Secuencial Qué tan rápida resulta la búsqueda? Si el índice es suficientemente pequeño podríamos hacer toda la búsqueda en memoria principal, lo que resulta muy rápido Generalmente, el índice no cabe completamente en memoria principal debemos hacer varias lecturas a memoria secundaria (disco) para encontrar el puntero buscado Índices grandes resultan costosos en cuanto a accesos a memoria secundaria Podemos solucionarlo tratando el índice como un archivo secuencial cualquiera, o sea, podemos construir un índice sobre el índice

Bases de Datos Indexación y Hashing 12 Indice de dos Niveles Indice Externo Indice Interno Bloques de Datos

Bases de Datos Indexación y Hashing 13 Indice de dos Niveles (cont) El índice externo se mantiene en memoria principal La búsqueda puede hacerse con menos acceso a memoria secundaria Se puede repetir el esquema en varios niveles

Bases de Datos Indexación y Hashing 14 Indexación por Acceso Secuencial Sin importar cuál sea la forma de indexación siempre debemos actualizar todos los índices cada vez que se inserta o elimina una tupla Esto por la necesidad de que los archivos estén ordenados secuencialmente Muy ineficiente para Bases de Datos en las que se realizan muchas inserciones o eliminaciones Mientras más datos en la BD más cuesta acceder y manipular los datos

Bases de Datos Indexación y Hashing 15 Indexación por Acceso Secuencial También se pueden indexar atributos no llaves, o sea, atributos por los que el archivo no se encuentra secuencialmente ordenados Se usan índices secundarios Un índice secundario apunta a bloques de punteros en memoria secundaria Se accede a un bloque de punteros y luego se realiza una búsqueda siguiendo los punteros que se encuentran en el bloque

Bases de Datos Indexación y Hashing 16 Indice Secundario Indice Secundario 08881672 11003441 12008993 13447180 Registros de Punteros Tabla Campos 11003441 campos@empresacl 800000 Carcamo 13447180 carcamo@empresacl 500000 Chavez 12008991 chabez@empresacl 600000 Cortez 11003442 cortez@empresacl 800000 Figueroa 09998711 figueros@empresacl 600000 Galvez 13556781 galvez@empresacl 600000 Gomez 13556788 gomez@empresacl 500000 Gonzalez 08881672 gonzalez@empresacl 2000000 Parra 10934412 parra@empresacl 300000 Pena 12008993 pena@empresacl 600000 Venegas 12400112 venegas@empresacl 600000 Índice secundario para el atributo rut

Bases de Datos Indexación y Hashing 17 Indice Secundario (cont) Para encontrar la tupla con rut 12008991 Entramos al registro apuntado por 11003441 Dentro de este registro se busca uno a uno en los punteros Se accede a las tuplas con rut 11003441 y 11003442 Finalmente se accede a la tupla con rut 12008991

Bases de Datos Indexación y Hashing 18 Indexación por Arboles B Los Árboles B (B+ Trees y BTrees) son una de las estructuras de datos más usadas para mantener índices de acceso a BD Son excelentes para hacer búsquedas externas en memoria secundaria (en disco) Aseguran un tiempo eficiente, de orden logarítmico en el peor caso, en cuanto al tiempo de procesamiento y en cuanto a la cantidad de accesos al disco

Bases de Datos Indexación y Hashing 19 Arboles B Estructura de Árbol balanceado, todas las hojas del árbol están a la misma profundidad Cada nodo del árbol se mantiene en una unidad (página) de memoria secundaria Cada nodo tiene un máximo y un mínimo de punteros a tuplas de la base de datos El árbol completo funciona como índice Las inserciones y eliminaciones de registros en el índice se pueden realizar de forma muy eficiente, no es necesario reconstruir el índice

Bases de Datos Indexación y Hashing 20 Indice de Arbol B Cortez Rios Campos Cárcamo Galvez Parra Soto Torres Bloques de Datos Árbol B para mantener un índice al atributo nombre No es necesario que el archivo de datos (tabla) esté físicamente ordenado en forma secuencial

Bases de Datos Indexación y Hashing 21 Indices en SQLServer Almacena los datos en páginas de 8 KB Un header de 96 bytes vincula estas páginas Los datos en las páginas se almacenan en orden (según la llave de búsqueda) El parámetro fill factor se usa para mantener las páginas ordenadas de forma eficiente Al crear el índice ordena las páginas de manera tal que cada una deje cierto porcentaje mínimo desocupado Un Árbol-B mantiene el índice de las páginas de datos

Bases de Datos Indexación y Hashing 22 Indices en SQLServer Para crear un índice se usa create index, por ejemplo create modif index mi_indice on tabla atributo en donde modif puede ser unique, clustered, nonclustered unique: virtualmente equivalente a una llave primaria clustered: ordena la tabla por el atributo indicado a lo más una por tabla nonclustered: no ordena la tabla, pueden ser muchas por tabla