Professional Documents
Culture Documents
ndice
1. Introduccin.
1. Concepto de archivos.
2. Tipos de archivos
3. Organizacin de archivos
4. Operaciones sobre archivos
2. Organizaciones bsicas.
1. Organizacin Secuencial.
2. Organizacin Secuencial Indexado.
3. Organizacin Directa.
5. Visualizacin de informacin.
5.1 Representacin tabular.
5.2 Representacin grfica.
5.3 Representacin jerrquica.
1
1. Concepto de archivo.
Generalmente los datos se leen del archivo estndar de entrada (stdin) que identifica
el buffer del teclado, y los resultados se presentan en el monitor: archivo estndar de
salida (stdout) . Una caracterstica importante de los archivos es que los datos se
guardan en Dispositivos de Almacenamientos Secundarios (DAS), dispositivos que
permiten un almacenamiento permanente (cintas magnticas, discos magnticos,
discos pticos, memorias flash, etc.) diferente de la memoria principal de la
computadora (RAM), que es un almacenamiento voltil.
<<<<< Un archivo es un medio que permite almacenar datos en DAS >>>>>
Una pregunta razonable en este punto es Qu significa el trmino < medio > que se
utiliza en la definicin de archivo?, cmo se puede reemplazar la palabra medio?,
por el concepto tipo de dato.
<<<<<Un archivo es un tipo de dato que permite almacenar en DAS >>>>>
Qu es un tipo de dato?:
2
Los tipos de datos se pueden clasificar en estticos y dinmicos, los estticos se
clasifican a su vez en primitivos o elementales , en tipos de datos estructurados y en
tipos de datos definidos por el usuario (programador).
TIPOS DE
DATOS
LISTAS
PILAS
PRIMITIVOS DEFINIDOS POR
COLAS
EL USUARIO RBOLES
ARREGLOS
REGISTROS
ORDINALES NO ORDINALES
CONJUNTOS
ARCHIVOS
ENTERO REAL
CARCTER CADENA
BOOLEANO
ARCHIVO:
Los archivos tipo texto se caracterizan, por ser archivos legibles, esto se
debe a que se graban en el DAS de acuerdo a un cdigo de caracteres, por
ejemplo el cdigo ASCII.
Los archivos tipo binario no son legibles debido a que los datos se
almacenan de acuerdo a tipos de datos determinados.
Los archivos tipo texto se pueden crear desde cualquier editor o por medio
de un programa.
Los archivos tipo binario slo pueden ser creados desde un programa, en el
que se definen los tipos de datos asociados a los valores que se van a guardar
en el archivo. Esto significa que un archivo se constituye por registros que
pueden estar constituidos por diferentes tipos de datos, cada tipo de dato se
asocia a un campo determinado del registro.
<< Los campos constituyen un registro, los registros definen un archivo >>
Los registros en un archivo tipo texto tienen una longitud variable, que esta
en funcin de la cantidad de caracteres definidos en el registro o la lnea,
cada lnea tiene un carcter que representa el fin de la misma.
Los registros en un archivo tipo binario, se definen como registros de
longitud fija, debido a que se constituyen de acuerdo a la cantidad de bytes
definida por el tipo de dato de cada campo que integran el registro.
Los datos que se leen de un archivo tipo texto para colocarse en las celdas
que corresponden a la variables asociadas a los mismos en RAM (proceso de
entrada), se deben codificar de acuerdo a la implementacin del tipo de dato
definido para cada variable. Respecto al proceso de salida, los datos que se
leen de RAM para almacenarse en un archivo tipo texto, deben decodificarse
de la implementacin del tipo de dato al cdigo de caracteres. Estos procesos
de codificacin y decodificacin determinan que las operaciones con los
archivos tipo texto sean ms lentas .
Los procesos de entrada y salida relacionados con los archivos binarios no
requieren la codificacin y decodificacin, debido a que los datos se
encuentran grabados en el archivo de acuerdo a la implementacin de los
tipos de datos requerida para la variables asociadas a los datos, por ende la
aplicacin de estos archivos es ms rpida.
4
PROCEDIMIENTO DE ARCH
ENTRADA TEXTO
ARCH (CODIFICAR AL TIPO
TEXTO DE DATO) (STDOUT)
(STDIN)
ASCII
RAM
ASCII
VARIABLE Implementacin: PROCEDIMIENTO DE
TIPO DE DATO SALIDA
(DECODIFICAR AL
CDIGO DE
CARACTERES)
ARCH PROCEDIMIENTO
BINARIO DE ENTRADA
(DIRECTO) PROCEDIMIENTO
DE SALIDA
TIPO DE DATO (DIRECTO)
ARCH
BINARIO
TIPO DE DATO
5
Con base en su funcin, los archivos se clasifican en:
Archivo maestro.
Archivo de transacciones.
Archivo de trabajo.
Archivo de reporte.
Archivo de programa.
6
ARCHIVO
MAESTRO
(INFORMACIN
ACTUAL)
ARCHIVO
DE TRANSACCIONES.
(CAMBIOS)
ARCHIVO DE
TRABAJO.
(TEMPORAL)
ACTUALIZACIN
ARCHIVO DE
PROGRAMA.
(INSTRUCCIONES)
ARCHIVO DE
REPORTE
(PRESENTACIN
RESULTADOS)
7
Con respecto a las entradas y salidas en el marco de un proceso, los archivos se
clasifican como:
Archivos de entrada.
El archivo de entrada es el archivo del que se toman los datos de entrada,
para procesarlos y generar una informacin en un proceso determinado.
Archivos de salida.
Los archivos de salida sirven para almacenar informacin generada de un
proceso.
datos
RAM
Resultados
ARCHIVO Finales
DE
ENTRADA
ARCHIVO DE SALIDA
Resultados
Intermedios
ARCHIVO DE ENTRADA
- SALIDA
8
Considerando el acceso al archivo, los archivos se clasifican en:
Este tipo de archivo se caracteriza por permitir los dos accesos: secuencial y
aleatorio. Se deben constituir por registros que se identifiquen con un campo
llave; se requiere que los registros sean de longitud fija, por lo que el archivo
debe implementarse como binario.
9
1.3. Organizaciones de archivos
Organizacin es un sistema cuya estructura esta diseada para que los recursos
humanos, financieros, fsicos, de informacin y otros, de forma coordinada,
ordenada y regulada por un conjunto de normas, logren determinados fines.
ORGANIZACIN SECUENCIAL
ORGANIZACIN DIRECTA
ORGANIZACIN MULTILLAVE
10
Actividad: Equivale a la frecuencia de recuperacin de la informacin
contenida en los registros del archivo.
V F
Una llave?
V Slo
F Organizacin
Acceso Multillave
Secuencial?
?
Organizacin V Slo
F
Secuencial Acceso
Aleatorio?
Organizacin Organizacin
Directa Secuencial Indexada
11
1.4. Operaciones sobre archivos
1. CREACIN
2. ACTUALIZACIN
3. RECUPERACIN
a. CONSULTA
b. GENERACIN DE REPORTES
4. MANTENIMIENTO
12
APLICACIONES
/*Desarrolle un programa en Java para crear un archivo tipo texto, con el objetivo de
escribir 5 enteros, y posteriormente leerlos*/
package od_1;
import java.io.*;
public Main() {
}
vector.escribir ();
vector.leer();
}
}
----------------------------------------------------------------------------------------------------------
package od_1;
import java.io.*;
import java.util.*;
int i;
13
//DEFINICIN DEL NOMBRE LGICO Y APERTURA DEL ARCHIVO.
for(i=0;i<5;i++){
x[i]=entrada.nextInt();
//ESCRIBIR EN EL ARCHIVO.
archi.println (x[i]);
//CERRAR EL ARCHIVO
archi.close ();
}
for(i=0;i<5;i++){
//CERRAR EL ARCHIVO.
arch2.close();
}
14
/*Desarrolle un programa en Java para crear un archivo tipo binario, con el objetivo
de escribir 5 enteros, y posteriormente leerlos*/
package od_2;
import java.io.*;
public Main() {
}
vector.escribir ();
vector.leer();
}
}
---------------------------------------------------------------------------------------------------------
package od_2;
import java.io.*;
import java.util.*;
int i;
15
System.out.println (\n Escribe 5 Enteros: );
for(i=0;i<5;i++){
x[i]=entrada.nextInt();
//ESCRIBIR EN EL ARCHIVO.
archi.write (x[i]);
//CERRAR EL ARCHIVO
archi.close ();
}
for(i=0;i<5;i++){
//CERRAR EL ARCHIVO.
arch2.close();
}
}
Observaciones:
Clases utilizadas:
17
2. ORGANIZACIONES BSICAS.
Aplicacin:
Procesamiento por lotes (inventario,
salario).
Archivos histricos.
2.1.1.1 CREACIN
Escritura en el archivo
19
2.1.1.2 RECUPERACIN
RAM
ARCHIVO
Leer_Registro_M Registro_M
MAESTRO
Fin de Archivo
Maestro?. Concluir
PRESENTAR INFORMACIN
DE ACUERDO A LO
REQUERIDO.
20
2.1.1.3 ACTUALIZACIN
2.1.1.3.1 ACTUALIZACIN
(MODIFICACIN)
RAM
Leer_Registro_M
1
Archivo
Registro_M
Maestro
(ordenado)
Llave_Primaria_Registro
Leer_Registro_T
_M =
Llave_Primaria_Registro
Archivo _T
Transacciones. Registro-T
(ordenado)
(cambios)
Guardar Registro_T en
archivo Maestro Nuevo
Guardar Registro_M en
Archivo Maestro Nuevo
Fin de archivo
de
transacciones?.
Leer Siguiente
Registro_M, y siguiente Leer Siguiente
Registro_T Registro_M
Guardar Registros restantes del archivo
Maestro en el Nuevo Archivo Maestro.
Concluir.
Fin de archivo
Maestro? O
Fin de ambos
archivos? Concluir Fin de archivo
Maestro?. Concluir
1
21
2.1.1.3.2 ACTUALIZACIN
(INSERCIN)
Leer_Registro_M RAM
ARCHIVO Registro_M
MAESTRO
Leer_Registro_T
ARCHIVO DE
TRANSACCIN
(Nuevos Registros Registro_T
ORDENADOS)
V
Llave_Primaria_Registro_M < Llave_Primaria_Registro_T
Guardar Registro_M F
en archivo Maestro
Nuevo.
Guardar Registro_T en
archivo Maestro Nuevo.
Leer siguiente
Registro_M
Leer Siguiente
Registro_T
Fin de Archivo
Maestro? 1
Fin de archivo de
Guardar registros restantes del Archivo de Guardar registros restantes del Transacciones?
Transacciones en el archivo Maestro Nuevo. Archivo Maestro en el archivo
Concluir. Maestro Nuevo. Concluir.
22
2.1.1.3.3 ACTUALIZACIN
(ELIMINACIN)
Leer_Registro_M
RAM
ARCHIVO
MAESTRO
Registro_M
Leer_Registro_T
ARCHIVO
TRANSACCIN
(Registros Registro_T
ordenados para
eliminarse)
V
Llave_Primaria_Registro_M = Llave_Primaria_Registro_T
F
Leer Siguiente
Registro_M, y siguiente
Registro_T Guardar Registro_M en
Archivo Maestro Nuevo.
23
APLICACIONES
package registros;
import java.io.*;
import java.util.*;
/* Clase libro.java*/
package registros;
import java.io.*;
import java.util.Scanner;
int llave;
String nomb;
double clasifica;
24
do{
System.out.println("Clave del libro <<ENTERO>>: ");
llave=entrada.nextInt();
archi.writeInt(llave);
System.out.println("Nombre del libro <<CARACTERES SIN ESPACIO>>: ");
nomb=entrada.next();
archi.writeUTF(nomb);
System.out.println("Clasificacin del libro << REAL>>: ");
clasifica=entrada.nextDouble();
archi.writeDouble(clasifica);
System.out.println("Presiona 1 para el siguiente libro");
n=entrada.nextInt();
}while(n==1);
archi.close();
}
while((ap_actual=leer_archi.getFilePointer())!=(ap_final=leer_archi.length())){
llave=leer_archi.readInt();
System.out.println(llave);
nomb=leer_archi.readUTF();
System.out.println(nomb);
clasifica=leer_archi.readDouble();
System.out.println(clasifica);
}
leer_archi.close();
}
}
25
2.2 ORGANIZACIN SECUENCIAL INDEXADA.
Aplicacin:
Procesos que impliquen acceso
secuencial y aleatorio.
2.2.1.1 CREACIN
Implementacin: binario
Escritura en el archivo
27
2.2.1.2 RECUPERACIN
1
RAM
Leer_Registro_I
ARCHIVO 3
INDICE RBOL_BINARIO
ARCHIVO 2
Leer_Registro_M Registro_M
MAESTRO
3
Con direccin fsica, buscar registro
PRESENTAR INFORMACIN
DE ACUERDO A LO
REQUERIDO.
28
2.2.1.3. ACTUALIZACIN
2.2.1.3.1 ACTUALIZACIN
(MODIFICACIN)
1
3
29
2.2.1.3.2 ACTUALIZACIN
(INSERCIN)
RAM
Registro_M
Archivo
Maestro
2 (ordenado)
1
Nuevo_Reg Escribe registro (zona desbordamiento)
Nuevo_Registro
3 Archivo
INDICE.
30
2.2.1.3.3 ACTUALIZACIN
(ELIMINACIN)
LLAVE llave
1
3
31
APLICACIONES
/* Clase Main */
package od_5;
import java.io.*;
import java.util.*;
lib.escribir_Arch_Maestro();
System.out.println("LECTURA DEL ARCHIVO MAESTRO\n");
lib.leer_secuencial_maestro();
lib.leer_aleatorio_maestro();
}
/* Clase Libro.java */
package od_5;
import java.io.*;
import java.util.*;
int llave;
String nomb;
double clasifica;
32
public void escribir_Arch_Maestro()throws IOException{
int n;
StringBuffer buffer=null;
System.out.println("Archivo Maestro");
RandomAccessFile archi=new RandomAccessFile("biblioteca","rw");
Scanner entrada =new Scanner(System.in);
do{
System.out.println("Clave del libro");
llave=entrada.nextInt();
archi.writeInt(llave);
System.out.println("Nombre del libro");
nomb=entrada.next();
buffer=new StringBuffer(nomb);
buffer.setLength(15);
archi.writeChars(buffer.toString());
System.out.println("Clasificacin del libro");
clasifica=entrada.nextDouble();
archi.writeDouble(clasifica);
System.out.println("OTRO LIBRO? : SI=1, NO=O ");
n=entrada.nextInt();
}while (n==1);
archi.close();
}
33
public void leer_aleatorio_maestro( )throws IOException{
int n,dl;
long lreg,desplaza;
}
}
34
/* Para simular la bsqueda en el archivo ndice, desarrolle un programa en Java
para crear un rbol constituido por nodos con dos campos de informacin: llave y
posicin. Defina adems un mtodo para hacer una bsqueda con base en la llave.*/
package arbol;
import java.util.Scanner;
int llave;
int pos;
Scanner lee= new Scanner(System.in);
Arbol arbol1 = new Arbol();
for(int i=0;i<5;i++)
arbol1.insertar(i+100,i+1 );
do {
System.out.println("Dame la llave (100 ..104) / 0 para terminar");
llave=lee.nextInt();
pos=arbol1.buscar(llave);
if(pos!=0)
System.out.println("La posicin es "+pos);
}while(llave!=0);
}
}
package arbol;
35
package arbol;
import java.io.*;
36
2.3 ORGANIZACIN DIRECTA (RELATIVA).
Acceso aleatorio.
Aplicacin:
Procesos que impliquen acceso aleatorio,
por ejemplos cajeros automticos.
La direccin relativa (DR) se puede calcular con tcnicas de direccionamiento, stas se clasifican en
direccionamiento directo y direccionamiento indirecto. El modelo del primero es: DR=[(Llave primaria)-
(llave primaria mnima)] +1. El direccionamiento indirecto se clasifica a su vez en: Correspondencia por
asociacin, en el que la llave primaria se relaciona directamente con una direccin definida (se pueden utilizar
rboles); y correspondencia por clculo, ejemplos de sta son los mtodos hashing. Entre los mtodos
hashing destacan:
Divisin por un nmero primo: DR= R(llave) = (Llave MOD primo)+1.
Truncamiento o extraccin. Ejemplo: R(11197)=197 R(23197)=319.
Doblamiento: R(982347659)= 982+347+659=1988.
Seleccin: R(238465)=286 (seleccin de dgitos por posicin).
Cuadrado: R(213) = (213)2.
Conversin por cambio de base: R(679) = 9*110+7*111+6*112
Un problema grave del direccionamiento es la generacin de llaves sinnimas, stas son llaves diferentes con la
misma direccin relativa que provocan colisiones. Para este problema se pueden utilizar diferentes estrategias,
por ejemplo el concepto del cubo o la zona de sobreflujo o desbordamiento.
2.3.1.1 CREACIN
Implementacin: binario
Se define el modelo de
direccionamiento: R(llave) .
Escritura en el archivo
38
2.3.1.2 RECUPERACIN
ACCESO ALEATORIO!
RAM
Llave primaria Calcular Direccin
1
1 Relativa.
Con direccin relativa, buscar registro (si es necesario rea de cubos o
desbordamienmto)
ARCHIVO
Leer_Registro_M Registro_M
MAESTRO
PRESENTAR INFORMACIN
DE ACUERDO A LO
REQUERIDO.
39
2.3.1.3. ACTUALIZACIN
2.3.1.3.1 ACTUALIZACIN
(MODIFICACIN)
3
Escribir registro modificado
Calcular
Direccin
Llave primaria Relativa
40
2.3.1.3.2 ACTUALIZACIN
(INSERCIN)
RAM
Archivo
Maestro
Con llave
calcular
direccin
relativa.
41
2.3.1.3.3 ACTUALIZACIN
(ELIMINACIN)
3 ELIMINAR
REGISTRO.
RAM
(Marcarlo).
Leer_Registro_M Cuando sea necesario
Archivo Registro_M construir un nuevo
archivo maestro,
Maestro considerando la
eliminacin de los
registros marcados.
2
Calcular
Direccin
Llave relativa
Primaria
42
APLICACIONES
/*Main.Java*/
package serializacion;
import java.io.*;
import java.util.Scanner;
/*
* Grabar Java
*/
package serializacion;
import java.io.*;
import java.util.Scanner;
43
public class Grabar {
int llav;
String nom;
double clas;
/*
* Leer.java
*/
package serializacion;
import java.io.*;
import java.util.Scanner;
44
Creacion[] otro= new Creacion[5];
for(int i=0; i<otro.length; i++){
otro[i]=(Creacion)archi.readObject();
otro[i].mostrarInfo();
}
archi.close();
/*Creacin */
package serializacion;
import java.io.*;
import java.util.Scanner;
int llave;
String nombre;
double clasifica;
45
3. MTODOS DE ORDENAMIENTO Y BSQUEDA.
PROBLEMA
Se resuelve con
un algoritmo?
Teora de la
computabilidad
Qu se requiere?
Teora de la complejidad
Dentro del mbito de la teora de la complejidad es importante tener en cuenta que a menor
recurso el algoritmo es ms eficiente, dos recursos importantes son el tiempo (nmero de
pasos de ejecucin de un algoritmo) y el espacio (cantidad de memoria utilizada por un
algoritmo); por ende << a menor complejidad es ms eficiente un algoritmo>> , de ah el
siguiente cuestionamiento: Cmo se calcula la complejidad de un algoritmo?
46
Para determinar la complejidad de un algoritmo se debe considerar el concepto de la O
GRANDE (O). La O es una funcin que tiene como argumento una funcin del tiempo de
ejecucin.
O (f(n)*),
donde:
f(n)*: tiempo de ejecucin en el peor de los casos.
O (c)
47
Complejidad logartmica. Buscar en un diccionario: Se inicia la bsqueda a la mitad, si no
se encuentra la palabra en una de las dos mitades se repite el proceso (recursivo).
O (log n)
O (n2)
O (n) (lineal)
O (2n) (exponencial)
O (n logn) (logartmica)
48
Cmo se clasifican los algoritmos de ordenacin?
a) Algoritmos de enumeracin.
e) Algoritmos de combinacin: Two way (merge), natural two way, list merge.
a) Mezcla directa.
b) Mezcla natural.
d) Mtodo polifsico.
49
APLICACIONES
package enumera;
import java.util.Scanner;
} int x,y,pos;
int n=arreglo.length;
int aux[]=new int[n];
for(x=0;x<=(n-1);x++){
pos=0;
for(y=0;y<=(n-1);y++){
if(x!=y)
if(arreglo[x]>arreglo[y])
pos++;
}
aux[pos]=arreglo[x];
}
for(pos=0;pos<n;pos++)
arreglo[pos]=aux[pos];
return arreglo;
}
System.out.println("Valores ordenados");
for(int i=0; i<arreglo.length;i++){
System.out.println(arreglo[i]);
}
}
50
Ordenamiento por insercin directa
Mtodo de la baraja.
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
for(i=1; i<arreglo.length;i++){
aux=arreglo[i];
k=i-1;
while( (k>=0) && (aux<arreglo[k]) ){
arreglo[k+1]=arreglo[k];
k- =1;
}
arreglo[k+1]=aux;
}
return arreglo;
}
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
51
Ordenamiento por insercin.
Mtodo SHELL .
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
e=n+1;
while(e>1){
e=e/2;
ban=1;
while(ban==1){
ban=0;
i=0;
while((i+e)<n){
if(arreglo[i]>arreglo[i+e]{
aux=arreglo[i];
arreglo[i]=arreglo[i+e];
arreglo[i+e]=aux;
ban=1;
}
i++;
}
}
}
return arreglo;
}
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
52
}
Ordenamiento por intercambio.
Mtodo BURBUJA .
int i, j, aux;
int n=5;
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
return arreglo;
}
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
53
Ordenamiento por intercambio.
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
i=ind_izq;
i=ind_der;
elem=arreglo[(i+j)/2];
do{
while(arreglo[i]<elem && i<ind_der)
i++;
while(arreglo[j]>elem && j>ind_izq)
j--;
if(i<=j){
aux=arreglo[i];
arreglo[i]=arreglo[j];
arreglo[j]=aux;
i++;
j--;
}
}while(i<j);
if(ind_izq<j)
quick_sort(arreglo,ind_izq,j);
if(i<ind_der)
quick_sort(arreglo,i,ind_der);
}
____________________________________________________
____________________________________________________
____________________________________________________
}
54
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
package radixsort;
public class Nodo {
Ordenamiento por intercambio. public int info=0;
Mtodo RADIX SORT public int next=0;
55
Ordenamiento por Seleccin
package heapsort;
}
}
56
Ordenamiento por Seleccin Directa.
Mtodo DIRECTO.
57
Ordenamiento Externo
import java.io.*;
58
public static void generaFicheroNumeros(File fich)throws IOException{
DataOutputStream fichCOut=new DataOutputStream(new FileOutputStream(fich));
for (int i=0; i<20; i++){
fichCOut.writeInt(1+(int)(Math.random()*100));
}
fichCOut.close();
}
59
public static void copiTramo(DataInputStream dis, DataOutputStream dos)throws
IOException{
do{
fdt=copiar(dis,dos);
}
while(!fdt);
}
60
public static void mezcla(File fichA, File fichB, File fichC)throws
IOException{
DataInputStream _Aln=new DataInputStream(new FileInputStream(fichA));
DataInputStream _Bln=new DataInputStream(new FileInputStream(fichB));
DataOutputStream _COut=new DataOutputStream(new
FileOutputStream(fichC));
while ((!eof(_Aln))&&(!eof(_Bln))){
mezTramo(_Aln,_Bln,_COut);
numTramos++;
}
while (!eof(_Aln)){
copiTramo(_Aln,_COut);
numTramos++;
}
while (!eof(_Bln)){
copiTramo(_Bln,_COut);
numTramos++;
}
_Aln.close();
_Bln.close();
_COut.close();
}
61
3.2. Algoritmos de bsqueda.
62
Algoritmo de bsqueda binaria.
package busbinaria;
import java.util.*;
}
63
4. ORGANIZACIN DE ARCHIVOS ACTUALES.
Introduccin
La poca actual es considerada como la Era de la Informacin; razn por la cual se habla de
la Sociedad de la Informacin, y en su forma evolutiva, como sociedad del conocimiento e
innovacin que considera fundamentalmente las mltiples necesidades del individuo y de la
entidades, de producir y consumir informacin; sea para desarrollar determinadas
actividades o mantener una esfera de poder, y por ltimo por la enorme facilidad de crear,
difundir y acceder a la informacin: por ejemplo: el correo electrnico, internet y las
comunicaciones.
64
4.1. Procesamiento de archivos CVS.
Qu es un archivo CVS?
CVS utiliza una arquitectura cliente-servidor: un servidor guarda la(s) versin(es) actual(es)
del proyecto y su historia, y los clientes se conectan al servidor para sacar una copia
completa del proyecto, trabajar en esa copia y entonces ingresar sus cambios. Adems
guarda las versiones antiguas de los archivos. Esto permite recuperar en cualquier momento
versiones anteriores a la actual.
Dado que trabaja con archivos ASCII es igual de til para trabajar con cdigos fuentes de
programas o con toda clase de documentos siempre que su formato sea completamente de
texto, como pueden ser archivos sgml/html/xml y tambin puede almacenar archivos
binarios.
65
Cmo trabaja el servidor que sirve de repositorio a los archivos?
CVS puede trabajarse de forma local (repositorio y copias de trabajo en el mismo sistema)
o remota (el repositorio est en un sistema servidor y la copia local en otro que es cliente
del primero). Se le llama repositorio a la jerarqua de directorios alojada en un servidor que
contiene diferentes mdulos (rbol de directorios que forma parte del repositorio; cuenta
con un nombre identificador gracias al cual podemos bajarlo de forma selectiva) a
disposicin de los usuarios.
Al trabajar en remoto con CVS pueden elegirse varias alternativas de autentificacin (es
decir, de demostrar al servidor que somos quienes decimos que somos). A continuacin se
muestran las ms importantes:
Ssh: suministra una contrasea y un nombre de usuario cada vez que ejecute CVS.
Pserver: no se necesita acceder por medio de una contrasea para poder trabajar con CVS
solo necesita un nombre de usuario.
66
Cul es la estructura de un repositorio?
BRANCH BRANCH
HEAD
67
Cmo puedo trabajar en l?
Funciones Comandos
Crear un modulo. Co
Actualizar cambios Update
Publicar nuestras ci/commit
modificaciones o
guardar cambios
CVS informa acerca de qu est haciendo con cada fichero y para eso utiliza el cdigo de
una letra. Este es el significado:
1.-Pueden ocurrir cuando dos o ms personas modifican a la vez exactamente las mismas
partes de un archivo. Para evitarnos el problema elegimos la modificacin que ms nos
guste y borramos todo lo dems.
Resolucin de conflictos:
Letra Significado
U Se ha bajado un archivo completamente
nuevo.
P Se ha bajado una modificacin del
archivo y ahora ste est actualizado.
A El archivo lo ha aadido usted pero no lo
ha subido todava al repositorio.
R El archivo ha sido borrado (pero podra
recuperarse del histrico que se almacena
en el repositorio).
C Hay un conflicto: otra persona ha
modificado antes las mismas partes del
fichero y no le queda ms remedio que
revisarlo manualmente antes de poder
subir los cambios de ese fichero.
M Usted ha modificado el fichero pero an
no lo ha subido al repositorio.
69
Conclusin:
70
4.2. Procesamiento de archivos XML.
El XML proviene de un lenguaje que invent IBM all por los aos 70.
71
Cmo caracteriza al XML?
Estructura Lgica
Cada archivo XML contiene uno o ms elementos, cuyos lmites estn
delimitados por etiquetas de comienzo y de final.
Cada elemento tiene un tipo, identificado por un nombre y puede tener un
conjunto de especificaciones de atributos.
Cada especificacin de atributo tiene un nombre y un valor.
Estructura Fsica
Un archivo XML puede consistir en una o ms unidades de
almacenamiento, llamadas entidades. Todas estas unidades tienen contenido y
todas ellas estn identificadas por un nombre. Cada archivo XML contiene
una entidad que sirve como punto de partida para el procesador XML y que
puede contener el archivo completo.
73
Ejemplo de Aplicaciones del XML
TELEFONIAS MOVILES
A travs de esta solucin los clientes pueden tener acceso a aplicaciones integradas desde los
Telfonos IP:
Envi de mensajes SMS a celular.
Geo ubicacin de flotilla de vehculos o de personas.
Video vigilancia
LA PAQUETERA DE OFFICE
Una de las aplicaciones de los archivos xml con la cual se puede guardar archivos con este
formato (.xml) si se abre en block de notas, aparecer la estructura de este tipo de archivos.
Se puede ver que tiene la primera lnea indispensable para indicar que es un archivo xml. L
74
Cmo crear un archivo con extensin .xml.?
package trabajo;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.net.URL;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
try {
URL url=new URL("(tiene costo) ");
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
String entrada;
String cadena="";
if (primerNodo.getNodeType() == Node.ELEMENT_NODE) {
NodeList primerNombreElementoLista
=primerElemento.getElementsByTagName("nombre");
Element primerNombreElemento = (Element)
primerNombreElementoLista.item(0);
NodeList primerNombre = primerNombreElemento.getChildNodes();
nombre = ((Node) primerNombre.item(0)).getNodeValue().toString();
System.out.println("Nombre : " + nombre);
NodeList segundoNombreElementoLista =
primerElemento.getElementsByTagName("apellido");
Element segundoNombreElemento = (Element)
segundoNombreElementoLista.item(0);
NodeList segundoNombre = segundoNombreElemento.getChildNodes();
apellido = ((Node) segundoNombre.item(0)).getNodeValue().toString();
System.out.println("Apellido : " + apellido);
NodeList tercerNombreElementoLista =
primerElemento.getElementsByTagName("fecha");
Element tercerNombreElemento = (Element) tercerNombreElementoLista.item(0);
NodeList tercerNombre = tercerNombreElemento.getChildNodes();
fecha = ((Node) tercerNombre.item(0)).getNodeValue().toString();
System.out.println("Hits : " + fecha);
NodeList cuartoNombreElementoLista =
primerElemento.getElementsByTagName("texto");
Element cuartoNombreElemento = (Element) cuartoNombreElementoLista.item(0);
NodeList cuartoNombre = cuartoNombreElemento.getChildNodes();
texto = ((Node) tercerNombre.item(0)).getNodeValue().toString();
System.out.println("Mensaje : " + texto);
}
}
}
catch (Exception e) {
e.printStackTrace();
}
}
76
4.3. Organizacin de archivos no estructurados.
Ejemplos:
Un programa (Java, C++, C, Perl)
Los documentos de procesamiento de
texto
Las presentaciones
Los archivos de imgenes y vdeo
Las imgenes de mquinas virtuales El nombre asociado a estos archivos slo
representa una funcin lgica, no de
dependencia fsica. Su nombre se utiliza
para hacer referencia al archivo, tiene que
ser nico entre los nombres de archivos
lgicos de la base de datos y no incluye la
ruta de acceso al archivo.
Restricciones para este tipo de archivos:
nombre no mayor de 255 caracteres
no usar meta-caracteres del SHELL
evitar comenzar con un nmero
tener en cuenta que un nombre comenzado
con un punto, significa un archivo oculto.
77
Implementacin
Aqu se cre una imagen en el programa PAINT con extensin .png, el cual genera su
archivo no estructurado.
78
Pero al intentar visualizar esa
imagen con un editor de texto
llamado Notepad no muestra la
imagen si no que se muestra la
estructura de lo que el entendi al
momento de que le llega el archivo
de intercambio.
79
Conclusin
80
4. VISUALIZACIN DE INFORMACIN.
81
En entornos inteligentes las aplicaciones conscientes de contexto permiten conseguir
interfaces naturales, incluso servicios basados en interaccin implcita que utilizan todo este
conocimiento de su entorno para facilitar el da a da de los usuarios, de forma sencilla. Una
nueva apuesta se basa en aplicar la consciencia de contexto para proporcionar informacin
adaptativa a los usuarios a travs de los dispositivos y gracias a la tecnologa de
identificacin por radiofrecuencia, todos ello embebido en el entorno y transparente al
usuario. La Inteligencia Ambiental es un paradigma que promete cambiar de forma radical
la vida diaria de las personas. Puede entenderse como un paraguas que abarca la
computacin ubicua (Weiser, 1993), las interfaces naturales (Coen, 1998) y las
comunicaciones ubicuas (Chen, & Kotz, 2000), pero que se alimenta de otras muchas
agentes inteligentes artificiales, entre otras.
En los ltimos aos, esta habiendo grandes esfuerzos entre los investigadores para obtener
nuevas formas de interaccin con los dispositivos computacionales de forma ms simple y,
sobre todo, ms natural. En este sentido se est trabajando en el campo de la computacin
ubicua, que, segn la visin inicial de Weiser (Weiser, 1991) representa la desaparicin del
actual computador como una herramienta para todo. Weiser propuso distribuir la
computadora en pequeos dispositivos de funcionalidad reducida y omnipresentes en el
entorno. Con este enfoque se puede acercar a una interaccin intuitiva y conseguir que el
usuario pueda centrarse plenamente en la tarea a realizar sin preocuparse en absoluto de la
herramienta. En la interaccin tradicional (explcita) el usuario debe especificarle al sistema
todos los detalles de la tarea que desea realizar en interfaces demasiado sofisticadas, un
enfoque no vlido si se busca acercarse a la computacin invisible. Se define la
interaccin persona-computador implcita (iHCI) como la interaccin de una persona con el
entorno y con los dispositivos encargados de ayudar para un fin; con este proceso el sistema
adquiere entradas implcitas del usuario para proporcionarle salidas implcitas. Se puede
observar con claridad que el contexto del usuario toma un papel fundamental como fuente
de informacin que suple la ausencia de entradas explcitas del usuario. Se necesita, por
tanto, desarrollar aplicaciones conscientes del contexto (context-awareness).
82
La informacin de contexto, es imprescindible para conseguir interfaces ms naturales as
como para poder ofrecer servicios cuya interaccin con el usuario sea implcita, es una
informacin por s misma catica, a la vez que demasiado amplia y genrica como para
tenerla en cuenta sin un anlisis conciso previo. En primer lugar qu se entiende por
contexto? En la literatura existe multitud de definiciones; si se decanta por la de A. Dey:
Contexto es cualquier informacin que pueda ser utilizada para caracterizar la situacin de
una entidad, entendiendo entidad como una persona, lugar u objeto considerado relevante
para la interaccin entre el usuario y la aplicacin. Se trata de una definicin interesante
para centrar los objetivos pero para poder aprovechar las bondades del contexto se debe dar
respuesta de las siguientes preguntas: Quin (el perfil del usuario), despliega el Qu (la
actividad a realizarse, en este caso servicios de visualizacin de informacin) en Dnde (el
lugar en que se realizaran las actividades) Cundo (dependiendo de las agendas de cada
usuario) y Por qu (Interaccin implcita).
Es necesario definir una ontologa para ofrecer una especificacin explcita de servicios en
ambientes conscientes de contexto, definida en forma modular para hacerla ms general y
aplicable a diferentes servicios. A travs de esta especificacin formal se consiguen
mecanismos para usar y compartir el conocimiento, tanto entre humanos como entre
aplicaciones o mquinas, consiguiendo una comprensin mejor. La ontologa debe estar
enfocada al dominio de discurso de la inteligencia ambiental, concretada en el servicio de
visualizacin de informacin. Para ello se definen de forma progresiva la especializacin de
los conceptos que intervienen (clases), las propiedades de cada clase que describen varias
caractersticas o atributos de cada concepto (propiedades o roles) as como las relaciones
entre clases, llegando cada vez a un menor nivel de abstraccin.
Es importante aprovechar las tres utilidades fundamentales de las ontologas:
En primer lugar mejorando la comunicacin tanto entre humanos, como entre sistemas y
entre humanos y los sistemas computacionales. El objetivo es consensuar el conocimiento
de la porcin de realidad modelada. En segundo lugar la ontologa permite la organizacin
y reutilizacin del conocimiento. Por ltimo la ontologa es fundamental para la inferencia
computacional.
83
Es importante considerar en este apartado que el valor de cualquier sistema de
informacin est condicionado por la calidad y cantidad de informacin contenida,
pero al mismo tiempo por su findability o facilidad para encontrar dicha informacin,
cualidad que naturalmente disminuir conforme aumente el tamao del sistema.
84
forma previa cules son sus necesidades de informacin. Es decir, el usuario prefiere
navegar el conjunto documental, y reconocer visualmente qu est buscando, en lugar de
especificar sus necesidades mediante el lenguaje de consulta.
En funcin del grado de especificidad de las necesidades de informacin del usuario existen
entre varios tipos de browsing :
Browsing de bsqueda directa: El usuario sabe qu est buscando.
Browsing de propsito general: El usuario explora fuentes con una
alta probabilidad de resultar de inters.
Browsing fortuito o por serendipia: Es una estrategia de bsqueda
al azar.
El ejemplo ms claro de browsing es la navegacin hipertextual, en la que el usuario
explora visual y espacialmente el conjunto documental: reconoce visualmente la
informacin buscada o aquellos enlaces que cree le llevarn a esta informacin, y se
desplaza por este espacio de informacin saltando de pgina en pgina.
Entre los sistemas de informacin que ofrecen la posibilidad de bsqueda por browsing,
cabe destacar aquellos que proveen de un medio especfico para realizar browsing grfico a
travs de las denominadas Interfaces Visuales de Recuperacin de Informacin o VIRIs
(Visual Information Retrieval Interfaces). El browsing grfico es similar al hipertextual,
pero mientras que el hipertextual nicamente permite explorar los documentos por
separado, el browsing grfico posibilita adems visualizar conjuntos de documentos de
forma global a travs de su abstraccin grfica, no necesariamente textual.
Los VIRIs, por tanto, no slo tienen el objetivo de ayudar al usuario a navegar y recuperar
informacin, sino tambin el de ofrecer una visin global del conjunto documental. A
travs de esta vista global el usuario podr predecir qu puede encontrar, e incluso adquirir
nuevo conocimiento mediante la interiorizacin de la visualizacin.
85
BIBLIOGRAFA
86