You are on page 1of 69

ORGANIZACIÓN

ORGANIZACIÓN DE
DE
DATOS
DATOS
Unidad
Unidad II
CONCEPTOS BÁSICOS DE
ARCHIVOS
Objetivo del Curso

• Adquirirá conocimientos y
habilidades para diseñar soluciones
que requieran la utilización de
archivos.
Unidad I
Objetivo de la Unidad
El estudiante comprenderá los
conceptos básicos de archivos.
Unidad I
1.1     Definición de concepto de
archivos
1.2     Tipos de archivos
1.3     Organización de archivos
1.4 Operaciones generales sobre
archivos
Unidad I
Identificar un problema que pueda ser
utilizado como proyecto de curso de
acuerdo con el estudiante.
Bibliografía
Estructura de datos y organización de archivos
Mary E. S. Loomis (Capítulo 10.- Sistemas de
archivos)

Cómo Programar en Java


Deitel y Deitel (Uso de archivos)

Estructuras de datos en Java


Mark Allen Weiss (Uso de archivos)
Archivo

• Los datos pueden considerarse como


materia prima y son agregados y
sumados en diversas formas útiles
para formar información.
Archivo
• Un archivo es una colección de
registros lógicamente relacionados.
Archivo
• Un registro es una colección de
campos con información, lógicamente
Campos
relacionados.

Registros
Archivo
• Los registros se almacenan juntos
para formar un archivo, mismo que
posee un nombre específico.
¿Por qué utilizar
archivos?

• Para almacenar datos independientes


a la ejecución del programa.

Programas
de aplicación

datos
¿Por qué utilizar
archivos?

• Para almacenar grandes volúmenes de


información.
¿Por qué utilizar
archivos?

• Para poder acceder a partes del


archivo en diferentes momentos.
Clasificación de archivos
por su función
• Archivo maestro.
• Archivo de transacciones.
• Archivo de reporte.
• Archivo de trabajo.
• Archivo de programa.
• Archivo de texto.
Archivo maestro
• Proporciona una imagen más o menos
confiable sobre aspectos del mundo
real.
• Contiene datos permanentes o de
estados históricos.
• Alumnos, maestros, empleados,
cuentas_banco, diccionario de datos.
Archivo maestro

Productos.dat
Archivo de transacciones
• Almacena los cambios que se
realizarán en el archivo maestro.
• Cada registro representa un evento o
cambio de algo en el archivo maestro.
• T_maestros, T_alumnos,
T_empleados, T_cuentas_banco, etc.
Archivo de transacciones
Archivo de reporte
• Contiene datos a ser presentados, con
formato de informe, al usuario.
• Se generan con programas de
aplicación o lenguajes comerciales de
consulta como SQL,QBE, QUEL,
Datalog.
• Nom_103, Nom_203, Incid_0203,
Mat_103.
Archivo de reporte
Archivo de Trabajo
• Es un archivo que se utiliza para
pasar datos de un programa a otro.
• Es un archivo temporal.
• Tmp_matricula, tmp_reprob,
tmp_inscr.
Archivo de programa
• Contiene las instrucciones que sirven
para procesar datos.
• Puede ser código máquina,
ensamblador o instrucciones en algún
lenguaje de alto nivel.
Archivo de programa
Archivo de texto
• Contiene datos alfanuméricos
ingresados en algún editor de textos.
Clasificación de archivos por
las formas de accesarlos
 Entrada.
 Salida.

 Entrada/salida.
Clasificación de archivos por
las formas de accesarlos
 Entrada.
Archivo

Alumnos.dat

Aplicación Instrucción
Clasificación de archivos por
las formas de accesarlos
 Salida.
Archivo

Alumnos.dat

Aplicación Instrucción
Clasificación de archivos por
las formas de accesarlos
 Entrada/Salida.
Archivo

Alumnos.dat

Aplicación Instrucción
Organización de archivos
• Es la técnica utilizada para
representar y almacenar registros en
archivos.
• La organización puede ser:
– Secuencial
– Relativa o directa
– Secuencial indexado
Organización de archivos
• Determina la ordenación física de los
registros.

Datos del archivo


Disco Duro
Organización de archivos
• Determina el conjunto de operaciones
para encontrar registros.
Organización de archivos
• La técnica más apropiada depende del
medio de almacenamiento y las
operaciones a realizar con él.
Operaciones sobre
archivos
• Un archivo puede ser utilizado para
transacciones:
Por lotes Interactivas
04 04
05 05
03 03
02 02
01 01
06 06
Operaciones sobre
archivos
• Creación
Operaciones sobre
archivos
• Actualización (inserción,
modificación, borrado)
Operaciones sobre
archivos
• Recuperación (consulta, reportes)
Operaciones sobre
archivos
• Mantenimiento (estructuración,
reorganización).
Operaciones sobre
archivos
• Eliminación
Sistemas de Archivos
• El Sistema de Archivos: es un
componente importante de un S. O. y
suele contener :
• Métodos de acceso: la manera de
acceder a los datos almacenados en
archivos.
• Administración de archivos: mecanismos
para que los archivos sean almacenados.
Sistemas de Archivos
• Administración del almacenamiento
auxiliar: para la asignación de espacio
a los archivos en los dispositivos de
almacenamiento secundario.
• Integridad del archivo: para
garantizar la integridad de la
información del archivo.
Sistemas de Archivos
• El programador puede acceder a los
archivos sin preocuparse por las
características de almacenamiento y
tiempos de acceso.
• Convierte las instrucciones de acceso
a instrucciones de bajo nivel de
entrada-salida.
Sistemas de Archivos
¿Qué sucede con una
instrucción de lectura?

