archivos-indexados2

Anuncio
ESTRUCTURA DE DATOS II
“INDEXIÓN”
SUPRESION
INDICE
- Introducción _______________________________________________3
- ¿Qué es un índice____________________________________________ 4
- Organización de archivo secuencial indexado_______________________4
-Ventajas y desventajas__________________________________________5
- Definición de organización de archivo secuencial indexado____________6
- Aplicación de organización de archivo secuencial indexado____________6
- Características de árboles B, B+ y B+ prefijo simple__________________6
- Declaración de Índices_________________________________________8
- Algoritmo Buscar (B)__________________________________________9
- Algoritmo Insertar (B)_________________________________________10
- Diagrama de flujo suprimir_____________________________________ 11
- Conclusión__________________________________________________12
- Bibliografía_________________________________________________ 13
2
INTRODUCCIÓN
En el presente trabajo se hace una breve investigación de todo lo
referente a Indexación, específicamente su estructuración. Se hace
referencia a un método para superar las desventajas de los archivos
secuenciales, además este procedimiento mantiene las características
básicas de los archivos secuenciales ya que los registros están
organizados en una secuencia basada en un campo, de igual forma
utiliza una técnica basada en índices, ya que este provee una capacidad
de búsqueda para llegar rápidamente a las proximidades de un registro
deseado.
En la actualidad existen varios métodos de indexación, nosotros
escogimos el árbol-B, porque que este es la base de la que se derivan los
demás métodos (B+, B+ prefijo simple), además de que es un índice
relativamente sencillo y que por supuesto esta estructurado como árbol.
¿QUÉ ES UN INDICE?
3
Las ultimas páginas de un libro suelen contener un índice, es decir, un a
tabla que contiene una lista de temas (llaves) y números de pagina en donde
puedan encontrarse esos temas (campos de referencia).
Todos los índices están basados en el mismo concepto básico de llaves y
campos de referencia.
Los índice simples se representan mediante arreglos simples de estructuras
que contienen las llaves y los campos de referencia y también existen índices que
usan estructuras de datos más complejas, especialmente árboles. Los índices
pueden ser muy simples, pero aun así proporcionan herramientas poderosas de
procesamiento de archivos.
Un ejemplo claro de la indexación puede ser el índice de un libro, pues
ofrece una forma de encontrar un tema rápidamente. Un índice es un recurso para
encontrar información .
Organización de archivos secuencial indexado
Las estructuras de archivos secuenciales indexados permiten elegir entre dos
formas alternativas de visualizar un archivo:
 Indexado: el archivo puede verse como un conjunto de registros indexado
por llave.
 Secuencial: Se puede acceder secuencialmente el archivo(con registros
físicamente contiguos, sin hacer desplazamientos), devolviendo los registros
en el orden de la llave.
La idea de tener un solo método organizacional que proporcione ambos
puntos de vista es nueva; hasta ahora se había tenido que elegir alguno de ellos.
Un archivo en organización secuencial indexada consta de las siguientes
partes:
o Área de datos o primaria: contiene los registros en forma secuencial y
esta organizada en secuencia de claves sin dejar huecos intercalados.
o Área de índices: es una tabla que contiene los niveles de índices, la
existencia de varios índices enlazados se denomina nivel de
indexación.
4
o Área de desbordamiento: utilizada, si fuese necesario, para las
actualizaciones.
El área de índices es equivalente, en su función, al índice de un libro.
En ella se refleja el valor de la clave identificadora más alta de cada grupo
de registros del archivo y la dirección de almacenamiento del grupo.
¿Qué sucede si una aplicación incluye tanto el acceso aleatorio interactivo
(indexado) como el procesamiento secuencial coordinado?
Existen muchos ejemplos de tales aplicaciones duales. Por ejemplo, los
sistemas de registros de estudiantes en universidades requieren acceso por llave a
registros individuales, pero también exigen gran cantidad de procesamiento por
lotes, como cuando se obtiene listas de calificaciones o cuando se pagan
colegiaturas durante las inscripciones. En forma similar, los sistemas de tarjetas de
crédito requieren tanto el procesamiento por lotes de captura de cargos como
revisiones interactivas de los estados de cuenta. Los métodos de acceso secuencial
indexado se desarrollaron en respuesta a este tipo de necesidades.
Los archivos secuenciales indexados presentan las siguientes ventajas:
o Rápido acceso.
o El sistema de gestión de archivos se encarga de relacionar la posición
de cada registro con su contenido mediante la tabla de índices.
Y los siguientes inconvenientes:
o Desaprovechamiento del espacio por quedar huecos intermedio cada
vez que se actualiza el archivo.
o Se necesita espacio adicional para el área de índices.
Los soportes que se utilizan para esta organización son los que permiten el
acceso directo, los discos magnéticos. Los soportes de acceso secuencial no
pueden utilizarse, ya que no dispone de direcciones para sus posiciones de
almacenamiento
5
Definición de organización de archivo secuencial indexado
Una manera efectiva de organizar una colección de registros, cuando existe
la necesidad tanto de acceder los registros secuencialmente, por algún valor de
llave, como de accesarlos individualmente , con esa misma llave, es la
organización de archivos secuenciales indexados. Un archivo secuencial indexado
proporciona la combinación de tipos de accesos que maneja un archivo secuencial
y un archivo relativo.
Existen algunos métodos para estructurar las porciones tanto de índices
como de datos secuenciales, de un archivo secuencial indexado. El método más
común es construir el índice como un árbol de valores de llaves. El árbol es
normalmente una variante del árbol-B; ya que de este árbol se derivan el árbol B+
y el árbol B+ de prefijo simple. Los tres tienen amplia aplicabilidad, en particular
en situaciones en que es necesario acceder a un archivo grande tanto en forma
secuencial, en orden por llave, como a través de un índice
Aplicaciones de organización de archivos secuenciales indexados
Debido a su capacidad para manejar tanto acceso secuencial como directo,
la organización secuencial indexada es utilizada frecuentemente para manejar
archivos que son utilizados para procesamiento tanto por lote como interactivo .
Características de los árboles B, B+ y B+ de prefijos simples
Como ya mencionamos anteriormente el árbol B puede acoplarse con un
conjunto de secuencias de bloques para proporcionar un acceso secuencial
indexado efectivo, estos tres tipos de organización de archivos comparten las
siguientes características:
 Todos son estructuras paginadas de índices, lo que significa que llevan
