Archivos Secuenciales Indexados ING. YIM ISAIAS APESTEGUI

Anuncio
Archivos Secuenciales
Indexados
ING. YIM ISAIAS APESTEGUI
FLORENTINO
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
1
Introducción:
La mayor parte de las estructuras de
organizaciones alternativas de archivos se
encuentran dentro de estas cinco categorías:
PILAS,
ARCHIVOS SECUENCIALES,
ARCHIVOS SECUENCIALES INDEXADOS
ARCHIVOS INDEXADOS
ARCHIVOS DIRECTOS O DE DISPERSION
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
2
Reg 1
Reg 2
CAMPOS
Reg 3
Reg n
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
3
Es la forma más fácil de organizar
un archivo. Los datos se recogen en el
orden en que llegan.
Su
objetivo
es
simplemente
acumular una masa de datos y
guardarla.
Los registros pueden tener campos
diferentes o similares en un orden
distinto. Cada campo debe ser
autodescriptivo, incluyendo tanto un
campo de nombre como el valor. La
longitud de cada campo debe indicarse
implícitamente
con
delimitadores,
explícitamente incluidos como un
subcampo más.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
4
El acceso a los registros se hace
por búsquedas exhaustiva y son
fáciles de actualizar. Si se quiere
encontrar un registro que contiene un
campo particular
y un valor
determinado, es necesario examinar
cada registro de la pila hasta
encontrar el registro deseado. Si se
quieren encontrar todos los registros
que contienen un campo particular o
que tienen un valor determinado para
ese campo, debe buscarse el archivo
entero.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
5
Se aplica cuando los datos se
recogen o almacenan antes de
procesarlos o cuando no son
fáciles de organizar. Esta clase de
archivo aprovecha bien el espacio
cuando los datos almacenados
varían en tamaño y estructura.
Fuera de estos usos limitados,
este tipo de archivos no se
adapta a la mayoría de las
aplicaciones.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
6
Es la forma más común de
estructura de archivos.
Se emplea un formato fijo para los
registros, son de la misma longitud y
constan del mismo número de campos
de tamaño fijo con un orden
determinado.
Se necesita almacenar los valores
de cada campo; el nombre del campo y
la longitud de cada uno son atributos
de la estructura del archivo. Cada
registro tiene un campo clave que lo
identifica (generalmente es el primero
de cada registro). Los registros se
almacenan en secuencia por la clave.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
7
Se utilizan normalmente en aplicaciones
de procesos por lotes, ya que es la única
organización de archivos que se puede
guardar tanto en cintas como en discos.
Para las aplicaciones interactivas que
incluyen peticiones o actualizaciones de
registros
individuales,
los
archivos
secuenciales no son óptimos. El acceso
requiere una búsqueda secuencial de
correspondencias con la clave. Si el archivo
entero o gran parte de él pueden traerse a la
memoria principal de una sola vez, se podrán
aplicar técnicas de búsquedas más eficientes.
Al acceder un registro de un archivo
secuencial
grande,
se
produce
un
procesamiento
extra
y
un
retardo
considerable.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
8
La organización física del archivo en una
cinta o disco se corresponde exactamente
con la organización lógica del archivo, por lo
tanto el procedimiento habitual es ubicar los
nuevos registros en un archivo de pila
separado, es llamado archivo de registro o
archivo de transacciones.
Una
alternativa
es
organizar
físicamente el archivo secuencial como
una lista enlazada, en cada bloque físico
se almacena uno o más registros y cada
bloque del disco contiene un puntero al
bloque siguiente. La inserción de un
nuevo registro implica la manipulación de
puntero, pero no requiere que el nuevo
registro ocupe una posición particular del
bloque físico.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
9
Una de los puntos más complicados
de la manipulación de archivos es
la posibilidad de mantener
ordenados los ficheros.
Para ello, se utiliza un fichero
auxiliar conocido como índice.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
10
K
C1
C2
C3
C4
Cada registro tiene que poseer una
clave (K) que es la que permite
ordenar el fichero. En
base de esa clave se genera el
orden de los registros. Si no
dispusiéramos de índice, cada vez
que se añade un registro más al
archivo habría que regenerar el
archivo entero (con el
tiempo de proceso que consume
esta operación).
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
11
Por ello se prepara un archivo separado donde
aparece cada clave y la posición que
ocupan en el archivo.
Al añadir un registro se añade al final del archivo.
El que sí habrá que reorganizar es el fichero de
índices para que se actualicen, pero cuesta menos
organizar dicho archivo ya que es más corto.
Ver el siguiente ejemplo:
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
12
CODIGO
12051671520
10000000005
10027379350
10027380170
10027393140
10027428831
10027576945
10027584867
10028621715
10067671819
10068172204
10069842921
10073697994
10087161175
10089498568
10090993009
10096740447
10155888011
10155890661
10155892574
10155963315
10156027915
10165888907
10165915742
10165984302
RAZON_SOCIAL
EMAIL
RET POSICION
PESQUERA LARIMETS
12051671520@corteza.com.pe
S.R.L
SI
0
CLAN S.A
10000000005@corteza.com.pe
NO 1
FIESTAS MORALES FELIX
10027379350@corteza.com.pe
DAVID
SI
2
MANUEL VIDAURE PURIZACA
10027380170@corteza.com.pe
NO 3
PAZO QUEREVALU JOSE
10027393140@corteza.com.pe
SI
4
GILBERTO PANTA PANTA.
10027428831@corteza.com.pe
NO 5
TEMOCHE ECHE SANTOS
10027576945@corteza.com.pe
LEONARDO SI
6
PANTA PANTA PATRICIO
10027584867@corteza.com.pe
NO 7
QUEREVALU PERICHE
10028621715@corteza.com.pe
MANUEL ANTONIO
SI
8
RAMSEY VARON HIDALGO
10067671819@corteza.com.pe
MALPICA NO 9
PERU ROBLES PALACIOS
10068172204@corteza.com.pe
SI
10
JUANA MARTINEZ DE
10069842921@corteza.com.pe
YATACO
NO 11
REYNALDO RAMOS RODRIGUEZ
10073697994@corteza.com.pe
SI
12
UBALDO EMMA SERNA
10087161175@corteza.com.pe
NO 13
LUIS EMILIO QUINTANA
10089498568@corteza.com.pe
VELIZ
SI
14
VILCAPOMA CLEMENTE
10090993009@corteza.com.pe
MAXIMO
NO 15
WASHINGTON NATAL
10096740447@corteza.com.pe
GRANDA MARES SI
16
PEREZ CARRILLO EDITH
10155888011@corteza.com.pe
NO 17
LUNA BAZALAR EUGENIO
10155890661@corteza.com.pe
CONSTANTINO
SI
18
MANRIQUE MIRANDA
10155892574@corteza.com.pe
HECTOR
NO 19
ZERILLO BAZALAR CARLOS
10155963315@corteza.com.pe
SI
20
ZERILLO PAZ ANTONIO
10156027915@corteza.com.pe
LORENZO
NO 21
HUAMANCHUMO ZUÑE
10165888907@corteza.com.pe
MAX
SI
22
ARTURO HUAMANCHUMO
10165915742@corteza.com.pe
ZUÑE.
SI
23
JACINTO PALACIOS 10165984302@corteza.com.pe
ANTONIA
NO 24
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
10000000001
10000000002
10000000003
10000000004
10000000005
10016367564
10027379350
10027380170
10027393140
10027428831
10027576945
10027584867
10028621715
10029407878
10032795207
10032816779
10032820848
10032865358
10040614754
10067671819
10068172204
10069842921
10073697994
10087161175
10089498568
10090993009
521
522
523
524
1
146
2
3
4
5
6
7
8
515
516
517
518
519
520
9
10
11
12
13
14
15
13
En el índice las claves aparecen ordenadas, hay un
segundo campo que permite indicar en
qué posición del archivo de datos se encuentra el
registro con esa clave.
El problema es la reorganización del archivo de
índices, que se tendría que hacer cada vez que se
añade un registro para que aparezca ordenado.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
14
Los registros se organizan en
una secuencia basada en un campo
clave presentando dos
características, un índice del archivo
para soportar los accesos aleatorios
y un archivo de desbordamiento.
El índice proporciona una capacidad
de búsqueda para llagar
rápidamente al registro deseado y el
archivo de desbordamiento es similar
al archivo de registros usado en un
archivo secuencial, pero está
integrado de forma que los archivos
de desbordamiento se ubiquen
siguiendo un puntero desde su
registro predecesor.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
15
La estructura más simple tiene como índice un
archivo secuencial simple, cada registro del archivo
índice tiene dos campos, un campo clave igual al del
archivo principal y un puntero al archivo principal.
Para encontrar un campo específico se busca en
el índice hasta encontrar el valor mayor de la clave
que es igual o precede al valor deseado de la clave,
la búsqueda continua en el archivo principal a partir
de la posición que indique el puntero.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
16
Cada registro del archivo principal tiene un campo
adicional que es un puntero al archivo de
desbordamiento.
Cuando se inserta un nuevo registro al archivo,
también se añade al archivo de desbordamiento.
El registro del archivo principal que precede
inmediatamente al nuevo registro según la secuencia
lógica se actualiza con un puntero del registro nuevo en
el archivo de desbordamiento, si el registro
inmediatamente anterior está también en el archivo de
desbordamiento se actualizará el puntero en el registro.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
17
Para procesar secuencialmente un archivo
completo los registros del archivo principal se
procesarán en secuencia hasta encontrar un
puntero al archivo de desbordamiento, el acceso
continua en el archivo de desbordamiento hasta
que encuentra un puntero nulo, entonces renueva
el acceso donde se abandonó en el archivo
principal.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
18
En las ciencias de la computación, los árboles-B ó Bárboles son estructuras de datos de árbol que se
encuentran comúnmente en las implementaciones
de bases de datos y sistemas de archivos. Los
árboles B mantienen los datos ordenados y las
inserciones y eliminaciones se realizan en tiempo
logarítmico amortizado
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
19
La idea tras los árboles-B es que los nodos internos
deben tener un número variable de nodos hijo
dentro de un rango predefinido. Cuando se inserta
o se elimina un dato de la estructura, la cantidad
de nodos hijo varía dentro de un nodo. Para que
siga manteniéndose el número de nodos dentro
del rango predefinido, los nodos internos se juntan
o se parten.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
20
Dado que se permite un rango variable de nodos hijo,
los árboles-B no necesitan rebalancearse tan
frecuentemente como los árboles binarios de búsqueda
auto-balanceables, pero por otro lado pueden
desperdiciar memoria, porque los nodos no
permanecen totalmente ocupados. Los límites superior
e inferior en el número de nodos hijo son definidos para
cada implementación en particular. Por ejemplo, en un
árbol-B 2-3 (A menudo simplemente llamado árbol 2-3
), cada nodo sólo puede tener 2 ó 3 nodos hijo.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
21
Un árbol-B se mantiene
balanceado porque
requiere que todos los
nodos hoja se
encuentren a la misma
altura.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
22
Los árboles B tienen ventajas sustanciales sobre
otras implementaciones cuando el tiempo de acceso
a los nodos excede al tiempo de acceso entre nodos.
Este caso se da usualmente cuando los nodos se
encuentran en dispositivos de almacenamiento
secundario como los discos rígidos. Al maximizar el
número de nodos hijo de cada nodo interno, la
altura del árbol decrece, las operaciones para
balancearlo se reducen, y aumenta la eficiencia.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
23
Los creadores del árbol B, Rudolf Bayer y Ed McCreight, no
han explicado el significado de la letra B de su nombre.
Se cree que la B es de balanceado, dado que todos los nodos
hoja se mantienen al mismo nivel en el árbol.
La B también puede referirse a Bayer, o a Boeing, porque sus
creadores trabajaban en el Boeing Scientific Research Labs en
ese entonces.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
24
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
25
B-árbol es un árbol de búsqueda que puede estar vacío o aquel cuyos nodos pueden
tener varios hijos, existiendo una relación de orden entre ellos, tal como muestra el
dibujo anterior.
Un árbol-B de orden M (el máximo número de hijos que puede tener cada nodo) es un
árbol que satisface las siguientes propiedades:
1.
2.
3.
4.
5.
6.
Cada nodo tiene como máximo M hijos.
Cada nodo (excepto raíz y hojas) tiene como mínimo M/2 hijos.
La raíz tiene al menos 2 hijos si no es un nodo hoja.
Todos los nodos hoja aparecen al mismo nivel.
Un nodo no hoja con k hijos contiene k-1 elementos almacenados.
Los hijos que cuelgan de la raíz (r1, ···, rm) tienen que cumplir ciertas condiciones:
6.1 El primero tiene valor menor que r1.
6.2 El segundo tiene valor mayor que r1 y menor que r2, etc.
6.3 El último hijo tiene valor mayor que rm.
La profundidad (h) es el número máximo de consultas para encontrar una clave.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
26
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
27
Cuando se crean árboles-B para indexar ficheros de
datos en disco, intervienen otras condiciones. En ese
caso interesa que el número de accesos a disco sea
lo más pequeño posible. Para calcular el ORDEN se
usa como dato el tamaño del cluster. Un cluster es el
bloque de disco más pequeño que se lee o se escribe
en una operación de acceso a disco, su tamaño suele
ser distinto según el tamaño de disco y el tipo de
formato que tenga, puede variar entre 512 bytes y
múltiplos de esa cantidad. El ORDEN se ajusta de
modo que el tamaño del nodo sea lo más próximo
posible, menor o igual, al tamaño del cluster.
Las operaciones que se pueden realizar en un árbol-B son básicamente tres:
Insertar una clave.
Eliminar una clave.
Buscar una clave.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
28
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
29
Veamos un ejemplo. Supongamos que queremos insertar la
clave 52 en el árbol.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
30
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
31
No hay espacio para almacenar la clave en nodo,
por lo tanto creamos un nuevo nodo:
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
32
Ahora tenemos que promocionar la clave intermedia,
insertándola en el nodo padre. El proceso puede ser
recursivo, aunque el algoritmo diseñado es iterativo.
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
33
Veamos un ejemplo. Supongamos que queremos insertar la
clave 68 en el árbol .
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
34
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
35
¿Este problema que
implicará que
aumente la altura
del árbol.?....
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
36
En primer lugar, dividimos nodo en
dos, repartimos las claves y
promocionamos el valor intermedio, el
69:
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
37
Ahora estamos de nuevo en la misma situación, el
anterior nodo pasa a ser el nodo padre, y el padre de
éste es null. Ahora procedemos igual, dividimos nodo
en dos, separamos las claves, y promocionamos el
valor intermedio:
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
38
Y otra vez repetimos el proceso, el algoritmo funciona de forma
recursiva, pero en este caso nodo es null, por lo tanto estamos en un
caso diferente, según el algoritmo debemos crear un nuevo nodo,
hacer que ese nodo sea el de entrada, insertar la clave y actualizar
los punteros:
Organización de Archivos: Archivos
Secuenciales Indexados ING. YIM ISAISA
APESTEGUI FLORENTINO
39
Descargar