PROGRAMA
6

BUFFER
1 8

Controlador de E-S
4 5
Canal
Programa de Unidad de
3 Dispositivo
Canal 2 control
Apertura de archivos
• Antes de leer o escribir a un archivo es
necesario abrirlo.
• Se genera el programa de canal
• Se verifica si el usuario tiene derechos.
• Se construyen las áreas de buffer para
el archivo.
Cierre de archivos
• Los buffer se vacían.
• Se libera el área de buffer y
programa de canal.
• Se marca el EOF (en caso de
escritura).
• Se libera el volumen.
Archivos y flujos en Java
• Los archivos para Java son flujos
secuenciales de bytes.
Archivos y flujos en Java
• Cada archivo tiene un fin de archivo.
• Para procesar archivos es necesario
importar el paquete java.io.
• Ver: EscribeArchivo.java,
LeeArchivo.java
Archivos y flujos en Java
• Los datos almacenados en archivos se
conocen como datos persistentes.
Archivos y flujos en Java
• Una forma de almacenarlos es en un
archivo de datos de Java.
• Otra forma es en una base de datos.
• Para acceder a los datos de los
archivos se utilizan direcciones.
Archivos y flujos en Java
• Se hace referencia a un archivo por
su nombre y la ruta en donde está
almacenado.
• Este nombre se almacena en un
archivo de directorio.
Archivos y flujos en Java
• Existen dos tipos de archivos en Java:
– Archivos Secuenciales, almacenan y
acceden a los datos en forma secuencial
como en las cintas magnéticas.
– Archivos Aleatorios, almacenan y acceden
a los datos por medio de un número de
registro, permitiendo el acceso a cualquier
registro a través de él.
Archivos y flujos en Java
Archivos y flujos en Java
• Los archivos tienen un formato con
variables específicas, conocido como
registro (una clase).
• Un registro de alumno podría
contener: nombre, número de control,
domicilio, fecha de nacimiento, etc.
Archivos y flujos en Java
• Un registro de empleado podría
contener número de empleado,
nombre, RFC, fecha de nacimiento,
etc.
• El formato del registro lo determina
el programador.
Archivos y flujos en Java
• Los archivos de datos y de directorio
en Java se accesan de la misma
manera.
• La clase File de java contiene
métodos para acceder al archivo como
una unidad dentro de un directorio.
Archivos y flujos en Java
• También nos permite conocer la
longitud del archivo, el archivo, su
ruta, si es de lectura, escritura o
ambos y otros. File1.java
Archivos y flujos en Java
• Java tiene tres estándares de
manejos de flujos de datos, que se
comunican con los dispositivos de
entrada/salida:
– System.out – despliega en la pantalla.
– System.in – permite entradas desde el
teclado.
– System.err – permiten despliegue de
errores de E/S.
Archivos y flujos en Java
• Los archivos utilizan flujos (streams)
para la entrada y salida de datos.
• Un stream es una ruta de
comunicación entre un origen y un
destino.

Stream
Archivos y flujos en Java
• En el caso de lecturas en archivos de
datos el origen es el archivo de datos
y el destino la memoria del programa.

Stream
Origen Destino
Archivos y flujos en Java
• Cuando se utiliza el paquete java.io los
flujos a archivos ya están definidos:

– FileOutputStream (para salidas de bytes


hacia un archivo)
– FileWriter (para salidas de caracteres
hacia un archivo).
Archivos y flujos en Java
• Cuando se utiliza el paquete java.io los
flujos a archivos ya están definidos:

– FileInputStream (para entradas de bytes


desde un archivo).
– FileReader (para entradas de caracteres
desde un archivo)
Archivos y flujos en Java
Archivos y flujos en Java
Archivos y flujos en Java

• La clase FileOutputStream permite a


los programas realizar salidas a un
archivo de datos.
• El flujo que crea esta clase puede ser
usado para almacenar datos en un
archivo como Nombres.dat
Archivos y flujos en Java

• Las clases DataOutputStream (una


subclase de FilterOutputStream) y la
clase RandomAccessFile(acceso
aleatorio) implementan la interfaz
DataOutput, pues la necesitan para
escribir tipos de datos primitivos en
OutputStream.
• Investigar BufferedOutputStream y
DataOutput.
Archivos y flujos en Java

• Las clases DataInputStream (una


subclase de FilterInputStream) y la
clase RandomAccessFile implementan
la interfaz DataInput, pues la
necesitan para leer tipos de datos
primitivos de un flujo InputStream.
• Investigar BufferedInputStream y
DataInput.
Archivos y flujos en Java

• Es necesario el manejo de búffer para


hacer más rápidas las E/S.
• Cuando un archivo se cierra es
necesario utilizar el método flush()
para limpiar el búffer.
Excepciones de E/S en
Java

• Cuando Java detecta un error durante


la apertura o cierre de un archivo, se
genera una IOException.
• Que debe se capturada (catch) por el
programador para enviar un mensaje
de error.

You might also like