Almacenamiento y Recuperación de la Información



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

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

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

Ampliación de Estructuras de Datos

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

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

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

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

árbol como un conjunto de nodos y líneas

ARREGLOS DEFINICION GENERAL DE ARREGLO

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

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

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Almacenamiento y estructura de archivos

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

LABORATORIO 10. ADMINISTRACIÓN DE COPIAS DE SEGURIDAD EN SQL SERVER

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05

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

GENERALIDADES DE BASES DE DATOS

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Componentes de Integración entre Plataformas Información Detallada

Sistemas de archivos distribuidos. Alvaro Ospina Sanjuan

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

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

Tema 2. Organizaciones de ficheros y estructuras de acceso

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

ESTRUCTURA DE DATOS: ARREGLOS

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción

Sistemas de Operación II

ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS

Clase 2: Estructuras Lógicas y Físicas(I)

Global File System (GFS)...

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

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

Novedades en Q-flow 3.02

SEGURIDAD Y PROTECCION DE FICHEROS

Tema 11 Bases de datos. Fundamentos de Informática

SISTEMAS DE ARCHIVOS DISTRIBUIDOS

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA

Soporte y mantenimiento de base de datos y aplicativos

Gestión de la Prevención de Riesgos Laborales. 1

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Introducción a las redes de computadores

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

Consultas con combinaciones

Capitulo V Administración de memoria

- Bases de Datos - - Diseño Físico - Luis D. García

A.1. Definiciones de datos en SQL

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd

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

Tema 4. Gestión de entrada/salida

Tarea 4.2 Memoria Virtual

Sistema de Recuperación. Carlos A. Olarte BDII

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

Árboles AVL. Laboratorio de Programación II

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

Análisis de Sistemas. M.Sc. Lic. Aidee Vargas C. C. octubre 2007

Administración de la producción. Sesión 10: Gestor de Base de Datos (Access)

Manual de usuario del Centro de Control

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco?

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

QUERCUS PRESUPUESTOS MANUAL DEL USO

SCT Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A.

Determinación del nivel de influencia

Arquitectura de sistema de alta disponibilidad

Operación Microsoft Access 97

INSTRUCTIVO PARA LA CUENTA DE PUNTOS FUNCIÓN

Capítulo 5. Cliente-Servidor.

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

Base de datos relacional

Clase 3. Discos Duros (continuación)

Seminario de Informática. Modulo V: Bases de Datos Elementos Conceptuales

3. Número inicial y número final de mensajes mostrados en la página actual.

Adelacu Ltda. Fono Graballo+ Agosto de Graballo+ - Descripción funcional - 1 -

2 Sea una unidad de disco duro de brazo móvil con las siguientes características:

7. Manejo de Archivos en C.

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

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres

CAPÍTULO 3. HERRAMIENTA DE SOFTWARE DE PLANEACIÓN DE

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

1.1.- Objetivos de los sistemas de bases de datos Administración de los datos y administración de bases de datos Niveles de Arquitectura

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

Microsoft SQL Server Conceptos.

Diseño de bases de datos Diapositiva 1

Base de datos en Excel

Instalación. Interfaz gráfico. Programación de Backups. Anexo I: Gestión de la seguridad. Manual de Usuario de Backup Online 1/21.

Al adquirir Gear Online se hará entrega del modulo de parámetros en cual podemos parametrizar todas las características de todas las áreas que

Tema 1: Implementación del sistema de archivos

Autenticación Centralizada

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

Mineria de datos y su aplicación en web mining data Redes de computadores I ELO 322

DE VIDA PARA EL DESARROLLO DE SISTEMAS

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

Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R

CONSULTAS BASICAS EN SQL SERVER

ZKSoftware Dpto. Ingeniería y Soporte 1

Formularios. Formularios Diapositiva 1

TEMA 3 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 3. PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS

GedicoPDA: software de preventa

INTRODUCCION. entidades. Modelo lógico de la base de datos. Matricula. carne. codigo_curso. año semestre nota. propiedades

Transcripción:

Almacenamiento y Recuperación de la Información Estructuras basicas de archivos Archivos Secuenciales 2do Semestre 2005 Wenceslao Palma M. <wpalma@inf.utfsm.cl> www.inf.utfsm.cl/~wpalma/ari

