Conceptos fundamentales de estructuras de archivos Almacenamiento y

  • Slides: 19
Download presentation
Conceptos fundamentales de estructuras de archivos Almacenamiento y Recuperación de Información UAM-A

Conceptos fundamentales de estructuras de archivos Almacenamiento y Recuperación de Información UAM-A

Organización por campos y registros • La intención de escribir archivos es la de

Organización por campos y registros • La intención de escribir archivos es la de volver persistentes los datos. • Esta propiedad implica que los datos puedan ser utilizados por otros programas. (posiblemente recreando su estructura original). • La unidad básica de información es el campo, que contiene un solo valor. UAM-A

 • Los campos se organizan de varias formas: • Instancias del mismo tipo

• Los campos se organizan de varias formas: • Instancias del mismo tipo (arreglos). • Instancias de conjuntos de valores de diferentes tipos (registros). • Cuando el registro es almacenado en la memoria también se le suele llamar: estructura u objeto y sus campos se llaman miembros. UAM-A

 • Imagine que tenemos una estructura con varios miembros (nombre, dirección, teléfono). ¿Qué

• Imagine que tenemos una estructura con varios miembros (nombre, dirección, teléfono). ¿Qué pasa si los escribimos en un archivo? • Si no tenemos cuidado, no se podría distinguir entre campos y registros… y sería imposible recuperar las estructuras originales. • De aquí que surja la necesidad de organizar los campos en un archivo. UAM-A

Formas de organización en archivos • Hacer que los campos tengan longitud predecible. •

Formas de organización en archivos • Hacer que los campos tengan longitud predecible. • Comenzar cada campo con un indicador de longitud. • Colocar un separador al final de cada campo • Utilizar representaciones de la forma: ‘dato = valor’, con el fin de identificar cada campo y su contenido. UAM-A

Método 1: fijar la longitud de los campos • Es muy fácil recuperar la

Método 1: fijar la longitud de los campos • Es muy fácil recuperar la información del archivo, cuando sabemos cuanto mide cada registro y cada campo. • Sin embargo pueden presentarse los siguientes problemas: • Si el espacio destinado a un campo es grande; puede desperdiciarse espacio. • Caso contrario los datos no caben. UAM-A

Método 2: comenzar cada campo con un indicador de longitud • Si se agrega

Método 2: comenzar cada campo con un indicador de longitud • Si se agrega la longitud continúa siendo fácil recuperar la información. • Si los campos no son muy grandes (menos de 256 bytes) es posible almacenar la longitud en un sólo byte al comienzo de cada campo. UAM-A

Método 3: separar los campos con delimitadores • Si agregamos los separadores, estos se

Método 3: separar los campos con delimitadores • Si agregamos los separadores, estos se deben poder distinguir de los datos, por lo cual la selección del separador es importante. • Por ejemplo, se procura no utilizar espacios como separadores si los datos son frases de más de una palabra. UAM-A

Método 4: uso de ‘llave=valor’ • Este método tiene una ventaja sobre las otras,

Método 4: uso de ‘llave=valor’ • Este método tiene una ventaja sobre las otras, y es que es una estructura cuyo campo proporciona información sobre el mismo. • Es fácil decir que campos están contenidos en un archivo. Este formato se utiliza con el formato de delimitador de campos. • Esto es útil en el sentido de que se muestra la división entre el valor y la llave. • Desafortunadamente este formato desperdicia mucho espacio aproximadamente el 50% o más se utiliza para las llaves, sin embargo hay aplicaciones donde este formato no demanda mucho overhead. UAM-A

Formas de Organización para los registros • De forma similar se deben organizar los

Formas de Organización para los registros • De forma similar se deben organizar los registros en un archivo y existen al menos 5 formas de hacerlo: • 1. Requerir que los registros sean de una longitud en bytes predecible. • 2. Requerir que los registros sean de una longitud en campos predecible. • 3. Comenzar con un indicador de la longitud en bytes de un registro. • 4. Usar delimitadores para separar un registro de otro UAM-A

Método 1: hacer que los registros tengan un tamaño predecible en bytes • Cada

Método 1: hacer que los registros tengan un tamaño predecible en bytes • Cada registro contiene el mismo número de bytes; Este método para reconocer los registros es análogo al método para reconocer los campos. Es uno de los métodos más comunes para organizar archivos. • Ejemplos son el struct de C y la clase de C++. • Es importante hacer hincapié que fijar el numero de bytes para un record, no implica que el tamaño de los campos en un record sea fijo. UAM-A

Método 2: hacer que los registros tengan un número predecible de campos • En

Método 2: hacer que los registros tengan un número predecible de campos • En vez de que cada registro de un archivo esta constituido por un número fijo de bytes, podemos especificar que contendrá un número fijo de campos. UAM-A

Método 3: comenzar cada registro con un indicador de longitud • El número indica

Método 3: comenzar cada registro con un indicador de longitud • El número indica el número de bytes en el registro. • Es un método utilizado para registros de longitud variable. UAM-A

Método 4: utilizar un archivo para mantener la pista de las direcciones • Se

Método 4: utilizar un archivo para mantener la pista de las direcciones • Se utiliza un archivo secundario (índice) donde se almacena el estado de los bytes de cada registro del archivo original. • Mantener esta pista nos permite encontrar el comienzo de cada registro sub-secuente y calcular la longitud de cada registro. • Vemos cual es la posición del registro en el archivo índice, después buscamos el registro en el archivo de datos. UAM-A

Método 5: colocar un delimitador al final de cada registro • Esta opción es

Método 5: colocar un delimitador al final de cada registro • Esta opción es análoga a la solución de los campos, hay que tener cuidado con la elección delimitador (debe ser diferente al delimitador del que se use en los campos). • OBSERVE QUE NINGÚN MÉTODO ES MEJOR QUE LOS DEMÁS PARA UNA SITUACIÓN CUALQUIERA. UAM-A

Una estructura de registro que usa un indicador de longitud • Note que si

Una estructura de registro que usa un indicador de longitud • Note que si deseamos colocar un indicador de longitud al principio de cada registro (es decir antes que sus campos) debemos conocerla de antemano. • Primero se debe construir el registro y sólo en ese instante se puede escribir al archivo. • A este procedimiento se le conoce como buffer. • ¿Cómo se escribe esa longitud? • En binario o en asccii. UAM-A

 • Cualquier notación que se escriba debe ser posible distinguirla del resto del

• Cualquier notación que se escriba debe ser posible distinguirla del resto del archivo. • Particularmente observe que el número 65 puede quedar representado como los caracteres 0 x 36, 0 x 35 o bien como el carácter 0 x 41 (‘=A’). • Los buffers también se pueden utilizar en la lectura, para leer un registro completo cada ocasión UAM-A

 • Finalmente una última nota de precaución: • Si se va a utilizar

• Finalmente una última nota de precaución: • Si se va a utilizar una representación binaria, recuerde que no todos los sistemas representan los números de la misma forma. La pareja de bytes 0 x 01, 0 x 02 pueden significar 258 en algún sistema y 513 en otro sistema y el problema se agrava al utilizar 4 o más bytes. UAM-A

fin UAM-A

fin UAM-A