Fundamentos de Programación II
Fundamentos de Programación II
2 Archivos
2. Archivos
Luis Rodríguez Baena (
[email protected])
Universidad Pontificia de Salamanca
Escuela Superior de Ingeniería y Arquitectura
Concepto de archivo
Necesidad de almacenar los datos en dispositivos de memoria auxiliares (discos)
que mantengan la información de forma permanente.
ó
Necesidad de poder tratar grandes cantidades de información de forma
fraccionada de forma que la memoria central pueda tratarlas.
Limitaciones de los arrays.
● Carácter finito.
Definen su tamaño en tiempo de compilación y no se puede modificar a lo largo de la ejecución
de un programa.
de un programa.
El tamaño de la memoria es limitado.
● Los archivos tienen una cardinalidadvirtualmente infinita.
Toman o liberan espacio de almacenamiento en tiempo de ejecución.
En realidad el tamaño está limitado por el tamaño de los dispositivos de almacenamiento y el
ñ
ñ
á
sistema operativo.
● Carácter temporal.
Los arrays guardan información no permanente.
y g
p
○ Su tiempo de vida máximo es el tiempo de vida de la aplicación en memoria.
● Los archivos permiten almacenar información de forma permanente.
No es necesario carga la información.
Es posible intercambiar información de forma fácil entre programas
Es posible intercambiar información de forma fácil entre programas.
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2013
2
Concepto de archivo (II)
El tipo de dato archivo.
El tipo de dato archivo.
● Archivo: colección ordenada de datos homogéneos almacenada
en un dispositivo externo.
El di
El dispositivo podrá ser un soporte de almacenamiento auxiliar (disco) o
)
cualquier flujo de información de entrada o salida (teclado, impresora,
pantalla, puertos serie, memoria, etc.).
d á
(di
i i
ili
● Es un dato estático.
E
Aunque el tamaño de un archivo en disco puede variar en función de la
á i
d
información contenida, desde el punto de vista de la memoria, se
considera un dato estático.
á
d
l
i
Un archivo ocupará en memoria un tamaño fijo, correspondiente al
bufferempleado para la comunicación entre el disco y la memoria
i
principal.
l
○ A diferencia de los arrays, sólo se almacenará en la memoria principal un
i
fragmento del archivo almacenado en disco.
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2013
3
Estructura lógica
Hace referencia a la forma en que un algoritmo ve al archivo.
Hace referencia a la forma en que un algoritmo ve al archivo.
Un archivo está compuesto por una colección de datos
homogéneos
homogéneos.
● Cada vez que se realiza una operación de entrada o salida en un
archivo, se lee o se escribe uno de esos datos.
A la cantidad mínima de información que se puede leer o escribir en un archivo
se le denomina registro.
● El concepto de registro es distinto de la estructura de datos de tipo
● El concepto de registro es distinto de la estructura de datos de tipo
registro.
La información que se lee o escribe podrán ser enteros, reales, cadenas,
caracteres, o estructuras de datos de tipo registro.
○ Habrá archivos de enteros, de caracteres, de cadenas (si el registro son datos simples)
o de personas, de estudiantes o de cualquier dato de tipo registro o estructura.
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2013
4
Estructura lógica (II)
t
t
)
Cuando el tipo base de un archivo es un dato de tipo registro (una
d á d
estructura), se podrá descomponer en datos más elementales: campos.
● Por ejemplo, un archivo de personas podrá estar compuesto por registros de tipo
persona con información sobre su DNI, sus apellidos, su nombre, su provincia de
residencia o su teléfono.
d t
t l
á
l
● Dentro de los campos pueden existir determinados campos clave.
Campos que identifican un registro dentro de un archivo.
○ Clave primaria (primarykey, PK).
− Identifica un registro de forma unívoca.
Identifica un registro de forma unívoca.
− No admite duplicados.
− Por ejemplo, el DNI.
○ Claves alternativas o secundarias (foreign key, FK).
lt
alternativas.
ti
− Pueden tener o no duplicados.
− Por ejemplo, la provincia de residencia o los apellidos.
○ Claves compuestas.
− Permiten realizar otros procesos como ordenaciones por distintos campos o búsquedas
− Tanto las claves primarias como las alternativas se pueden obtener por la combinación de
Tanto las claves primarias como las alternativas se pueden obtener por la combinación de
distintos campos
− Por ejemplo, una clave posible podría estar formada por los apellidos y el nombre de la
persona.
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2013
5
Estructura lógica (III)
d d
Base de datos.
B
● De forma simplificada podemos
considerar una base de datos
como una colección de archivos.
● Conjuntos de información
relacionada.
● Cada conjunto (tabla) estará a su
vez compuesta de registros (tuplas
o filas) y campos (columnas).
)
) y
p
(
● Los conjuntos estarán relacionados
d
por claves externas que permiten
acceder a la información de una
a
a ó d u a
tabla con los datos de otra: bases
de datos relacionales.
a a
o
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2013
6
Estructura física
La estructura física hará referencia a la forma en que
La estructura física hará referencia a la forma en que
el sistema operativo ve el archivo.
Registro lógico (registro)
Registro lógico (registro).
● Unidad mínima de información a la que puede acceder un
programa
programa.
Registro físico (bloque).
● Unidad mínima de información que puede transferirse
d i f
id d
í
i
ió
d
f
i
desde el soporte de almacenamiento a la memoria en una
operación de entrada salida
operación de entrada salida.
● Desde el punto de vista físico, el archivo está compuesto
por registros físicos o bloques
por registros físicos o bloques.
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2013
7
Estructura física (II)
Cuando el algoritmo solicita una operación de lectura o
Cuando el algoritmo solicita una operación de lectura o
escritura en un archivo el sistema operativo no lee un
registro lógico.
● Se lee un bloque o registro físico que se almacena en un área de
memoria intermedia (buffer).
Esa área de memoria será la zona de memoria identificada por la
Esa área de memoria será la zona de memoria identificada por la
variable de tipo archivo.
● El programa lee los registros lógicos desde el buffer.
Una vez almacenada la información en el buffer se transfiere el registro
Una vez almacenada la información en el buffer, se transfiere el registro
lógico a la memoria del ordenador dónde puede acceder el algoritmo
leyendo los registros lógicos.
Si se realiza otra operación de lectura se busca la nueva información en
Si se realiza otra operación de lectura, se busca la nueva información en
el buffer.
○ Si se encuentra, se realiza la transferencia al registro lógico.
○ Si no se encuentra en el buffer se realiza otra operación de lectura física
○ Si no se encuentra en el buffer, se realiza otra operación de lectura física.
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2013
8
Estructura física (III)
Archivo en disco formado por los campos DNI y nombre
234567C
Pérez
33434F
Ríos
34567A
Gómez
676856Y
García
678765U Buendía
454346I
Font
El programa hace una operación
El programa hace una operación
de lectura: se lee un bloque (2 y
pico registros lógicos)
234567C
Pérez
Bloque
33434F
Ríos
34567A
q
El bloque leído se almacena en la
memoria intermedia (buffer)
Registros lógicos en la memoria principal del ordenador
y accesible por el algoritmo
234567C
Pérez
El programa lee del
bloque un registro
lógico y lo almacena
en la memoria
principal
33434F
Ríos
En la siguiente
operación de lectura
que haga el
programa, no se
leerá del disco, sino
del bloque
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2013
9
Estructura física (IV)
Factor de bloqueo
Factor de bloqueo.
● Mide la relación entre los registro físicos y lógicos.
Número de registros lógicos por bloque
Número de registros lógicos por bloque.
● Tres casos:
Archivos bloqueados (factor de bloqueo
Archivos bloqueados (factor de bloqueo > 1).
1).
Archivos no bloqueados (factor de bloqueo = 1).
Archivos expandidos (factor de bloqueo < 1).
● Bloqueo fuerte. Se aprovecha el espacio sobrante.
● Bloqueo débil. El espacio sobrante no se aprovecha.
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2013
10
Estructura física (V)
Importancia del factor de bloqueo.
Importancia del factor de bloqueo.
● El acceso a dispositivos externos es más costoso que el acceso a
la memoria interna.
Al
Al acceder a los registros lógicos a partir de la información almacenada
i d l
ló i
i f
d
ió
l
l
i
en el buffer, se optimiza el acceso a la información.
● En teoría un factor de bloqueo mayor acelerará los procesos de
entrada/salida.
Con un factor de bloqueo grande cada operación de E/S cargará más
información y, por lo tanto, habrá que acceder menos veces al disco.
q
○ Los accesos a disco son más lentos.
y, p
,
d
Esto sólo es cierto cuando se desea acceder a toda la información de un
archivo.
○ Si se quiere acceder a los registros en orden aleatorio, un tamaño de bloque
mayor también implicará un tiempo mayor para transferir la información a la
memoria pero no ahorrará acceso
Comentarios de: 2 Archivos - Fundamentos de Programación II (0)
No hay comentarios