--- /dev/null
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass book
+\language spanish
+\inputencoding auto
+\fontscheme palatino
+\graphics default
+\paperfontsize default
+\spacing single
+\papersize a4paper
+\paperpackage widemarginsa4
+\use_geometry 0
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+
+\layout Title
+
+Organización de Datos (75.06)
+\newline
+Trabajo Práctico
+\newline
+E
+\begin_inset Formula $\mu$
+\end_inset
+
+FS
+\layout Author
+
+
+\series bold
+Grupo 11
+\series default
+
+\newline
+Nicolás Dimov (77624)
+\newline
+Alan Kennedy (78907)
+\newline
+Leandro Lucarella (77891)
+\newline
+Ricardo Markiewicz (78226)
+\layout Date
+
+Segunda Entrega, 31 de Mayo de 2004
+\layout Standard
+
+
+\begin_inset LatexCommand \tableofcontents{}
+
+\end_inset
+
+
+\layout Chapter
+
+Introducción
+\layout Standard
+
+En esta entrega el trabajo estuvo concentrado en el manejo de índices para
+ los tipos de archivos implementados en la primer entrega.
+ Los índices se implementaron con:
+\layout Enumerate
+
+Árbol B
+\layout Enumerate
+
+Árbol B*
+\layout Enumerate
+
+Árbol B+
+\layout Standard
+
+Además de esto, se pide 3 funciones distintas para estos índices:
+\layout Enumerate
+
+Principal
+\layout Enumerate
+
+Selectivo
+\layout Enumerate
+
+Exhaustivo
+\layout Standard
+
+Con la autorización de los ayudantes de la cátedra decidimos que el árbol
+ B+ sólo pueda ser utilizado para índices principal ya que de otra manera
+ no tiene sentido el set secuencial.
+\layout Standard
+
+Finalmente, para obtener listados basados en campos de los cuales no se
+ tiene un índice, se implementó un ordenamiento externo.
+\layout Standard
+
+A continuación se presenta una descripción un poco más detallada sobre todas
+ herramientas utilizadas para resolver el trabajo práctico.
+\layout Section
+
+Documentación de la API
+\layout Standard
+
+Para obtener una documentación de la API más completa, se incluye en formato
+ HTML en el CD-ROM la documentación generado con Doxygen.
+ Esta documentación se encuentra en el directorio
+\family typewriter
+doc/api/html/index.html
+\family default
+.
+\layout Chapter
+
+Estructura común
+\layout Section
+
+Tipos
+\layout Standard
+
+Se detallan a continuación los tipos de datos definidos y utilizados en
+ las distintas implementaciones que conforman nuestro sistema, siendo el
+ más importante de ellos en esta entrega, la estructura
+\family typewriter
+INDICE
+\family default
+ que actúa como interfaz común para el manejo de cualquier tipo de índice
+ (no importa que tipo de organización física ni de que forma esté implementado,
+ esta estructura proveerá una interfaz abstracta para su manejo).
+\layout Subsection
+
+Tipos Comunes
+\layout Standard
+
+Se agregaron varios tipos comunes nuevos en esta entrega, en su mayoría
+ relacionados a los índices.
+ Estos tipos son brevemente descriptos a continuación y pueden ser hallados
+ en el archivo
+\family typewriter
+indices.h
+\family default
+:
+\layout Itemize
+
+
+\family typewriter
+INDICE_DATO
+\family default
+: usado para representar el conjunto de un ID más su dato.
+\layout Itemize
+
+
+\family typewriter
+INDICE_TIPO
+\family default
+: indica el tipo de índice (B, B* o B+).
+\layout Itemize
+
+
+\family typewriter
+INDICE_FUNCION
+\family default
+: indica la función que cumple el índice (principal, selectivo o exhaustivo).
+\layout Itemize
+
+
+\family typewriter
+INDICE_TIPO_DATO
+\family default
+: indica el tipo de dato que se usa como clave.
+\layout Itemize
+
+
+\family typewriter
+CLAVE
+\family default
+: representa una clave de un índice.
+\layout Subsection
+
+INDICE
+\layout Standard
+
+
+\family typewriter
+INDICE
+\family default
+\emph on
+
+\emph default
+es la estructura principal que encapsula todas las funciones para el manejo
+ de un índice.
+ Posee punteros a funciones que permite utilizar la misma interface para
+ distintas implementaciones de árboles.
+
+\layout Standard
+
+Su declaración puede ser observada en el archivo
+\family typewriter
+indices.h
+\family default
+\series bold
+
+\series default
+y cuenta con la siguiente información:
+\layout Itemize
+
+Tipo de índice.
+\layout Itemize
+
+Tipo de dato que maneja.
+\layout Itemize
+
+Función del índice.
+\layout Itemize
+
+Información sobre el desplazamiento para ubicar el dato dentro de la estructura
+ a indexar (para poder tener una implementación genérica que sirva para
+ cualquier estructura).
+\layout Itemize
+
+Información sobre archivos auxiliares para almacenar cadenas de texto y
+ otras estructuras que eventualmente requiera un índice.
+\layout Itemize
+
+Punteros a funciones para:
+\begin_deeper
+\layout Itemize
+
+Agregar entrada.
+\layout Itemize
+
+Borrar entrada.
+\layout Itemize
+
+Verificar la existencia de una entrada.
+\layout Itemize
+
+Buscar entradas.
+\layout Itemize
+
+Obtener clave menor o mayor del índice.
+\layout Itemize
+
+Obtener siguiente clave (para recorrido secuencial).
+\end_deeper
+\layout Standard
+
+Esta estructura define los valores de sus punteros según el tipo de implementaci
+ón que se desee manejar y esto se realiza a través de la API
+\family typewriter
+emufs_indice
+\family default
+, implementada en
+\family typewriter
+indices.h
+\family default
+.
+ Esta API posee funciones para crear y destruir índices, agregarlos y quitarlos
+ de una estructura
+\family typewriter
+EMUFS
+\family default
+, comparar claves y otras, necesarias para la correcta y completa utilización
+ de los índices a través de la interfaz de
+\family typewriter
+EMUFS
+\family default
+ descripta en la entrega anterior.
+\layout Subsubsection
+
+Integración con
+\family typewriter
+EMUFS
+\family default
+.
+\layout Standard
+
+Para integrar la utilización de índices a
+\family typewriter
+EMUFS
+\family default
+ fueron necesarios los siguientes cambios:
+\layout Paragraph
+
+Nuevos tipos de archivo.
+\layout Standard
+
+Se incluyen dos tipos de archivo nuevos T4 y T5, que representan, respectivament
+e, un archivo T1 (registros variables, bloques fijos) y un archivo T3 (registros
+ y bloques fijos), ambos organizados como un set secuencial indexado.
+ De esta manera se conserva la interfaz de
+\family typewriter
+EMUFS
+\family default
+ (los punteros a funciones) incluso cuando se debe insertar de forma ordenada,
+ ya que al saber que es T4 o T5 siempre se inserta de forma ordenada.
+\layout Paragraph
+
+Puntero a un arreglo de índices.
+\layout Standard
+
+Se agrega a la estructura
+\family typewriter
+EMUFS
+\family default
+ un puntero a un arreglo de
+\family typewriter
+INDICE
+\family default
+, donde el primero es siempre el índice principal.
+\the_end