bloques completos de información a la memoria RAM a la vez .
 Los tres métodos mantienen árboles de altura, o sea, los árboles no crecen en
forma dispareja.
6
 Los árboles crecen de abajo hacia arriba.
 Con las tres estructuras es posible obtener mayor eficiencia de
almacenamiento.
 Los tres métodos pueden implantarse como estructuras de árbol virtuales.
 Cualquiera de estos métodos se puede adaptar para usarse con registros de
longitud variable.
Así como existen similitudes existen diferencias.
Árboles B.- Contienen información que se agrupa como un conjunto de parejas.
Un miembro de cada pareja es la llave y el otro es la información asociada. Estas
parejas se distribuyen en todos los nodos del árbol B. En consecuencia, puede
encontrarse la información que se busque en cualquier nivel del árbol B. Esto
difiere de los árboles B+ y de los árboles B+ de prefijo simple, de los cuales se
requiere que las búsquedas lleguen hasta abajo, al nivel inferior del conjunto de
secuencias del árbol. Un árbol B ocupa menos espacio que un árbol B+, ya que
contiene las llaves reales y la información asociada y no necesita espacio adicional
para almacenar separadores.
Los árboles B son más atractivos cuando la llave misma comprende gran parte
de cada registro almacenado en el árbol. Cuando la llave es solo una pequeña parte
de el registro, es posible construir un árbol más ancho y de menor altura usando los
métodos de árboles B+ .
Árboles B+.- Toda la información de las llaves y los registros esta contenida en
un conjunto ligado de bloques conocidos como conjuntos de secuencias. La
información de la llave y el registro no esta en la porción del nivel superior en
forma de árbol del árbol B+. El acceso indexado de este conjunto de secuencias se
proporciona por medio de una estructura conceptualmente separada llamada
conjunto índice.
El conjunto índice en este árbol consiste en copias de las llaves que representan
los limites entre los bloques del conjunto de secuencias. A estas copias de llaves se
les llama separadores porque separa un bloque del conjunto de secuencias de su
predecesor.
7
Ventajas:
 El conjunto de secuencias puede procesarse en forma verdaderamente
lineal y secuencial , proporcionando acceso eficiente a los registros en el
orden de la llave.
 El uso de separadores en lugar de registros completos en el conjunto
