2. Recordando…
Un archivo es un grupo de registros
relacionados.
Un registro es un grupo de campos
relacionados.
3. Para facilitar la recuperación de
registros especifícos de un archivo,
debe seleccionarse en cada
registro como clave de registro.
Una clave de registro sirve para
identificar que un registro
pertenece a una persona o entidad
especifíca y es única en cada
registro.
4. Existen muchas formas de organizar
los registros en un archivo.
Un tipo común de organizar se conoce
como “ARCHIVOS SECUENCIALES
INDEXADOS” en el cúal los registros
se almacenan en orden con base en el
campo que es la clave de registro.
5. Por ejemplo:
En un Sistema de Nóminas, el registro para
un
empleado especifíco podría incluir los
siguientes
datos:
• Número de Identificación del Empleado
• Nombre del empleado
• Dirección
• Sueldo por hora
• Etc.
6. Entonces basándonos en el
ejemplo…
En un archivo de Nómina, los
registros generalmente se colocan
en orden, con base al número de
Identificación del Empleado, por
así decirlo. El registro del primer
empleado en el archivo contiene el
número de identificación más
pequeno, y los registro
8. Se utiliza este tipo de organización
de archivo cuando existe la
necesidad tanto de accesar los
registros secuencialmente, por
algún valor de llave, como de
accesarlos individualmente. Un
archivo secuencial indexado
proporciona la combinación de
tipos de acceso que manejan un
archivo secuencial y un archivo
9. Los registros se almacenan en
la secuencia física usual por la
área primaria. Además, se
almacena en el disco el índice
de la localización del registro
10. Un archivo secuencial
indexado consta de un
archivo índice y un archivo de
datos. Es necesario que los
registros contengan un campo
clave para identificarlos y que
estén almacenados en un
soporte direccionable según
el orden que indique dicha
11. El archivo índice se utiliza
para acelerar la búsqueda
dentro del fichero (de hecho
actúa
como un índice para los datos
del fichero). El fichero de
datos se organiza,
lógicamente, en bloques o
páginas de varios registros.
12. Cada registro del fichero índice
almacena:
• El valor del campo clave del último registro
de un bloque. Los bloques están constituidos
por un número fijo de registros consecutivos.
• La dirección del primer registro de dicho
bloque. Puede haber un área de
desbordamiento. Ocupa más espacio en
disco pero es más rápido.
Puede almacenarse el fichero índice en
memoria. Habría que calcularlo al iniciar una
sesión de trabajo.
13. Área primaria
Es la parte del fichero donde se guardan los
registros ordenados por el valor del campo
“clave”. Los registros se organizan por
bloques. El acceso se realiza mediante 2
operaciones:
• Primero, buscando en el bloque el registro.
• Luego analiza secuencialmente ese bloque
hasta localizar el registro deseado.
14. Área de Índices
Los registros de ésta área están formados por
dos campos:
• El primero contiene la clave del ultimo registro
de cada bloque.
• El segundo contiene la dirección de memoria
(puntero) del inicio de cada bloque del área
primaria.
16. Las operaciones que se pueden
realizar son:
Creación y Apertura de un
Fichero
Consulta de Datos
Cierre de un Fichero
Inserción de Datos
Borrado de un Fichero
17. Creación y Apertura de un Fichero
Crea el fichero asociado a la variable y lo deja
preparado para la inserción de datos en el
mismo, con un único elemento: EOF,
indicando que está vacío.
Hay que asegurarse que el dispositivo físico
esté listo para que no se produzca un error de
ejecución.
Abre un fichero previo para poder acceder a
sus registros. Si no existe da error.
Se traslada al buffer el primer grupo de
registros.
18. Consulta de Datos
La consulta de datos es una variable del
mismo tipo que los registros del fichero que,
después de la lectura, pasa a tener el valor
del que era registro activo en ese momento.
Tras una operación de lectura el apuntador
interno del buffer se incrementa.
Automáticamente y pasa a señalar al
registro siguiente. Si es necesario se carga
el siguiente bloque en el buffer.
19. Cierre de un Fichero
El cierre de un fichero consiste en pasar toda la información
que contiene el buffer al fichero del disco (la escritura se
efectuaba sobre el buffer) y limpiar a continuación el buffer.
Ejemplo: cierra ( <variable fichero>)
Posicionamiento del Apuntador y Tamaño del Fichero
apunta ( <variable fichero> , <posición> )
Donde posición es un entero (constante o variable) entre cero y
el número total de registros menos uno.
posición ( < variable fichero > ):entero
tamaño ( < variable fichero > ): entero
20. Insercción de Datos
Escribe ( <variable fichero> , < variable > )
Donde <variable> tiene las mismas
restricciones que en el caso de la lectura.
Se grabarán los datos, machacando los
anteriores. El apuntador se avanza
automáticamente.
21. Si el fichero está recién creado, se
irán insertando los registros en cada
operación de escritura, avanzando el
apuntador automáticamente y
empujando la marca EOF al final del
fichero.
Si el fichero tiene datos, debemos
avanzar el apuntador al final antes de
insertar nuevos datos si queremos
mantener los antiguos.
22. Borrado de un fichero
Elimina definitiva y completamente un
fichero en disco.
borra ( <variable fichero> )
Operaciones Adicionales sobre Ficheros a
partir de las operaciones primitivas que
hemos visto.
Modificación de los Datos de un Registro
23. Pasos para borrar un fichero:
1. Localizar en el fichero el registro que se
desea modificar.
•Sabemos su posición. Nos
posicionamos.
•Conocemos el contenido de algún
campo y secuencialmente lo
buscamos.
2. Sobre una variable auxiliar
24. 3. Escribimos dicha variable
auxiliar en la misma posición que
se encontraba.
apunta(<variable fichero> ,
posición ( <variable fichero> ) – 1
)
escribe (<variable fichero>,
<variable_auxiliar>)
25. Ventajas
•Permite procesar el archivo
secuencialmente por orden lógico y
también procesarlo al azar.
•La organización secuencial indexada es
conveniente para archivos con mediana
volatilidad, actividad variable y tamaño
relativamente estable.
26. Desventajas
Los índices requieren espacio extra, se
necesita una doble búsqueda; una en el
índice y otra en el archivo.
Los registros deben ser de longitud fija.
El archivo debe estar separado por un
dispositivo de acceso aleatorio; no se
puede utilizar en cintas magnéticas.
27. Muchas técnicas para organizar
un archivo como índice han sido
propuestas. No todos los
esquemas sencillos pueden ser
óptimos para todas las
aplicaciones, se utilizan
principalmente las técnicas para
implementar un índice Árbol B y
Árbol B+.
28. Que es un Arbol B
Una de las estructuras que
más ampliamente se ha usado
para organizar un índice en un
sistema de base de datos y en
administradores de archivos
tradicionales es el árbol B. (B
Tree).