Una estructura de archivos es una técnica para agrupar físicamente los registros de un archivo en dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran aspectos tales como: Características de los dispositivos de almacenamiento. Sistema operativo. Software para la administración de los archivos. Necesidades del usuario para almacenar y accesar datos.

Criterios importantes: Acceso rápido para la recuperación de datos. Alto rendimiento para las transacciones de procesamiento. Uso eficiente del espacio en disco. Protección ante pérdida de datos y fallas. Minimización de la necesidad de reorganización de los datos.

Lógicamente, un archivo es una colección de registros estructurados, generalmente, en torno a una clave. Esta organización de datos considera la visión del programador de aplicaciones sobre el archivo, la cual es independiente del dispositivo; interesa más su uso que sus atributos físicos. Dicho programador de aplicaciones es la persona que visualiza un archivo como una colección de registros lógicos, aplicándoles las siguientes operaciones: Recorrer el archivo Agregar registros al archivo Eliminar registros del archivo Modificar valores del archivo Ordenar el archivo

En la organización lógica de una archivo, se distinguen dos conceptos importantes: a) Registro: corresponde a la definición de cada uno de los registros de datos que serán usados dentro de una aplicación, y cuya extensión determina el tipo de archivo que lo contiene, el cual puede ser: Archivo de Largo Fijo: el archivo se compone de registros del mismo tipo. Archivo de Largo Variable: El archivo se compone de registros del mismo tipo, pero al menos uno de los campos tiene un número de ocurrencias variable. El archivo se compone de registros del mismo tipo, pero el largo de al menos uno de sus campos es variable. El archivo se compone de registros del mismo tipo, pero uno de los campos es opcional en cuanto a su tipo. El archivo se compone de más de un tipo de registro.

b) Campo o Atributo: ítem de dato que describe una característica de la entidad representada por un registro lógico. Este campo puede tener nombres como: Clave Candidata: atributo(s) que no soporta(n) valores repetidos, y que por lo mismo, puede(n) identificar en forma única a un registro dentro del archivo. Identificador o Clave Primaria:clave candidata escogida como clave de acceso principal al archivo, dado su constante uso en los accesos al mismo. Clave Alternativa: clave candidata que no es escogida como identificador. Clave Secundaria: atributo que permite valores repetidos. Clave Inteligente: atributo cuyo contenido permite derivar información adicional de la entidad a la cual pertenece. Los registros, compuestos de diversos atributos, se van a organizar entre sí, para formar lo que se entiende por un archivo. En general, las tres estructuras de archivos más comunes son la secuencial, la directa, y el esquema jerárquico (o de árbol).

Archivos secuenciales Los registros son almacenados en secuencia, uno tras otro. Caracteristicas: Simple de usar. Conviene cuando se utilizan todos o la mayoria de los registros. El espacio de almacenamiento es minimo, solo se almacenan datos. El orden fisico y logico es el mismo. Existen dos tipos de archivos secuenciales: desordenado y ordenado.

Archivos secuenciales desordenados Los registros se almacenan uno tras otro según orden de llegada. Búsqueda: se realiza en forma lineal. Inserción: al final del archivo, lo que hace que la operación sea rápida. Eliminación: se puede realizar de dos formas; física y lógica. Si la eliminación es física, será necesario un corrimiento de los datos, lo cual perjudica el rendimiento. Por el contrario si la operación es lógica se utilizan marcas de borrado. Sin embargo, en ambos casos, es necesaria una reorganización de los registros.

Archivos secuenciales ordenados Los registros se almacenan en forma ordenada de acuerdo al valor de un campo (en la mayoria de los casos clave) de ordenamiento. Favorece la búsisqueda y generación de listados ordenados. Búsqueda: se realiza en forma lineal y binaria. Inserción: requiere un corrimiento de los registros para mantener el orden. Para evitar esto, existen varias técnicas: Incluir a cada bloque de datos un puntero que direccione a una lista enlazada de bloques de overflow, donde se almacenan los registros en dicha situación. Utilizar un archivo de overflow, el cual en cierta medida se transforma en un archivo de transacciones, para almacenar registros. Posteriormente se actualiza el archivo de datos mediante un ordenamiento y mezcla con el archivo de overflow. Eliminación: al igual que en el caso de los archivos secuenciales desordenados la eliminación puede ser física o lógica.

