Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf ·...

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

Transcript of Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf ·...

Page 1: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

Almacenamiento y Recuperación de la Información

Estructuras basicas de archivosArchivos Secuenciales

2do Semestre 2005Wenceslao Palma M. <[email protected]>

www.inf.utfsm.cl/~wpalma/ari

Page 2: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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.

Page 3: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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.

Page 4: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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

Page 5: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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.

Page 6: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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

Page 7: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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.

Page 8: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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.

Page 9: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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.

Page 10: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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.

Page 11: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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       Rut, Nombre, Dirección, Region From       alumnosOrder BY   Region

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?

Page 12: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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.

Main memory buffers

INPUT 1

INPUT 2

OUTPUT

DiskDisk

Page 13: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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.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.

 . . . . Paso n. 

Seleccionar y leer 2 runs escritas en el paso n­1Mezclar sus registros con respecto al criterio de ordenamiento.Escribir el resultado (run de 2n páginas) a disco.

Page 14: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

Input file

1­page runs

2­page runs

4­page runs

PASS 0

PASS 1

PASS 2

PASS 3

9

3,4 6,2 9,4 8,7 5,6 3,1 2

3,4 5,62,6 4,9 7,8 1,3 2

2,34,6

4,78,9

1,35,6 2

2,34,46,78,9

1,23,56

1,22,33,44,56,67,8

En cada paso se leen/escriben las N páginas del archivo.

El número de pasos es 1 + log

2N

Cada paso involucra operaciones de I/O. La cantidad de operaciones de I/O es:2N(1 + log

2N), 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?

Page 15: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

INPUT 1

INPUT B­1

OUTPUT

DiskDisk

INPUT 2

. . . . . .. . .

Considerando B buffers:Paso 0. 

Se generan N/B runs de B páginas cada una, excepto la última que  podría tener menos.

Paso 1....Seleccionar B­1 runs del paso anterior.Realizar una mezcla de B­1 vías usando la B­ésima  página como  buffer de 

salida.

Page 16: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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 logB­1

N/B. Luego, el total de operaciones de I/O es 2N