índice con frecuencia significa que el número de separadores que pueden
colocarse en un solo bloque del conjunto índice en un árbol B+ excede en
forma sustancial al número de registros que podrían colocarse en un
bloque del mismo tamaño en un árbol B. El método de árbol B+ con
frecuencia puede producir un árbol de menor altura.
Árbol B+ de prefijo simple.- Aprovecha la altura de los árboles haciendo los
separadores de conjuntos simples índice más pequeños que las llaves de conjunto
de secuencias, en lugar de usar solo copias de estas llaves. Si los separadores son
menores, entonces puede haber más en un bloque y obtener así un número aún
más alto de ramas.
Declaración de un archivo secuencial indexado
TYPE
PAGINAAB= RECORD
CONT LLAVES : integer;
LLAVE
: array 1..MAXLLAVES of char;
HIJO
: array 1..MAXHIJOS of  integer;
END;
VAR
PAGINA : PAGINAB;
8
ALGORITMO SEARCH
Found:= false;
i:=1;
While(i<=indxsze)and (not found)
do if kindex(i)> key
then found:=true
else i:= i+1;
If i=1
then lowlim :=1
e lse lowlim:=pindex (i-1);
If found
then bilim:=pindex(i)-1
else bilim :=n ;
{buscar las tablas entre las posiciones lowlim y bilim}
j:=lowlim;
Found:=false;
While(j<= bilim) and (not found)
do if k (j)= key
then found := true
else j:= j+1;
If found
Then search:=j
else search:= 0
9
FUNCION:
inserta
LLAVE_PROMO)
(NRR_ACTUAL,
LLAVE,
HIJO_D_PROMO,
Si NRR_ACTUAL = NULO entonces
LLAVE_PROMO := LLAVE
HIJO_D_PROMO :=NULO
Devuelve PROMOCION
Otro
Leer la pagina de NRR_ACTUAL En PAGINA
buscar la LLAVE en PAGINA
POS:= la posición donde esta debería estar LLAVE
Si se encuentra LLAVE entonces
emitir mensaje de error indicando llave duplicada
devuelve ERROR
VALOR DEVUELTO := inserta(PAGINA.HIJO [POS], LLAVE, NRR_P_A
LLAVE_P_A)
Si VALOR_DEVUELTO = = NO PROMOCION o ERROR entonces
Devuelve VALOR_DEVUELTO
Otro si hay espacio en PAGINA para LLAVE_P_A entonces
Insertar LLAVE_P_A y NRR_P_A
Devuelve NO PROMOCION
Otro
Divide
(LLAVE_P_A,
NRR_P_A,
PAGINA,
LLAVE_PROMO,
HIJO_D_PROMO, PAGINA NUEVA)
Escribe PAGINA al archivo en el NRR_ACTUAL
Escribe PAGINA _ NUEVA al archivo en el nrr HIJO_D_PROMO
Devuelve promoción
Fin si
Fin FUNCION
10
SUPRIMIR
Encontrar el nodo a suprimir
Encontrar valor de llave
Mas pequeño en el
subárbol
Apuntado por el
apuntador
A la derecha del nodo en
Que se hará la supresión
Intercambiarse valor de
Llave a suprimir, moviendo
De llave suprimir hacia la
hoja
NO
¿es nodo
hoja?
SI
Suprimir valor llave de la hoja
SI
¿Todavía tiene
suFicientes llaves
la
Hoja?
fin
NO
¿Esta el
Nodo
Vacio?
SI
Combinar los
Nodos y rotarlos
Para distribución
Correcta de llaves
Fin
NO
¿El nodo hermano
de la izq. o der.
Tiene tan pocas
llaves que quepan
En un nodo con esa
Hoja?
SI
Combinar nodos hermanos
En un nodo
hoja
Fin
NO
Promueva la llave con valor mas pequeño
Del nodo hermano hacia el padre y mueva
Una llave del padre hacia la hoja, dándole
Su cuota de llaves
Fin
11
CONCLUSION
Podemos concluir que un archivo secuencial indexado maneja
tanto el acceso secuencial por valor de llave, como el acceso directo a un
registro en particular, dado su valor de llave. Este tipo de organización
de archivo se logra mediante la construcción de un índice sobre un
archivo de datos secuencial que reside en dispositivos de
almacenamiento de acceso directo.
Una buena implantación es a través del enfoque de árboles B, que
sus operaciones básicas son la búsqueda, inserción y la supresión. Los
árboles B han sido objeto de gran interés, tanto para profesionales como
para investigadores . Son usados ampliamente como estructuras de datos
para organizar índices, y como ya se demostró han sido desarrolladas
numerosas y perfeccionadas variantes del árbol B básico (B+, B+ prefijo
simple).
Hay que tener presente que todas las estructuras de árboles pueden
ser utilizadas para construir archivos indexados.
12
BIBLIOGRAFÍA
-Estructuras de Archivos: Un conjunto de herramientas conceptuales.
Michael J. Folk, Bill Zoellick
Ed. Iberoamericana
1992.
-Structures Using Pascal
Aaron M. Tenenbbum, Moshe J. Augenspein.
Ed. Prentice-Hall, Ink; Englewood Cliffs New Jersey.
1981
-Estructura de datos y organización de archivos
Mary E. S. Loomis.
Ed. Prentice-hall hispanoamericana
Segunda edición
1991
-www.geocities.com/jgamezc
-www.itlp.mx
13
14
Descargar