Ordenamiento externo Los métodos de ordenamiento externo se aplican sobre archivos que no pueden ser almacenados completamente en memoria principal para su ordenamiento. Se habla de ordenamiento externo cuando se utiliza un proceso de dos fases: una de ordenamiento y otra de mezcla. La fase de ordenamiento toma datos del archivo (particiones) los deja en memoria principal, los ordena y los retorna al disco. Los registros quedan ordenados en forma relativa a la particion en donde se encuentran. En la fase de mezcla se mezclan las particiones generando particiones mas grandes hasta llegar a una sola: el archivo ordenado.

Una variedad de operaciones se benefician de un conjunto de registros ordenados. Por ejemplo: Una consulta SQL podría requerir una salida ordenada de los registros que cumplen con alguna condición. Select From Order BY Region Rut, Nombre, Dirección, Region alumnos Al eliminar explícitamente duplicados Select DISTINCT ciudad From alumnos Debido a que no resulta razonable limitar el tamaño de un archivo. Cómo es posible ordenar los registros de un archivo cuyo tamaño es superior al espacio disponible en memoria principal?

Para tal efecto se considera un proceso de ordenamiento y mezcla, mediante el cual el archivo a ordenar se divide y cada una de sus partes se ordena y mezcla con alguna otra hasta obtener el resultado esperado. Es posible realizar lo anterior en una modalidad conocida como dos vías (two way) siempre que se cuente con 3 buffers en memoria principal. INPUT 1 INPUT 2 OUTPUT Disk Main memory buffers Disk

La estrategia de solución es la siguiente: Paso 0. Se lee cada página del archivo. Para cada página se realiza un ordenamiento de sus registros. Se escribe cada página (run) ordenada hacia disco. Paso 1..... Paso n. Seleccionar 2 runs y llevarlas a memoria. Mezclar sus registros con respecto al criterio de ordenamiento. Escribir el resultado (run de 2 páginas) a disco. Seleccionar y leer 2 runs escritas en el paso n 1 Mezclar sus registros con respecto al criterio de ordenamiento. Escribir el resultado (run de 2 n páginas) a disco.

En cada paso se leen/escriben las N páginas del archivo. El número de pasos es 1 + log 2 N Cada paso involucra operaciones de I/O. La cantidad de operaciones de I/O es: 2N(1 + log 2 N), el orden de magnitud es O(NlogN) Si disponemos de una mayor cantidad de buffers se podría reducir el número de pasos. Qué sucede si se tienen B buffers? 3,4 6,2 9,4 8,7 5,6 3,1 2 3,4 2,6 4,9 7,8 5,6 1,3 2 2,3 4,6 2,3 4,4 6,7 8,9 4,7 8,9 1,2 2,3 3,4 4,5 6,6 7,8 9 1,3 5,6 2 1,2 3,5 6 Input file PASS 0 1 page runs PASS 1 2 page runs PASS 2 4 page runs PASS 3

INPUT 1... INPUT 2... OUTPUT... Disk INPUT B 1 Disk Considerando B buffers: Paso 0. Se generan N/B runs de B páginas cada una, excepto la última que menos. podría tener Paso 1... salida. Seleccionar B 1 runs del paso anterior. Realizar una mezcla de B 1 vías usando la B ésima página como buffer de

Al igual que en el caso de 2 vías se escriben y leen las N páginas del archivo. En el paso 0 se escriben N/B runs. El número de pasos adicionales es log B 1 N/B. Luego, el total de operaciones de I/O es 2N (1+log B 1 N/B), el orden de magnitud es O(NlogN) pero en base B 1 N B=3 B=5 B=9 B=17 B=129 B=257 100 7 4 3 2 1 1 1,000 10 5 4 3 2 2 10,000 13 7 5 4 2 2 100,000 17 9 6 5 3 3 1,000,000 20 10 7 5 3 3 10,000,000 23 12 8 6 4 3 100,000,000 26 14 9 7 4 4 1,000,000,000 30 15 10 8 5 4