(1+logB­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=257100 7 4 3 2 1 11,000 10 5 4 3 2 210,000 13 7 5 4 2 2100,000 17 9 6 5 3 31,000,000 20 10 7 5 3 310,000,000 23 12 8 6 4 3100,000,000 26 14 9 7 4 41,000,000,000 30 15 10 8 5 4

Page 17: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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.

Page 18: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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 

Page 19: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

Caso 2:Paso 1: 175/3=53Paso 2: 53/3=18Paso 3: 18/3=6Paso 4: 6/3=2Paso 5: 2/3=1

tiempo por cada paso: (10+5+(1*16))*2*(10000/16)=38.75 segtiempo total: 5*38.75=193.75 seg

Caso 3:Cantidad de pasos: log

13175=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 segt_escritura: (10+5+(1*12)*2*(10000/12)=22.52 segtiempo total: 2(t_lectura+t_escritura)=140.04 seg

Page 20: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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 BinariosLa gran ventaja es que permiten búsqueda binaria, pero los tiempos de recuperación se 

ven afectados por un eventual desbalanceo.

reg<clave reg>claveclave+

registro completo

Page 21: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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:

P0 K

0P

1P

2 ................... Pn­1

PnK

1K

2K

n­1

Donde:  P0........P

n son apuntadores a nodos de subárboles.

K0.........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

Page 22: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

Todos los valores de las claves que estan en los nodos del subárbol apuntado por Pi son menores 

al valor de la clave Ki.

Todos  los  valores  de  las  claves  que  estan  en  los  nodos  del  subárbol  apuntado  por  Pn

 son mayores al valor de la clave K

n­1.

Los subárboles apuntados por Pi también son árboles de búsqueda de m­vías.

Construya un árbol de 3 vías dada la siguiente secuencia50­100­20­40­15­30­70­120­140­130­136

Page 23: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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

Page 24: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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.

registro1

registro2

registro3

registro4

slot

Bucket

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.

Page 25: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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.

Page 26: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

(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.

registro1

registro2

registro3

registro4

registro5

registro6

Overflow

Overflow Unificado

registro1

registro2

registro3

registro4

registro5

registro6

Overflow Exclusivo

Overflow

Overflow

Page 27: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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.

Page 28: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

Existen 2 tipos de nodo:nodo interno: guían la búsqueda.nodo hoja: apuntan hacia un bucket.

Ejemplo: Suponer buckets con fb=4. Crear un archivo directo en base a:

7 000111 41 10100121 01010148 11000043 1010116 00011016 01000015 00111142 10101025 01100118 01001020 010100

0

1nodo interno

nodo hoja

Page 29: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

7 000111 41 10100121 01010148 11000043 1010116 00011016 01000015 00111142 10101025 01100118 01001020 010100

7412148

Al  ingresar 43 el bucket entra en overflow. Además, es posible ingresar 6 y 16 sin problemas.

721616

414843

0

1

Page 30: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

7 000111 41 10100121 01010148 11000043 1010116 00011016 01000015 00111142 10101025 01100118 01001020 010100

Al ingresar 15 hay overflow!!

7615

2116251841

484342

0

0

1

1

Además, es posible ingresar 42, 25 y 18 sin problemas.

Page 31: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

7 000111 41 10100121 01010148 11000043 1010116 00011016 01000015 00111142 10101025 01100118 01001020 010100

Al ingresar 20 hay overflow!!

76

15

21161820

41484342

0

0

1

1

25

0

1

Page 32: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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.

Page 33: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

Ejercicio:  Considerando  las  siguientes  transformaciones  de  claves,  Construya  un  archivo  utilizando hashing extendido.

ed 111010001010tom 001101101000sam 111100010100ann 010011010001kim 100111010100kely 011011011110mindy 110111000101mark 110001011001chris 111001110011laura 001011010101sue 101110001100jill 111000110010amy 111000011101

Inicialmente d=0. fb=4.

ed .....1010tom .....1000sam         .....0100

ann .....0001   

Page 34: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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

0

1

ed .....1010tom .....1000sam . ....0100

kim .....0100   

ann .....0001   

Page 35: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

ed  111010001010tom  001101101000sam  111100010100ann  010011010001kim  100111010100kely  011011011110mindy  110111000101mark  110001011001chris  111001110011laura  001011010101sue  101110001100jill  111000110010amy  111000011101

Al agregar kely hay overflow. Ahora d=2

00

01

10

11

tom .....1000sam .....0100

kim .....0100   

ed .....1010kely .....1110

ann .....0001mindy .....0101mark .....1001chris .....0011  

Además, es posible agregar mindy, mark y chris sin problemas!!!

Page 36: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

00

01

10

11

tom .....1000sam .....0100kim .....0100

sue .....1100  

ed .....1010kely .....1110jill .....0010

ann .....0001mindy .....0101mark .....1001

laura .....0101  

ed 111010001010tom 001101101000sam 111100010100ann 010011010001kim 100111010100kely 011011011110mindy 110111000101mark 110001011001chris 111001110011laura 001011010101sue 101110001100jill 111000110010amy 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!!

chris .....0011

  

Page 37: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

ed 111010001010tom 001101101000sam 111100010100ann 010011010001kim 100111010100kely 011011011110mindy 110111000101mark 110001011001chris 111001110011laura 001011010101sue 101110001100jill 111000110010amy 111000011101

000

001

010

011

tom .....1000sam .....0100kim .....0100

sue .....1100  ed .....1010kely .....1110jill .....0010

ann .....0001mark .....1001

mindy .....0101laura .....0101amy .....1101  

100

101

110

111

chris.....0011

  

Page 38: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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 h0 .

● 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.

Page 39: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

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.

Page 40: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

 Tipos de consultas

Simple: depto='informatica'Rango: sueldo>1000000Lógica: depto='informatica' y sueldo>1000000Patrones: 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.

Page 41: Almacenamiento y Recuperación de la Informaciónwpalma/ari/estructuras_de_archivos.pdf · dispositivos de almacenamieno secundario. Para escoger una estructura de archivo se consideran

Volumen del archivo

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