5. Estructuras de Datos Complejas (Campo, Registro, Archivo)¶
5.1. Concepto de Campo¶
Un campo es un conjunto de caracteres capaz de suministrar una determinada información referida a un concepto. Es la entidad lógica más pequeña, un conjunto de bytes que conforman un dato. Características:
Nombre: Identificador del campo.
Tipo: Tipo de caracteres que puede contener (alfabético, entero, etc.).
Tamaño: Cantidad de caracteres que puede contener.
Ejemplo de definición (conceptual): dni : N (8)
(Nombre: dni, Tipo: Numérico, Tamaño: 8)
5.2. Registro¶
Un registro es un conjunto de campos que permanecen juntos y se tratan como una unidad. Se define en el AMBIENTE para ser usado en el algoritmo.
Definición de un Tipo Registro:
PERSONA = Registro
DNI: Entero;
Nombre: AN(50); // Alfanumérico de 50 caracteres
Domicilio: AN(70);
Fin Registro
Uso de un Registro:
Primero, se declara una variable del tipo registro definido:
// En el AMBIENTE del algoritmo principal o subacción
RegAlumno: PERSONA
Luego, se accede a sus campos usando el selector de campo (.
):
RegAlumno.DNI := 12345678;
LEER(NroDNI);
RegAlumno.DNI := NroDNI;
ESCRIBIR(RegAlumno.Nombre);
5.3. Archivos¶
Un archivo es un conjunto de registros que, una vez almacenados (generalmente en memoria externa), se pueden utilizar a través de distintas aplicaciones.
5.3.1. Características Generales de los Archivos¶
Almacenados en memoria externa (permanente). Proceso en memoria interna.
Independencia de los datos respecto a los algoritmos que los usan.
Unidad básica de entrada/salida es el registro completo.
Gran capacidad de almacenamiento.
5.3.2. Consistencia y Congruencia de Archivos¶
Consistencia: Verifica la validez del dato almacenado con su definición en el ambiente (tipo, rango).
Ej:
FECHA = Registro DD: 1..31; MM: 1..12; AAAA: Entero; Fin Registro;
RegFecha = (02/12/2019)
es consistente.RegFecha = (50/50/9999)
es inconsistente.Congruencia: Verifica la validez de los datos entre sí.
Fina: Validación entre datos en archivos distintos. Ej: DNI en archivo ALUMNOS validado con archivo PADRON.
Gruesa: Validación entre datos en un mismo registro. Ej:
RegFecha = (31/02/2019)
es consistente (cada campo individualmente), pero no congruente (febrero no tiene 31 días).
5.3.3. Clasificación de Archivos por su Contenido¶
De acuerdo a su utilidad:
De Entrada: Compuestos por datos almacenados en un dispositivo de entrada.
De Salida: Contienen información que se visualiza desde la computadora.
Históricos (o Maestros): Datos que varían en el tiempo, con información actualizada.
De Movimiento (o Transacciones): Se usan con archivos constantes/maestros, poseen campos en común para actualizar.
Temporales (o Auxiliares): Se crean durante la ejecución de un programa y se borran al finalizar.
De acuerdo a sus datos almacenados:
ASCII (o de Texto): Datos almacenados como texto simple. Permite intercambio y modificación manual.
Binarios: Almacena información en un lenguaje que solo la computadora comprende (colores, sonidos, imágenes, órdenes). Menor peso que los ASCII.
5.4. Organización de Archivos¶
Manera en que se encuentran almacenados los registros en el archivo. Depende de los soportes:
Soportes Secuenciales: Registros escritos uno a continuación del otro. Para acceder al registro N, se deben recorrer N-1 anteriores.
Soportes Direccionables: Información localizada por su dirección. Registros deben tener una clave única.
Tipos de Organización:
Secuencial: Sucesión de registros almacenados consecutivamente (continuidad física). Para acceder a un registro
n
, se deben pasar por losn-1
anteriores. Común en soportes secuenciales (cintas) y direccionables (discos).Relativa (o Directa): El orden físico no necesariamente corresponde al lógico. Se accede por su posición (lugar relativo). Necesita soporte direccionable, campo clave y relación clave-dirección. Permite huecos o espacios libres intermedios.
// Dir. memoria | Clave | Datos // 1 | | // 2 | 2 | Registro 'A' // 3 | | // 4 | 4 | Registro 'B' // 5 | 5 | Registro 'C'
Indexada (o Secuencial Indexada): Consta de un archivo de datos y un archivo índice.
Área de datos (o primaria): Registros en forma secuencial por clave, sin huecos.
Área de índices: Tabla con niveles de índice que apuntan a bloques/registros en el área de datos.
Ejemplo conceptual:
Área de Índices:
Clave
Dirección (en archivo de datos)
15
010
24
020
36
030
…
…
Área de Datos (en dirección 010):
Dir.
Clave
Datos
010
15
Datos del registro 15
011
Siguiente registro secuencial
…
…
…
5.5. Acceso de Archivos¶
Manera en que se recuperan (leen) los registros.
Acceso Secuencial: Acceso según el orden de almacenamiento, uno tras otro.
Acceso Directo: Acceso a un registro determinado sin consultar precedentes. Solo con soportes direccionables.
Acceso Mixto: Acceso directo a un registro y posterior acceso secuencial a los siguientes.