Sin embargo, la forma en que se utilizan los buffers puede ayudar a reducir el costo de las operaciones involucradas. Considere un disco de 10000 páginas y espacio de almacenamiento en memoria principal de 64 páginas. El disco posee una latencia de 5ms, seek de 10ms y puede transferir una página en 1ms. Determine el tiempo requerido para ordenar el archivo considerando: Caso 1: 63 buffers de entrada de una página cada uno y un buffer de salida de una página. Caso 2: 3 buffers de entrada de 16 páginas cada uno y un buffer de salida de 16 páginas. Caso 3: 13 buffers de entrada de 4 páginas cada uno y un buffer de salida de 12 páginas.

Sol.: Independiente de cada caso en el Paso 0 se leen 10000 páginas en grupos de 64 y luego se escribe cada grupo. Al final de este paso se generan 10000/64=157 runs de 63 páginas cada una. Caso 1: Paso 1: se generan 157/63=3 Paso 2: genera 1 run tiempo de cada paso: (10 + 5 + 1)*10000*2=320 seg tiempo total: 2*320= 640 seg

Caso 2: Paso 1: 175/3=53 Paso 2: 53/3=18 Paso 3: 18/3=6 Paso 4: 6/3=2 Paso 5: 2/3=1 tiempo por cada paso: (10+5+(1*16))*2*(10000/16)=38.75 seg tiempo total: 5*38.75=193.75 seg Caso 3: Cantidad de pasos: log 13 175=2 : ) tiempo por cada paso: como el buffer de entrada es distinto es necesario calcular el tiempo de lectura y escritura por paso. t_lectura: (10+5+(1*4)*2*(10000/4)=47.5 seg t_escritura: (10+5+(1*12)*2*(10000/12)=22.52 seg tiempo total: 2(t_lectura+t_escritura)=140.04 seg

Archivos organizados como árboles Los registros se organizan en bloques los cuales se relacionan en forma jerárquica de acuerdo a un cierto orden entre los valores que contiene cada registro. Arboles Binarios La gran ventaja es que permiten búsqueda binaria, pero los tiempos de recuperación se ven afectados por un eventual desbalanceo. reg<clave clave + registro completo reg>clave

Arboles Multiway Corresponden a una generalización de un árbol binario. En lugar de un registro y 2 punteros, un nodo contiene R registros y R+1 punteros. Los tiempos de recuperación mejoran, pero se requieren operaciones de balanceo al insertar y eliminar un registro. La estructura de un nodo: P 0 K P 0 1 K P 2... P n 1 P 1 K 2 K n 1 n Donde: P 0...P n son apuntadores a nodos de subárboles. K 0...K n 1 son los valores de las claves. Los valores de las claves en un nodo estan en orden ascendente K i <K i+1

Todos los valores de las claves que estan en los nodos del subárbol apuntado por P i son menores al valor de la clave K i. Todos los valores de las claves que estan en los nodos del subárbol apuntado por P n mayores al valor de la clave K n 1. son Los subárboles apuntados por P i también son árboles de búsqueda de m vías. Construya un árbol de 3 vías dada la siguiente secuencia 50 100 20 40 15 30 70 120 140 130 136

Arboles B Corresponden a árboles multiway con operaciones de balanceo, es decir, son multiway balanceados. Se define un árbol B de orden m a aquél árbol que cumple con las siguientes condiciones: Ningún nodo tiene más de m hijos. Un nodo interno con k hijos contiene k 1 registros. Todos los nodos terminales se encuentran en el mismo nivel. Ejercicio: Suponga un archivo de 40000 registros organizado como árbol B. El tamaño de cada registro es 70 bytes. Si el disco donde se almacena utiliza bloques físicos de 1KB y punteros a bloque de 6 bytes. Cuál es el orden del árbol? Cuantos accesos a disco se necesitan como máximo para recuperar un registro si en promedio los nodos estan llenos en un 70%? Cuanto tiempo en i/o se necesitan para la operación anterior? Considere un disco con los siguientes parámetros; seek:18ms, latencia: 8.3ms, transferencia: 1229 bytes/ms

Archivos Directos Veremos los relacionados a Direccionamiento Indirecto. El Direccionamiento Directo es un direccionamiento algorítmico. La idea general es alcanzar un registro usando una función de transformación (hashing) sobre una clave (que identifica de manera única a cada registro), lo cual llevará a la posición del registro en el medio de almacenamiento. El espacio de almacenamiento es dividido en secciones llamadas buckets. Un bucket almacena uno o más registros en casilleros de tamaño fijo llamados slots. Bucket registro1 slot registro2 registro3 registro4 La cantidad de registros en un Bucket define el factor de bloqueo (fb). La función hashing transforma la clave en una dirección de bucket relativa.

Se almacena una tabla en el encabezado del archivo para mantener una correpondencia con los bloques físicos. Este enfoque posee 2 desventajas: (a) Colisiones: para registros con distinta clave es posible que la función de transformación entregue un mismo valor. Es necesario resolver las colisiones ya que pueden generar overflow. (b) Zona de áreas muertas: la función distribuye de forma no equitativa los datos entre los distintos buckets. Alternativas para resolver colisiones (a) Overflow Abierto: en este caso la idea es almacenar el registro que está en colisión en el siguiente slot disponible. Ventaja: Minimización de áreas muertas. Desventaja: Búsqueda lineal de registros en colisión.

(b) Encadenamiento: en este caso un bucket sirve como nexo hacia un bucket de overflow cuando sea necesario. Existen dos tipos de encadenamiento: Unificado: bucket de overflow es compartido por varios buckets que tienen overflow. Exclusivo: cada bucket tiene potencialmente un bucket de overflow exclusivo. Overflow registro1 registro2 registro3 Overflow registro1 registro2 registro3 Overflow registro4 registro5 registro6 registro4 registro5 registro6 Overflow Unificado Overflow Exclusivo

Todo lo anterior implica: Un espacio de direcciones fijo. Lo normal es que los archivos cambien. Idea: Proponer un mecanismo que permita la expansión dinámica del archivo. Hashing Dinámico idea: llegar a los datos por medio de estructura de acceso jerárquica. Características: El número de buckets no es fijo. Se puede partir con un solo bucket. Cuando un bucket se encuentra en overflow se divide en dos buckets considerando como criterio de división el valor del bit más significativo de lo entregado por la función de transformación. En este caso se crea una estructura de árbol o directorio.

Existen 2 tipos de nodo: nodo interno: guían la búsqueda. nodo hoja: apuntan hacia un bucket. 0 1 nodo interno nodo hoja Ejemplo: Suponer buckets con fb=4. Crear un archivo directo en base a: 7 000111 41 101001 21 010101 48 110000 43 101011 6 000110 16 010000 15 001111 42 101010 25 011001 18 010010 20 010100

7 000111 41 101001 21 010101 48 110000 43 101011 6 000110 16 010000 15 001111 42 101010 25 011001 18 010010 20 010100 7 41 21 48 Al ingresar 43 el bucket entra en overflow. Además, es posible ingresar 6 y 16 sin problemas. 0 7 21 6 16 1 41 48 43

7 000111 41 101001 21 010101 48 110000 43 101011 6 000110 16 010000 15 001111 42 101010 25 011001 18 010010 20 010100 Al ingresar 15 hay overflow!! 0 0 1 1 41 48 43 7 6 15 21 16 25 18 42 Además, es posible ingresar 42, 25 y 18 sin problemas.

7 000111 41 101001 21 010101 48 110000 43 101011 6 000110 16 010000 15 001111 42 101010 25 011001 18 010010 20 010100 Al ingresar 20 hay overflow!! 0 0 1 0 1 7 6 15 21 16 1 18 20 41 48 25 43 42

Hashing Extendido Idea: Considerar una estructura de acceso tipo arreglo. Características: La estructura de acceso es un arreglo de 2^d direcciones de buckets. d es la profundidad global del directorio. Se suponen buckets de tamaño fijo. En caso de overflow es necesario doblar el tamaño del directorio. La estructura de acceso se construye considerando el bit menos significativo.

Ejercicio: Considerando las siguientes transformaciones de claves, Construya un archivo utilizando hashing extendido. ed 111010001010 tom 001101101000 sam 111100010100 ann 010011010001 kim 100111010100 kely 011011011110 mindy 110111000101 mark 110001011001 chris 111001110011 laura 001011010101 sue 101110001100 jill 111000110010 amy 111000011101 Inicialmente d=0. fb=4. ed...1010 tom...1000 sam...0100 ann...0001

ed 111010001010 tom 001101101000 sam 111100010100 ann 010011010001 kim 100111010100 kely 011011011110 mindy 110111000101 mark 110001011001 chris 111001110011 laura 001011010101 sue 101110001100 jill 111000110010 amy 111000011101 Al agregar kim existe overflow. El tamaño del directorio se debe doblar. d=1 0 1 ed...1010 tom...1000 sam....0100 kim...0100 ann...0001

ed 111010001010 tom 001101101000 sam 111100010100 ann 010011010001 kim 100111010100 kely 011011011110 mindy 110111000101 mark 110001011001 chris 111001110011 laura 001011010101 sue 101110001100 jill 111000110010 amy 111000011101 Al agregar kely hay overflow. Ahora d=2 00 01 10 tom...1000 sam...0100 kim...0100 ed...1010 kely...1110 11 ann...0001 mindy...0101 mark...1001 Además, es posible agregar mindy, mark y chris sin problemas!!! chris...0011

ed 111010001010 tom 001101101000 sam 111100010100 ann 010011010001 kim 100111010100 kely 011011011110 mindy 110111000101 mark 110001011001 chris 111001110011 laura 001011010101 sue 101110001100 jill 111000110010 amy 111000011101 Al agregar laura hay overflow. Sin embargo, no es necesario doblar el directorio sino crear un nuevo buket Además, es posible agregar sue y jill sin problemas!! 00 01 10 11 tom...1000 sam...0100 kim...0100 sue...1100 ed...1010 kely...1110 jill...0010 ann...0001 mindy...0101 mark...1001 laura...0101 chris...0011

ed 111010001010 tom 001101101000 sam 111100010100 ann 010011010001 kim 100111010100 kely 011011011110 mindy 110111000101 mark 110001011001 chris 111001110011 laura 001011010101 sue 101110001100 jill 111000110010 amy 111000011101 000 001 010 011 100 101 110 111 tom...1000 sam...0100 kim...0100 sue...1100 ed...1010 kely...1110 jill...0010 ann...0001 mark...1001 mindy...0101 laura...0101 amy...1101 chris...0011

Hashing Lineal No considera una estructura de acceso tipo índice. Su uso se basa en la existencia de M buckets, numerados desde 0 hasta M 1, los cuales van recibiendo registros de acuerdo a una función hashing h 0. En el momento en que alguno de los buckets se llena, se crea un bucket M en el cual se reparten los datos del bucket 0, aplicando la función hashing h 1. Este esquema se sigue repitiendo a medida que el archivo crece de tamaño.

Criterios para la selección de la estructura de un archivo En algunas aplicaciones es evidente cuál organización y método de acceso son los más adecuados. Sin embargo conviene tener presente algunos criterios para hacer una selección más fundamentada. Actividad Número de registros del archivo usados en un proceso. Cuando la actividad es alta se recomienda un archivo secuencial, en caso contrario acceso directo. Volatilidad Número de registros insertados o eliminados en un archivo. Si la tasa de volatilidad es alta se recomienda un archivo secuencial desordenado para que los nuevos registros vayan quedando almacenados al final.

Tipos de consultas Simple: depto='informatica' Rango: sueldo>1000000 Lógica: depto='informatica' y sueldo>1000000 Patrones: depto='ing%' En consultas simples conviene un archivo secuencial ordenado sobre el atributo de la consulta, favorece búsqueda binaria, también puede ser directo o de tipo árbol si la clave es única. Para rango es aconsejable secuencial ordenado sobre el atributo de consulta y esquemas directos que preserven el orden. En consultas lógicas dependerá si los componentes son simples o rangos. Para búsqueda de patrones las posibilidades son las mismas que para las consultas simples.

Volumen del archivo Número de registros que componen el archivo. Si el número es alto entonces archivo directo, de lo contrario secuencial.