Está en la página 1de 15

1

UNIDAD 2
ESTRUCTURAS BSICAS DE
ARCHIVOS
2
Estructuras Bsicas de Archivos
Una estructura de archivos es una
tcnica para agrupar fsicamente los
registros de un archivo en dispositivos
de almacenamiento secundario
3
Aspectos a considerar
Caractersticas fsicas de los dispositivos
de almacenamiento
Sistema Operativo existente
Software para la administracin de
archivos
Necesidades del usuario para almacenar
y accesar datos
4
Criterios importantes
Acceso rpido para la recuperacin de
datos
Alto rendimiento para las transacciones
de procesamiento
Uso eficiente del espacio en disco
Proteccin ante prdida de datos y
fallas
Minimizacin de la necesidad de
reorganizacin de los datos
5
Organizacin Lgica de los Datos
Archivo:
Coleccin de registros estructurados
En torno a una clave
Independiente del dispositivo
Interesa ms su uso que sus
atributos fsicos
6
Operaciones sobre archivos
Recorrer el archivo
Agregar registros al archivo
Eliminar registros del archivo
Modificar valores del archivo
Ordenar el archivo
2
7
Conceptos
a) Registro: corresponde a la definicin de
cada uno de los registros de datos que
sern usados dentro de una aplicacin, y
cuya extensin determina el tipo de archivo
que lo contiene
8
Tipos de Archivo
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 nmero 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 ms de un tipo de registro.
9
Conceptos
b) Campo o Atributo (clave): tem de dato
que describe una caracterstica de la entidad
representada por un registro lgico. Tipos:
a) 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.
b) Identificador o Clave Primaria: clave candidata escogida
como clave de acceso principal al archivo, dado su
constante uso en los accesos al mismo.
c) Clave Alternativa: clave candidata que no es escogida
como identificador.
d) Clave Secundaria: atributo que permite valores repetidos.
e) Clave Inteligente: atributo cuyo contenido permite derivar
informacin adicional de la entidad a la cual pertenece.
10
2.1 Archivos Secuenciales
Los registros son almacenados en secuencia,
uno tras otro. Caractersticas:
Es la ms simple de usar.
Espacio ocupado es el mnimo, pues slo
se almacenan los datos.
Se pueden identificar dos tipos de archivos
secuenciales: desordenado y ordenado
11
2.1.1 Archivos Secuenciales
Desordenados
Los registros se almacenan unos tras otros,
segn el orden en que van siendo ingresados
Operaciones
Bsqueda: Se realiza en forma lineal.
Insercin: Se realiza al final del archivo, lo que
hace que la operacin sea rpida.
Eliminacin: Se puede presentar de dos formas:
Fsica: lo cual implica corrimientos de los datos, para
cubrir la entrada liberada (costoso).
Lgica: a travs de marcas de borrado.
En ambos casos, es necesario hacer una reorganizacin
de los registros
12
2.1.2 Archivos Secuenciales
Ordenados
Los registros se encuentran almacenados en
forma ordenada (ascendente o
descendentemente) respecto del valor de un
campo de ordenamiento.
Favorece las bsquedas y la generacin de
listados ordenados.
Operaciones
Bsqueda: Se realiza en forma lineal y/o binaria.
Insercin: Requiere un corrimiento de los
registros para mantener el orden.
3
13
2.1.2 Archivos Secuenciales
Ordenados
Para evitar el corrimiento al insertar, existen varias
tcnicas posibles:
Dejar los bloques de datos a medio llenar, para reservar
espacio para posibles inserciones futuras. Mientras no se
llenen, habr desperdicio de memoria.
Mantener un rea de overflow a continuacin del rea de
datos, con campos punteros que apunten a sta.
Incluir a cada bloque de datos un puntero que direccione
a una lista enlazada de bloques de overflow. Puede
aumentar las bsquedas.
Se considera el archivo real de datos como el archivo
maestro o principal, y se van almacenando en un archivo
de overflow no ordenado. Al actualizar el maestro, se
debe ordenar el archivo de overflow y luego realizar la
mezcla de los archivos.
14
2.1.2 Archivos Secuenciales
Ordenados
Eliminacin: Se puede presentar de dos formas:
Fsica: lo cual provoca grandes espacios libres en cada
bloque.
Lgica: a travs de marcas de borrado.
En ambos casos, es necesario hacer una reorganizacin
de los registros
Ejemplo
Archivo Secuencial Desordenado, cuyo factor de bloqueo es 4
Ejemplo
Archivo Secuencial Ordenado, ordenado por el campo Nombre
17
2.1.3 Ordenamiento Externo
Aplicable a archivos que por su tamao no
pueden ordenarse en memoria principal
Consta de dos fases: una fase de
ordenamiento y una fase mezcla
18
Fase de ordenamiento
Se leen datos que son almacenados en
memoria principal, en un rea de
ordenamiento
Usando una rutina de ordenamiento interno
obtiene los registros ordenados, los que son
escritos en dos o ms archivos (particiones)
en memoria secundaria
Los registros en las particiones quedan
ordenados en forma relativa a cada una de
ellas
Posteriormente se mezclan las particiones
4
19
Fase de Mezcla
Se combinan los archivos obtenidos en la fase
anterior, es decir, se mezclan las particiones
generadas en la fase de ordenamiento,
produciendo particiones ms grandes hasta
llegar a una sola particin: el archivo
ordenado
20
Algoritmos para la Fase de
Ordenamiento
Ordenamiento Interno: consiste en leer M
registros de una vez desde el archivo
desordenado, luego se ordenan a travs de
un algoritmo de ordenamiento interno y se
generan particiones de salida. Se asume que
M es el tamao de la memoria principal
disponible (tamao del buffer)
21
Ejemplo Ordenamiento Interno
Suponer que se tiene un archivo de entrada
desordenado con el siguiente contenido:
109 49 34 68 45 2 60 38 28 47
16 19 34 55 98 78 76 40 35 86
10 27 61 92 99 72 11 2
22
Ejemplo Ordenamiento Interno
Al considerar que se tiene un buffer con
capacidad para 5 registros, el resultados
sera:
34 45 49 68 109
2 28 38 47 60
16 19 34 55 98
35 40 76 78 86
10 27 61 92 99
2 11 72
23
Algoritmos para la Fase de
Ordenamiento
Seleccin por Reemplazo: consiste en leer
M registros, e ir generando archivos de salida
aprovechando algn ordenamiento parcial
que pueda existir en el archivo de entrada. Se
asume que M es el tamao de la memoria
principal disponible (tamao del buffer)
24
Ejemplo Seleccin por Reemplazo
Suponer que se tiene un archivo de entrada
desordenado con el siguiente contenido:
109 49 34 68 45 2 60 38 28 47
16 19 34 55 98 78 76 40 35 86
10 27 61 92 99 72 11 2
5
25
Ejemplo Seleccin por Reemplazo
El resultado de aplicar el algoritmo de
seleccin por reemplazo es:
34 45 49 60 68 109
2 16 19 28 34 38 47 55 76 78 86 98
10 27 35 40 61 72 92 99
2 11
26
Algoritmos para la Fase de
Ordenamiento
De esta etapa es importante destacar:
Al tener particiones grandes, se requerirn menos
mezclas; sin embargo, esto no es el nico criterio
a considerar para seleccionar un algoritmo.
Una ventaja del ordenamiento interno es que
genera particiones del mismo tamao, excepto la
ltima.
La seleccin por reemplazo, en promedio, produce
particiones ms grandes que el ordenamiento
interno.
27
Algoritmos para la Fase de
Mezcla
Mezcla N-way balanceada: Las particiones
son agrupadas en dos conjuntos, lo ms
cercanos posibles en cuanto al nmero de
registros que contengan. Los registros de los
archivos de entrada son ledos y las
particiones mezcladas son distribuidas en los
archivos de salida. Esto se realiza en varias
fases, alternando el rol de los archivos entre
stas.
28
Ejemplo Mezcla 2-Way
20 particiones, cada una de 1 registro, y
cuatro archivos, dos de entrada y dos de
salida. La notacin i x j representa i
particiones con j registros.
29
Ejemplo Mezcla 2-Way
Procedimiento de mezcla
Archivo 1 Archivo 2 Archivo 3 Archivo 4
Inicialmente 10 x 1 10 x 1
Despus de Fase 1 5 x 2 5 x 2
Despus de Fase 2 3 x 4 2 x 4
Despus de Fase 3 1 x 8, 1 x 4 1 x 8
Despus de Fase 4 1 x 16 1 x 4
Despus de Fase 5 1 x 20
30
Algoritmos para la Fase de
Mezcla
Mezcla ptima: Las particiones iniciales son
escritas en archivos separados, as se tiene
un conjunto de F archivos cada uno con una
particin. Durante cada fase, las F-1
particiones ms pequeas son ledas y
mezcladas, y la particin mezclada es escrita
en un archivo de salida. Los archivos de
entrada son removidos del conjunto y los
archivos de salida son agregados. El proceso
se repite hasta que el conjunto contiene un
nico archivo.
6
31
Ejemplo Mezcla ptima
Procedimiento de mezcla
Fase Archivo de
Entrada 1
Archivo de
Entrada 2
Archivo de
Entrada 3
Archivo de
Salida
Lecturas
1 1:1 2:1 3:1 21:3 3
2 4:1 5:1 6:1 22:3 3
3 7:1 8:1 9:1 23:3 3
4 10:1 11:1 12:1 24:3 3
5 13:1 14:1 15:1 25:3 3
6 16:1 17:1 18:1 26:3 3
7 19:1 20:1 21:3 27:5 5
8 22:3 23:3 24:3 28:9 9
9 25:3 26:3 27:5 29:11 11
10 28:9 29:11 30:20 20
32
Algoritmos para la Fase de
Mezcla
Mezcla Polifsica: Variacin no
balanceada de la mezcla N-Way
Suponer 31 particiones, cada una con
un registro, y 4 archivos:
Archivo 1 Archivo 2 Archivo 3 Archivo 4 Lecturas
Inicialmente 13 x 1 11 x 1 7 x 1
Despus de Fase 1 6 x 1 4 x 1 7 x 3 21
Despus de Fase 2 2 x 1 4 x 5 3 x 3 20
Despus de Fase 3 2 x 9 2 x 5 1 x 3 18
Despus de Fase 4 1 x 17 1 x 9 1 x 5 17
Despus de Fase 5 1 x 31 31
33
2.1.4 Archivos Secuenciales con
Registros Mixtos
Es posible almacenar en un mismo archivo
registros de diferentes tipos (lo que da origen
a un archivo de largo variable)
Para distinguir los registros de un archivo
mixto, cada registro tiene, adems de los
campos propios, un campo llamado
tipo_registro, el cual especifica el tipo de
registro
34
Ejemplo
Archivo Secuencial con registros mixtos
Tipo_registro = 1 ... ... ...
Tipo_registro = 2 ...
Tipo_registro = 2 ...
Tipo_registro = 1 ... ... ...
Tipo_registro = 2 ...
Tipo_registro = 2 ...
Tipo_registro = 2 ...
35
2.2 Archivos Directos
36
2.2.1 Tipos de Direccionamiento
Una segunda alternativa para
estructurar archivos se basa en la idea
de poder alcanzar un registro en forma
directa, sin tener que accesar los
registros almacenados antes del
requerido. Para tal fin, existen varios
tipos de direccionamiento
7
37
Direccionamiento Directo
Los registros son direccionados en forma
absoluta (es decir, el programa entrega una
direccin de hardware y el mtodo de acceso
ubica el registro) o relativa (en este caso, el
programa entrega un nmero relativo a la
posicin del primer registro en el archivo y el
mtodo de acceso ubica el registro)
La clave primaria sera una direccin de
hardware o un nmero relativo segn sea el
caso
38
Direccionamiento Directo
Ventajas:
No existe transformacin previa de la clave
primaria (eficiente), pero es difcil que la
clave primaria pueda ser una direccin de
hardware (suelen ser cdigos inteligentes
para el usuario y no para la mquina)
No existen problemas de colisiones
Fcil acceso secuencial, pues las claves
pueden ser asignadas en forma ordenada
39
Direccionamiento Directo
Desventajas:
Cualquier cambio de hardware o falla de l,
significara rehacer la asignacin de claves
Claves deben definirse en base a
caractersticas fsicas del dispositivo, y no a
lo que le conviene al usuario
40
Direccionamiento Indirecto
Llamado direccionamiento algortmico
La direccin a ser usada por el S. O.
para ubicar el registro se obtiene con
una funcin de transformacin al valor
de la clave primaria (hashing)
41
Direccionamiento Indirecto
El espacio de almacenamiento es dividido es
secciones llamadas buckets, que pueden
almacenar uno o ms registros lgicos y se
puede seleccionar su capacidad
Un bucket es un bloque del disco o un grupo
de bloques de disco. Est dividido en
casilleros de tamao fijo denominados slots
En la actualidad, la mayora de los SABD
implementan slo este esquema, por lo que
en el resto del curso slo se tratarn los
archivos de tipo hashing
42
2.2.2 Archivos Relativos
Conjunto de datos que se pueden accesar
directamente, conociendo la posicin que
tenga un determinado registro, (posicin
relativa con respecto al comienzo del archivo)
Dicha posicin se puede obtener:
Directamente del valor de un campo del registro
(nmero de lista en un curso, lugar de llegada,
etc.)
Funcin sobre un determinado campo del mismo
registro
ste ltimo esquema presenta el problema de las
llamadas colisiones
8
43
2.2.2 Archivos Relativos
Antes de cualquier operacin de ingreso
de datos, es preciso crear el archivo con
tantos registros en blanco como sean
necesarios a futuro
44
2.2.2 Archivos Relativos
Un registro en blanco se puede
construir de dos formas:
Escoger un campo (clave) el cual no puede
tener valores nulos en un registro activo
Agregar a cada registro un campo
adicional, de tipo lgico, cuyo valor
determine si el registro est activo o no
45
Operaciones
Bsqueda: a travs de la posicin relativa.
En el caso de que se desee accesar todos los
registros (activos) del archivo, se debe hacer
una bsqueda lineal, pero tomando en cuenta
para la salida aquellos registros que no estn
en blanco
Insercin: a travs de la posicin relativa
Eliminacin: a travs de la posicin relativa.
Consiste en anular el valor del campo (clave)
o del campo lgico, dependiendo del caso,
que determina si el registro es nulo o no
46
2.2.3 Archivos de tipo Hashing
Esttico
Archivo de tamao fijo, cuyos registros son
almacenados transformando la clave en una direccin
y guardando el registro en esa direccin
Un registro es recuperado en forma similar: la direccin es
calculada a partir de la clave y el registro es ubicado
Esta bsqueda es muy rpida en comparacin con un
archivo secuencial
La transformacin anteriormente mencionada es una
funcin hashing que transforma la clave en un
nmero de bucket relativo. Una tabla es mantenida
en el encabezado del archivo para convertir el
nmero de bucket en la direccin de bloque de disco
Ejemplo
Considerar la siguiente lista de canciones:
Nombre del Tema Intrprete #Estreno
Crazy in Love Beyonce & Jay-Z 258
Frantic Metallica 593
Go to Sleep RadioHead 367
God puts a Smile upon your Face Coldplay 342
Here we Kum Molotov 287
Hollywood Madonna 125
Just Because Janes Adiction 880
Slvame la vida Lucybell 1502
San Miguel Los Prisioneros 468
Show me How to Live AudioSlave 450
Re-Offender Travis 1473
White Flag Dido 901
Ejemplo
Trabajando sobre un archivo compuesto de
10 buckets, los registros anteriores se van a
ubicar de acuerdo a la posicin que retorne la
funcin h(x) = x % 10 (x es el #Estreno)
As, por ejemplo el primer registro, de clave
258 le corresponde estar guardado en el
bucket h(258) = 258 % 10 = 8
Haciendo este trabajo con todos los registros
de la lista de canciones se tiene el siguiente
archivo hashing esttico:
9
49
Ejemplo
Nombre del Tema Intrprete #Estreno
0 Just Because Janes Adiction 880
Show me How to Live AudioSlave 450
1 White Flag Dido 901
4
2 God puts a Smile upon your Face Coldplay 342
Slvame la vida Lucybell 1502
3 Frantic Metallica 593
Re-Offender Travis 1473
50
Ejemplo
Nombre del Tema Intrprete #Estreno
5 Hollywood Madonna 125
6
9
7 Go to Sleep Radiohead 367
Here we Kum Molotov 287
8 Crazy in Love Beyonce & Jay-Z 258
San Miguel Los Prisioneros 468
51
Archivos Hashing
El uso de un archivo hashing permite recuperar los
registros en su base a su clave con un costo de un
bloque (o cercano). No obstante, el precio que se
paga considera dos posibles tipos de problemas:
Manejo de reas Muertas: puede darse que el algoritmo
no genere todas las direcciones disponibles para almacenar
los datos, por lo cual se generan espacios libres que nunca
son direccionados
Sinnimos o Colisiones: al aplicar la funcin hashing
puede generarse una misma direccin a partir de claves
diferentes. Para solucionarlo conviene tener en cuenta las
tcnicas de tratamiento de overflow
52
Resolucin de Colisiones
Una colisin ocurre cuando el valor del
campo hashing de un nuevo registro a
insertar direcciona a una posicin en la
cual ya existe un registro
Esto obliga a que el nuevo registro se
deba insertar en otra posicin, a travs
de una tcnica de resolucin de
colisiones
53
Direccionamiento Abierto
Almacenar el registro que est en colisin en
la siguiente posicin disponible del rea de
datos
La bsqueda del registro se realiza en forma
secuencial a partir de la direccin generada
por la funcin hashing, hasta:
Encontrar una entrada vaca
Fin de archivo
Determinar que el archivo est lleno
54
Direccionamiento Abierto
Ventajas:
Menos espacio con respecto a tener un rea de
overflow aparte
Dependiendo de la implementacin, puede haber
un menor tiempo requerido para acceder al rea
de overflow, pues como est incorporada a la
misma rea de datos, hay menos cambios de
cilindro
Uso ms ptimo del rea de datos, pues se
minimizan las reas muertas (zonas sin registros)
Desventaja:
Bsqueda lineal de los registros en colisin
10
55
Encadenamiento
Varias localizaciones de overflow son
mantenidas haciendo que un bucket de datos
pueda direccionar un bucket de overflow
Existen dos tipos de encadenamiento:
Encadenamiento Unificado: cuando el bucket
de overflow es compartido por varios buckets de
datos
Encadenamiento Enlazado: cuando el bucket
de overflow es exclusivo de un bucket de datos
56
Encadenamiento
Ventaja:
Se conoce con certeza los buckets donde
hay que buscar un registro.
Desventaja:
Si se usa un bucket del rea de datos para
la cadena de overflow, se puede ayudar a
que se produzca overflow en ese bucket.
57
Hashing Mltiple
Consiste en aplicar distintas funciones
hashing a los registros que estn en
colisin hasta encontrar una posicin
disponible donde almacenarlo
La secuencia en que se aplican las
diferentes funciones hashing debe ser
respetada en la bsqueda posterior de
los registros
58
2.2.4 Tcnicas Hashing con
Expansin Dinmica
Las tcnicas anteriores consideran un espacio
de direccionamiento de tamao fijo
Lo normal es que los archivos vayan
cambiando su tamao constantemente, lo
que debe verse reflejado en la tcnica de
hashing que se utiliza
Existen tres formas bsicas para poder
implementar una expansin dinmica del
tamao del archivo, mediante tcnicas
hashing
59
Hashing Dinmico
Considera, adems del archivo de datos, una
estructura de acceso de tipo jerrquica
Similar a una tcnica de indexacin
El nmero de buckets no es fijo, sino que
aumenta o disminuye segn sea requerido
60
Hashing Dinmico
El archivo puede empezar con un nico
bucket; una vez lleno, si un nuevo registro es
insertado, el bucket entra en overflow y se
divide en dos buckets
Los registros son divididos entre estos dos
buckets, segn el valor del bit ms
representativo de sus valores hashing
En este punto se crea una estructura de rbol
binario, llamada directorio o ndice. Esta
situacin se repite cuanto sea necesario
11
61
Ejemplo
Archivo
de tipo
Hashing
Dinmico
62
Hashing Extendible
Considera, adems del archivo de datos, una
estructura de acceso de tipo arreglo
Similar a una tcnica de indexacin
El directorio que se usa es un arreglo con 2
d
direcciones de buckets (d es la profundidad global
del directorio)
Cada entrada del directorio direcciona a un bucket,
que contiene una profundidad local d (# de bits
sobre el cual se basan los registros contenidos en el
bucket)
63
Hashing Extendible
Los primeros d bits ms significativos de un
valor hashing son usados como ndice al
directorio; la direccin en cada entrada
determina el bucket de almacenamiento
No tiene que existir un bucket por cada
entrada del directorio
64
Ejemplo
Archivo
de tipo
Hashing
Extendible
65
Hashing Lineal
No considera una estructura tipo ndice como las
anteriores
Su uso se basa en la existencia, inicialmente de M
buckets, numerados de 0 a M-1, los cuales van
recibiendo registros de acuerdo a una funcin
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 funcin hashing h
1
Este esquema se sigue repitiendo a medida que el
archivo crece de tamao
66
2.3 Archivos estructurados como
rboles
Son archivos en las cuales los registros
se organizan en bloques, los cuales se
relacionan de forma jerrquica entre s,
de acuerdo a un cierto orden entre los
valores que contiene cada registro
Existen cuatro tipos de rboles posibles
de usar en este mbito
12
67
rboles Binarios
Permiten bsquedas binarias
Desventaja: los tiempos de recuperacin no
son buenos y requieren un gran esfuerzo
para mantener un acceso eficiente a los datos
Tienen un factor de ramificacin de 2, es
decir, cada nodo tiene a lo ms dos
descendientes inmediatos (hijos)
La altura mnima de un rbol con N registros es:
log
2
N + 1
68
rboles Balanceados de
bsqueda binaria (AVL)
rboles binarios con restricciones de
crecimiento. Inventados como una solucin
a los problemas de balanceo encontrados
en los rboles anteriores
Se ha establecido que la altura de un AVL
con N registros est entre:
log
2
(N+1) y 1.44.4 log
2
(N+2) - 0.328
Persisten los problemas de bsqueda
debido a que an se tienen muchos niveles
69
rboles B
No existen problemas con estos rboles en
cuanto a la recuperacin y mantencin como
los rboles binarios, pues son rboles
multiway con operaciones de balanceo
propias (multiway balanceados)
Es el tipo de ndice que tradicionalmente se
ha usado en ambientes relacionales
70
2.3.1 rboles B
Se define un rbol B de orden M a aquel rbol que
cumple con las siguientes condiciones:
Ningn nodo tiene ms de M hijos
Cada nodo, excepto la raz, tiene al menos M/2 hijos y a lo
ms M hijos
La raz, a no ser que el rbol slo tenga un nico nodo, tiene
al menos 2 hijos
Todos los nodos terminales se encuentran en el mismo nivel,
es decir estn a la misma distancia respecto de la raz
Un nodo no terminal con K hijos contiene k-1 registros. Un
nodo terminal contiene al menos M/2 - 1 registros y a lo
ms M-1 registros
71
rboles B
Un nodo B, de orden M, tiene la siguiente estructura
donde puntero
i
apunta a un bloque que contiene
registros cuyos valores son mayores que la clave de
registro
i-1
y menores que la clave de registro
i
As es posible realizar una bsqueda binaria sobre la
estructura de datos y alcanzar los datos
Puntero
1
Registro
1
Puntero
2
Registro
2
Puntero
m-1
Registro
m-1 Puntero
m
72
Ejemplo
rbol B orden 5
Clculo segn tamao de bloque
m
c f i q t
a b d e g h j k l n o p r s u v w
13
73
Operaciones
Bsqueda: Se comienza examinando la raz para
buscar nodo con el registro requerido. Si no es
encontrado, comparaciones con claves identificarn
el puntero. Si es nulo => nivel inferior => registro
buscado no est en el archivo; si no es nulo, accesar
el nodo apuntado, el cual pasa a ser la raz
74
Operaciones
Insercin: Los nuevos registros son insertados en
un nodo terminal (hoja). Para determinar el punto de
insercin, se realiza la misma operacin de bsqueda
anterior
Si la posicin determinada se encuentra dentro de un
nodo totalmente ocupado, ocurre un overflow, lo cual
se resuelve haciendo una divisin (split) del nodo
en tres partes, llevando el registro del medio hacia el
nivel superior para insertarlo en el nodo padre,
dejando a ste ltimo con un hijo ms.
75
Operaciones
Eliminacin: Tambin se debe realizar desde el
nivel de ms abajo
Problema: Borrar un registro de un nodo que tiene la
cantidad mnima de registros permitidos (underflow).
Solucin:
Redistribucin: El nodo adyacente al de underflow tiene una
cantidad de registros mayor al mnimo, mover registros entre el
nodo adyacente y el padre de tal forma de no alterar la
estructura del rbol
Concatenacin: No es posible la redistribucin; mezcla de
nodos, proceso inverso de la divisin de un nodo. Cambia la
estructura del rbol, incluso puede removerse la raz y reducir
en un nivel el rbol
76
2.3.2 Variaciones de los rboles
B
Sobre la estructura de rbol B, se puede decir que ha
sufrido una serie de extensiones a travs del tiempo.
A continuacin se presentan 2 de ellas
77
rbol B virtual
Para alcanzar un nodo, se debe pasar siempre por la
raz (con el consiguiente acceso al disco)
Hay implementaciones en las que el sistema
almacena el nodo raz en la RAM permanentemente
Agilizar las bsquedas
Si hay memoria suficiente, se puede almacenar los
nodos del segundo nivel y ms
Se reducen los accesos al disco y por ende, los tiempos de
respuesta
78
rbol B*
Un rbol B tiene la restriccin de que tiene estar a lo
menos un 50% lleno
Puede provocar que la mayora de los nodos estn un 50%
llenos y un 50% vacos
Se desperdicia casi la mitad del espacio de los bloques
fsicos ocupados
Como una forma de reducir esto, se plantea el rbol
B*
Impone la restriccin de que al menos un 66.6% del nodo
debe estar lleno
14
79
2.4 Criterios para la Seleccin de
la Estructura de un Archivo
En algunas aplicaciones es evidente
cul organizacin y mtodo de acceso
son ms adecuados, pero a veces
conviene tener presente algunos
criterios para hacer una seleccin ms
fundamentada
A continuacin un resumen de los ms
importantes
80
Actividad del Archivo
Nmero de registros de un archivo
usados en un proceso. Se expresa como
una tasa o porcentaje como:
Tasa de Actividad = N de reg. Usados
N Total de reg.
Es posible detallarla ms (tasa de
incorporacin, de eliminacin, de
modificacin o de consulta)
81
Tasa de Actividad
Si tasa de actividad >= 0.6, entonces
se recomienda usar un archivo
secuencial
En caso contrario, usar un esquema
directo
82
Volatilidad del Archivo
Nmero de registros insertados o
eliminados en un archivo existente,
durante un periodo de tiempo
Tasa de volatilidad = Reg. Ingresados + Reg. Eliminados
N de reg.
83
Tasa de Volatilidad
Si la tasa de volatilidad es alta, se
recomienda un archivo secuencial
desordenado, para que los nuevos
registros vayan quedando guardados al
final
Si la tasa de volatilidad es baja,
cualquier estructura de archivo es
conveniente
84
Tipo de Consultas
Simple: como depto = INFORMTICA
Rango: como sueldo > 100.000
Lgica: como depto = INFORMTICA y
sueldo > 100.000
Bsqueda de Patrones: como depto =
Ing%
15
85
Tipo de Consultas
En consultas simples conviene
Archivo secuencial ordenado sobre el atributo de
la consulta (favorecer bsquedas binarias)
Archivo directo o de tipo rbol cuando se trata de
una clave nica
Para las consultas de rango se aconsejan
Archivos secuenciales ordenados sobre el atributo
de la consulta
Esquemas directos que preserven el orden
86
Tipo de Consultas
En consultas lgicas, va a depender si
sus componentes son simples o de
rango
Para las bsquedas de patrones, igual
que consultas simples, siempre y
cuando el patrn a considerar tenga un
prefijo conocido
87
Volumen del Archivo
Nmero de registros que componen el
archivo
Si el nmero es muy alto, es recomendable un
archivo directo para la rpida recuperacin de los
registros
Si el volumen de datos es bajo, usar un archivo
secuencial
Si registros son pequeos, es posible tambin usar una
estructura jerrquica
88
Modo de Recuperacin
Si la recuperacin y actualizacin es por lotes
(proceso tipo batch), cualquier estructura
servira pues los tipos de respuesta no son
crticos
Si la recuperacin y actualizacin es en lnea
(o incluso, en tiempo real), servir cualquier
estructura directa o jerrquica
89
Estructuras de archivos
disponibles
De no haber estructuras jerrquicas, se
puede hacer una simulacin mediante
archivos relativos
De no existir archivos directos, se pueden
usar rboles o archivos secuenciales
ordenados para compensar

También podría gustarte