ING. YIM ISAIAS APESTEGUI -...

39
Archivos Secuenciales Indexados ING. YIM ISAIAS APESTEGUI FLORENTINO Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA APESTEGUI FLORENTINO 1

Transcript of ING. YIM ISAIAS APESTEGUI -...

Archivos SecuencialesIndexados

ING. YIM ISAIAS APESTEGUI FLORENTINO

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO1

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 INDEXADOSARCHIVOS INDEXADOSARCHIVOS DIRECTOS O DE DISPERSION

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO2

Reg 1Reg 2

Reg 3

Reg n

CAMPOS

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO3

Es la forma más fácil de organizarun archivo. Los datos se recogen en elorden en que llegan.

Su objetivo es simplementeacumular una masa de datos yguardarla.

Los registros pueden tener camposdiferentes o similares en un ordendistinto. Cada campo debe serautodescriptivo, incluyendo tanto uncampo de nombre como el valor. Lalongitud de cada campo debe indicarseimplícitamente con delimitadores,explícitamente incluidos como unsubcampo más.

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO4

El acceso a los registros se hacepor búsquedas exhaustiva y sonfáciles de actualizar. Si se quiereencontrar un registro que contiene uncampo particular y un valordeterminado, es necesario examinarcada registro de la pila hastaencontrar el registro deseado. Si sequieren encontrar todos los registrosque contienen un campo particular oque tienen un valor determinado paraese campo, debe buscarse el archivoentero.

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO5

Se aplica cuando los datos serecogen o almacenan antes deprocesarlos o cuando no sonfáciles de organizar. Esta clase dearchivo aprovecha bien el espaciocuando los datos almacenadosvarían en tamaño y estructura.Fuera de estos usos limitados,este tipo de archivos no seadapta a la mayoría de lasaplicaciones.

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO6

Es la forma más común deestructura de archivos.

Se emplea un formato fijo para losregistros, son de la misma longitud yconstan del mismo número de camposde tamaño fijo con un ordendeterminado.

Se necesita almacenar los valoresde cada campo; el nombre del campo yla longitud de cada uno son atributosde la estructura del archivo. Cadaregistro tiene un campo clave que loidentifica (generalmente es el primerode cada registro). Los registros sealmacenan en secuencia por la clave.

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO7

Se utilizan normalmente en aplicacionesde procesos por lotes, ya que es la únicaorganización de archivos que se puedeguardar tanto en cintas como en discos.

Para las aplicaciones interactivas queincluyen peticiones o actualizaciones deregistros individuales, los archivossecuenciales no son óptimos. El accesorequiere una búsqueda secuencial decorrespondencias con la clave. Si el archivoentero o gran parte de él pueden traerse a lamemoria principal de una sola vez, se podránaplicar técnicas de búsquedas más eficientes.Al acceder un registro de un archivosecuencial grande, se produce unprocesamiento extra y un retardoconsiderable.

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO8

La organización física del archivo en unacinta o disco se corresponde exactamentecon la organización lógica del archivo, por lotanto el procedimiento habitual es ubicar losnuevos registros en un archivo de pilaseparado, es llamado archivo de registro oarchivo de transacciones.

Una alternativa es organizarfísicamente el archivo secuencial comouna lista enlazada, en cada bloque físicose almacena uno o más registros y cadabloque del disco contiene un puntero albloque siguiente. La inserción de unnuevo registro implica la manipulación depuntero, pero no requiere que el nuevoregistro ocupe una posición particular delbloque físico.

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO9

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 FLORENTINO10

Cada registro tiene que poseer una clave (K) que es la que permite ordenar el fichero. Enbase 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 eltiempo de proceso que consume esta operación).

K C1 C2 C3 C4

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO11

Por ello se prepara un archivo separado donde aparece cada clave y la posición queocupan 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 FLORENTINO12

CODIGO RAZON_SOCIAL EMAIL RET POSICION12051671520 PESQUERA LARIMETS [email protected] 010000000005 CLAN S.A [email protected] 110027379350 FIESTAS MORALES FELIX DAVID [email protected] 210027380170 MANUEL VIDAURE [email protected] 310027393140 PAZO QUEREVALU [email protected] 410027428831 GILBERTO PANTA [email protected] 510027576945 TEMOCHE ECHE SANTOS [email protected] 610027584867 PANTA PANTA PATRICIO [email protected] 710028621715 QUEREVALU PERICHE MANUEL [email protected] 810067671819 RAMSEY VARON HIDALGO [email protected] 910068172204 PERU ROBLES [email protected] 1010069842921 JUANA MARTINEZ DE [email protected] 1110073697994 REYNALDO RAMOS [email protected] 1210087161175 UBALDO EMMA [email protected] 1310089498568 LUIS EMILIO QUINTANA [email protected] 1410090993009 VILCAPOMA CLEMENTE MAXIMO [email protected] 1510096740447 WASHINGTON NATAL GRANDA [email protected] 1610155888011 PEREZ CARRILLO [email protected] 1710155890661 LUNA BAZALAR EUGENIO [email protected] 1810155892574 MANRIQUE MIRANDA [email protected] 1910155963315 ZERILLO BAZALAR [email protected] 2010156027915 ZERILLO PAZ ANTONIO [email protected] 2110165888907 HUAMANCHUMO ZUÑE [email protected] 2210165915742 ARTURO HUAMANCHUMO ZUÑ[email protected] 2310165984302 JACINTO PALACIOS [email protected] 24

10000000001 52110000000002 52210000000003 52310000000004 52410000000005 110016367564 14610027379350 210027380170 310027393140 410027428831 510027576945 610027584867 710028621715 810029407878 51510032795207 51610032816779 51710032820848 51810032865358 51910040614754 52010067671819 910068172204 1010069842921 1110073697994 1210087161175 1310089498568 1410090993009 15

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO13

En el índice las claves aparecen ordenadas, hay un segundo campo que permite indicar enqué 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 FLORENTINO14

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 FLORENTINO15

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 FLORENTINO16

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 FLORENTINO17

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 FLORENTINO18

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 FLORENTINO19

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 FLORENTINO20

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 FLORENTINO21

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 FLORENTINO22

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 FLORENTINO23

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 FLORENTINO24

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO25

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. Cada nodo tiene como máximo M hijos.2. Cada nodo (excepto raíz y hojas) tiene como mínimo M/2 hijos.3. La raíz tiene al menos 2 hijos si no es un nodo hoja.4. Todos los nodos hoja aparecen al mismo nivel.5. Un nodo no hoja con k hijos contiene k-1 elementos almacenados.6. 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 FLORENTINO27

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 FLORENTINO28

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO29

Veamos un ejemplo. Supongamos que queremos insertar la clave 52 en el árbol.

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO30

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO31

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 FLORENTINO32

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 FLORENTINO33

Veamos un ejemplo. Supongamos que queremos insertar la clave 68 en el árbol .

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO34

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO35

¿Este problema que implicará que aumente la altura del árbol.?....

Organización de Archivos: Archivos Secuenciales Indexados ING. YIM ISAISA

APESTEGUI FLORENTINO36

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 FLORENTINO37

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 FLORENTINO38

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 FLORENTINO39