UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra...

24
UAM-A UAM-A Manipulando Manipulando Archivos con Archivos con registros registros

Transcript of UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra...

Page 1: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Manipulando Archivos Manipulando Archivos con registroscon registros

Page 2: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Estructura de archivos y Estructura de archivos y registroregistro

Ya que nuestra estructura de archivos tiene Ya que nuestra estructura de archivos tiene como base el registro, como unidad de como base el registro, como unidad de información: debemos pensar como leer una información: debemos pensar como leer una registro sin leer todo el archivo.registro sin leer todo el archivo. Identificar un registro con un llave (key)Identificar un registro con un llave (key) Es más fácil pensar en el registro de Juan Pérez que Es más fácil pensar en el registro de Juan Pérez que

en el primer registro.en el primer registro. Dado que esta clave será proporcionada por el Dado que esta clave será proporcionada por el

usuario es necesario establecer una forma canónica, usuario es necesario establecer una forma canónica, esto es, juan, Juan, JUAN deben representar la esto es, juan, Juan, JUAN deben representar la misma clave.misma clave.

Page 3: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Normalmente se desea que todas las claves de Normalmente se desea que todas las claves de los distintos registros sean diferentes.los distintos registros sean diferentes.

Para prevenir confusiones se utiliza una clave Para prevenir confusiones se utiliza una clave que recibe el nombre de primaria (quien abre la que recibe el nombre de primaria (quien abre la posibilidad de que haya claves secundarias).posibilidad de que haya claves secundarias).

Se debe tener cuidado con la selección.Se debe tener cuidado con la selección. Lo mejor es que esta clave primaria no dependa Lo mejor es que esta clave primaria no dependa

de los datos.de los datos. Además de que no debe cambiar (una persona Además de que no debe cambiar (una persona

cambia sus datos, pero sigue siendo la misma cambia sus datos, pero sigue siendo la misma persona)persona)

Page 4: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Una vez que contamos con Una vez que contamos con claves:claves:

Es sencillo escribir un programa que vaya Es sencillo escribir un programa que vaya leyendo el archivo secuencialmente hasta que leyendo el archivo secuencialmente hasta que encuentre los registros con las claves deseadas. encuentre los registros con las claves deseadas. ¿Qué tan eficiente es esto?¿Qué tan eficiente es esto?

No debemos olvidar que la principal preocupación No debemos olvidar que la principal preocupación es: el es: el número de lecturas que se hacen a disconúmero de lecturas que se hacen a disco.. Con Con nn entradasentradas se necesita un máximo de se necesita un máximo de n lecturasn lecturas y y

un promedio de un promedio de n/2 lecturasn/2 lecturas.. Si agrupamos los registros en grupos de k (que se Si agrupamos los registros en grupos de k (que se

puedan leer de disco de una lectura, entonces se puedan leer de disco de una lectura, entonces se pueden leer un pueden leer un máximo n/k lecturasmáximo n/k lecturas y un y un promedio de promedio de n/2k lecturasn/2k lecturas..

Page 5: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

En cualquier caso como k es constante, En cualquier caso como k es constante, esto es O(n) lecturas, aunque parece lento esto es O(n) lecturas, aunque parece lento tiene aplicaciones; búsqueda de patrones, tiene aplicaciones; búsqueda de patrones, archivos con pocos registros, archivos que archivos con pocos registros, archivos que casi nunca tienen que buscarse, archivos casi nunca tienen que buscarse, archivos almacenados en cinta, búsquedas donde almacenados en cinta, búsquedas donde se esperan muchos resultados.se esperan muchos resultados.

Page 6: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Acceso directoAcceso directo

Una búsqueda completamente distinta es Una búsqueda completamente distinta es el acceso directo. el acceso directo.

Lo anterior es posible si podemos buscar Lo anterior es posible si podemos buscar (seek) el principio de un registro, para (seek) el principio de un registro, para leerlo inmediatamente. leerlo inmediatamente.

En este caso el tamaño del archivo no En este caso el tamaño del archivo no importa, ya que se puede localizar importa, ya que se puede localizar cualquier registro en un tiempo O(1).cualquier registro en un tiempo O(1).

Page 7: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

El principal problema es cómo sabemos donde El principal problema es cómo sabemos donde comienza un registro, para lograrlo, existen comienza un registro, para lograrlo, existen varias formas:varias formas: Todos los registros tienen la misma longitud y Todos los registros tienen la misma longitud y

conocemos el número de registro relativo, que conocemos el número de registro relativo, que estamos buscando.estamos buscando.

Si sabemos que cada registro mide R bytes y que el Si sabemos que cada registro mide R bytes y que el registro esta en la posición N (los registros se registro esta en la posición N (los registros se cuentan desde la posición 0).cuentan desde la posición 0).

Entonces la posición del registro en el archivo es Entonces la posición del registro en el archivo es simplemente RN bytes.simplemente RN bytes.

Page 8: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Una vez que se decide Una vez que se decide longitud fija…longitud fija…

¿Cómo escoger esa longitud?¿Cómo escoger esa longitud? Si sabemos que un sector mide 512 bytes y se Si sabemos que un sector mide 512 bytes y se

considera un registro que mida más de 30 bytes, para considera un registro que mida más de 30 bytes, para almacenar todos sus campos.almacenar todos sus campos.

Tiene sentido escoger una longitud de 32 bytes para Tiene sentido escoger una longitud de 32 bytes para asegurar que cada sector contiene un número entero asegurar que cada sector contiene un número entero de registros.de registros.

En ocasiones es necesario o conveniente agregar En ocasiones es necesario o conveniente agregar cierta información adicional, que tenga un uso cierta información adicional, que tenga un uso posterior, con este fin se utiliza un posterior, con este fin se utiliza un registro de registro de cabecera.cabecera.

Page 9: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

En un registro de cabecera se incluye información como:En un registro de cabecera se incluye información como: El número de registros existentes.El número de registros existentes. El tamaño de los registrosEl tamaño de los registros Fecha y hora de última actualizaciónFecha y hora de última actualización El nombre del archivoEl nombre del archivo Longitud de la cabeceraLongitud de la cabecera

Este registro tendrá una estructura distinta a la del resto, Este registro tendrá una estructura distinta a la del resto, pero hace que un archivo se auto-describa, una ventaja pero hace que un archivo se auto-describa, una ventaja es que los programas que le utilicen no necesitan saber es que los programas que le utilicen no necesitan saber con antelación todos sus detalles.con antelación todos sus detalles.

Page 10: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Organización de archivos Organización de archivos para mejorar el desempeñopara mejorar el desempeño

Compresión de archivos y sus razones: Compresión de archivos y sus razones: Usar menos espacioUsar menos espacio Se puede transmitir más rápido o con menor ancho Se puede transmitir más rápido o con menor ancho

de banda.de banda. Se pueden procesar más rápido.Se pueden procesar más rápido.

Existen varias técnicas: Existen varias técnicas: Usar una notación distinta (abreviaturas)Usar una notación distinta (abreviaturas) Suprimir información repetidaSuprimir información repetida Asignación de códigos de longitud variableAsignación de códigos de longitud variable Eliminando datosEliminando datos

Page 11: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Reducción de redundanciaReducción de redundancia

Se logra codificando los datos en campos Se logra codificando los datos en campos de longitud fija, resultando normalmente de longitud fija, resultando normalmente en datos binarios. Aquí solo resta tener en en datos binarios. Aquí solo resta tener en cuenta que el archivo ya no puede ser cuenta que el archivo ya no puede ser leído por un humano. Existe un costo para leído por un humano. Existe un costo para codificar y uno para decodificar y todos los codificar y uno para decodificar y todos los programas que utilicen ese archivo deben programas que utilicen ese archivo deben conocerlo.conocerlo.

Page 12: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Codificación por corridasCodificación por corridas

En archivos que contienen pocos datos y En archivos que contienen pocos datos y mucho espacio desperdiciado (como mucho espacio desperdiciado (como imágenes con poco detalle) es posible imágenes con poco detalle) es posible transformar secuencias de datos transformar secuencias de datos consecutivos idénticos en secuencias consecutivos idénticos en secuencias especiales que consisten de:especiales que consisten de: Un byte indicadorUn byte indicador El valor que se repiteEl valor que se repite La cantidad de veces que se repite.La cantidad de veces que se repite.

Page 13: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Códigos de longitud varaibleCódigos de longitud varaible

Si un dato aparece muchas más veces Si un dato aparece muchas más veces que un segundo dato, tiene sentido que un segundo dato, tiene sentido asignarle un código más corto al primero asignarle un código más corto al primero que al segundo. El código morse es un que al segundo. El código morse es un ejemplo, otro ejemplo es la llamada ejemplo, otro ejemplo es la llamada codificación de Hoffman.codificación de Hoffman.

Page 14: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Comprensión con pérdidaComprensión con pérdida

Cuando no es necesario preservar la Cuando no es necesario preservar la información hasta el último detalle (como información hasta el último detalle (como suele ser el caso de los archivos que suele ser el caso de los archivos que contienen imagen, sonido y video. A veces contienen imagen, sonido y video. A veces se pueden lograr grandes ganancias se pueden lograr grandes ganancias descartando información que resulta descartando información que resulta irrelevante.irrelevante.

Page 15: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Recuperando en archivosRecuperando en archivos

Si la única operación a realizar en Si la única operación a realizar en archivos es la de agregar la información, archivos es la de agregar la información, entonces no se desperdiciará espacio.entonces no se desperdiciará espacio.

Sin embargo lo anterior se ve afectado al Sin embargo lo anterior se ve afectado al realizar modificaciones (borrado + adición) realizar modificaciones (borrado + adición) o borrados.o borrados.

Page 16: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

CompactaciónCompactación

Un primer mecanismo para recuperar espacio Un primer mecanismo para recuperar espacio perdido por borrado:perdido por borrado: Busca a través de los archivos aquel espacio donde Busca a través de los archivos aquel espacio donde

no haya datos y los recupera.no haya datos y los recupera. Se necesita saber si hay o no datosSe necesita saber si hay o no datos

Se coloca un indicador especial en un registro borrado (de Se coloca un indicador especial en un registro borrado (de preferencia en un campo del registro)preferencia en un campo del registro)

La compactación se realiza de vez en vez, así La compactación se realiza de vez en vez, así que los programas que usan estos archivos que los programas que usan estos archivos deben ignorar los registros borradosdeben ignorar los registros borrados

Page 17: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Una ventaja es que se puede recuperar el Una ventaja es que se puede recuperar el registro, siempre y cuando no se haya realizado registro, siempre y cuando no se haya realizado la compactación.la compactación.

En el caso de que exista espacio disponible, la En el caso de que exista espacio disponible, la forma más sencilla de llevar a cabo la forma más sencilla de llevar a cabo la compactación es utilizando un segundo archivo.compactación es utilizando un segundo archivo.

La modificación con gran frecuencia de los La modificación con gran frecuencia de los archivos que utilizan este método es un archivos que utilizan este método es un problema debido a que el usuario debe esperar problema debido a que el usuario debe esperar una cantidad de tiempo considerable para que una cantidad de tiempo considerable para que se efectúe esta operación.se efectúe esta operación.

Page 18: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Registros de longitud Registros de longitud constanteconstante

Suponga que los registros son de tamaño Suponga que los registros son de tamaño constante, en este caso cualquier espacio constante, en este caso cualquier espacio desocupado por un registro, puede desocupado por un registro, puede ocuparse por otro. ocuparse por otro. En este caso es suficiente con saber donde En este caso es suficiente con saber donde

se encuentra este espacio para reutilizarlo.se encuentra este espacio para reutilizarlo. Una forma lenta pero simple es una Una forma lenta pero simple es una

búsqueda secuencial, siempre y cuando el búsqueda secuencial, siempre y cuando el archivo no sea muy grande archivo no sea muy grande (( lento). lento).

Page 19: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Se necesita un método a través del cual Se necesita un método a través del cual se pueda decidir inmediatamente si hay o se pueda decidir inmediatamente si hay o no espacio reutilizable y dónde esta.no espacio reutilizable y dónde esta. Se logra creando una lista ligada de registros Se logra creando una lista ligada de registros

disponibles.disponibles. Como el orden es indistinto, conviene utilizar Como el orden es indistinto, conviene utilizar

el tipo de lista ligada más sencilla el tipo de lista ligada más sencilla (pila).(pila). Necesitamos indicar: dónde esta el tope de la Necesitamos indicar: dónde esta el tope de la

pila, y cuándo no existen más elementos en pila, y cuándo no existen más elementos en la pila.la pila.

Page 20: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

No podemos utilizar apuntadores.No podemos utilizar apuntadores. Podemos utilizar los Podemos utilizar los números de registro números de registro

relativos (NRR),relativos (NRR), para señalar donde esta para señalar donde esta el siguiente elemento libre. Este indicador el siguiente elemento libre. Este indicador se puede almacenar en un campo se puede almacenar en un campo especial del registro.especial del registro.

El -1 para indicar que no hay elementosEl -1 para indicar que no hay elementos El indicador de tope de la pila se El indicador de tope de la pila se

almacena en la cabecera.almacena en la cabecera.

Page 21: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Registros de longitud variableRegistros de longitud variable

No podemos utilizar la técnica de NRR.No podemos utilizar la técnica de NRR. Se necesita utilizar en su lugar la posición del Se necesita utilizar en su lugar la posición del

registro en el archivo en bytes.registro en el archivo en bytes. Saber de que tamaño es cada registro (aunque Saber de que tamaño es cada registro (aunque

esta información ya puede existir en el archivo)esta información ya puede existir en el archivo) No se puede utilizar cualquier registro libre, solo No se puede utilizar cualquier registro libre, solo

aquellos que sean suficientemente grandes, de aquellos que sean suficientemente grandes, de aquí que la pila ya no sea suficiente y se aquí que la pila ya no sea suficiente y se necesite una lista ligada más general.necesite una lista ligada más general.

Page 22: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Un problema es que hacer con el espacio Un problema es que hacer con el espacio que sobra al utilizar un registro disponible que sobra al utilizar un registro disponible más grande de lo necesario….más grande de lo necesario…. La idea al utilizar este tipo de registro era La idea al utilizar este tipo de registro era

eliminar este problema.eliminar este problema. Una idea sería colocar ese espacio en la lista Una idea sería colocar ese espacio en la lista

de espacio disponible, pero podría ser tan de espacio disponible, pero podría ser tan pequeño que no se pudiera utilizar, a este pequeño que no se pudiera utilizar, a este problema se le llama fragmentación externa.problema se le llama fragmentación externa.

Page 23: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

Cómo decidimos entonces que espacio libre Cómo decidimos entonces que espacio libre utilizar para un registro.utilizar para un registro. Esto ya no es ciencia, sino más bien Esto ya no es ciencia, sino más bien faire artefaire arte……

Algunas estrategias comunes:Algunas estrategias comunes: First-fit (el primero que encuentre)First-fit (el primero que encuentre) best-fit (aquel al que le quede menos espacio desperdiciado)best-fit (aquel al que le quede menos espacio desperdiciado)

Una lista de espacios disponibles en orden descendienteUna lista de espacios disponibles en orden descendiente Worst-fit (en el caso anterior que traiga la primera que Worst-fit (en el caso anterior que traiga la primera que

encuentre)encuentre)

Lo único que es obvio es que ninguna de ellas Lo único que es obvio es que ninguna de ellas es superior a las demás para una situación es superior a las demás para una situación arbitraria.arbitraria.

Page 24: UAM-A Manipulando Archivos con registros. UAM-A Estructura de archivos y registro Ya que nuestra estructura de archivos tiene como base el registro, como.

UAM-AUAM-A

finfin