Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Apuntes sobre los Datos Parte1, Apuntes de Metodología de Programación

Apuntes de Metodología y Tecnología de la Programación sobre los Datos, Conceptos y definiciones, Fichero, Tipos de fichero, Estructura de registros, Clasificación de registros, Registros de longitud fija.

Tipo: Apuntes

2013/2014

Subido el 23/01/2014

el_pancho
el_pancho 🇲🇽

4.4

(114)

577 documentos

1 / 42

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
TEMA 1
1. INTRODUCCIÓN
Los datos con los que trabajamos normalmente en informática son procesados y manipulados de forma directa
en lo que denominamos normalmente como Memoria Principal. Esto repercute en una doble limitación a la
hora de tratar la información correspondiente :
Por ser limitada la memoria principal, esto implica que la capacidad de almacenamiento queda también
limitada o restringida a la capacidad propia de cada memoria principal que puede ser de diferente tamaño
según el ordenador y sus características. Por ello deberemos de recurrir a otros dispositivos de
almacenamiento de datos o de almacenamiento masivo de información, como la denominada Memoria
Auxiliar.
Todos los datos que quedan almacenados en la memoria principal, podemos decir que tienen un corto o breve
período de vida que variará siempre en función del tiempo que dure o tarde en ejecutarse el programa en
cuestión. Una vez que este programa finaliza su ejecución, sus datos correspondientes se pierden de forma
irremediable y para siempre si antes no se han almacenado en un dispositivo o periférico de tipo externo como
podría ser por ejemplo un disco de almacenamiento.
El uso de ficheros nos va a servir de gran ayuda a la hora de estructurar adecuadamente toda la información, y
además nos facilitará el manejo de grandes volúmenes de datos. Los ficheros nos permiten acceder a esa
creciente avalancha de información de una forma rápida.
Cualquier aplicación implica la generación y uso de una determinada información. Con algunas excepciones
la entrada a la aplicación se hace utilizando archivos y casi en todas las aplicaciones, la salida se guarda en
archivos para almacenamiento a largo plazo y para posteriores accesos por parte del usuario y de otros
programas.
TEMA 2
2. CONCEPTOS Y DEFINICIONES
FICHERO
Un fichero es un conjunto de datos estructurados que pueden estar almacenados en un soporte de datos de
forma que puedan ser tratados o utilizados de forma individual o global. Cada fichero se tiene que identificar
con un nombre. Los elementos que forman un fichero se llaman registros y dichos registros se definen como
la unidad mínima de información completa de un fichero.
Existen dos modelos de ficheros:
Fichero Lógico:
Los crea el programador agrupando un conjunto de datos con características comunes (nombres, apellidos,
dirección, teléfono... etc. ).
Fichero Físico:
Es una determinada cantidad de información que el sistema operativo es capaz de tratar como una sola unidad.
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a

Vista previa parcial del texto

¡Descarga Apuntes sobre los Datos Parte1 y más Apuntes en PDF de Metodología de Programación solo en Docsity!

TEMA 1

1. INTRODUCCIÓN

Los datos con los que trabajamos normalmente en informática son procesados y manipulados de forma directa en lo que denominamos normalmente como Memoria Principal. Esto repercute en una doble limitación a la hora de tratar la información correspondiente : Por ser limitada la memoria principal, esto implica que la capacidad de almacenamiento queda también limitada o restringida a la capacidad propia de cada memoria principal que puede ser de diferente tamaño según el ordenador y sus características. Por ello deberemos de recurrir a otros dispositivos de almacenamiento de datos o de almacenamiento masivo de información, como la denominada Memoria Auxiliar. Todos los datos que quedan almacenados en la memoria principal, podemos decir que tienen un corto o breve período de vida que variará siempre en función del tiempo que dure o tarde en ejecutarse el programa en cuestión. Una vez que este programa finaliza su ejecución, sus datos correspondientes se pierden de forma irremediable y para siempre si antes no se han almacenado en un dispositivo o periférico de tipo externo como podría ser por ejemplo un disco de almacenamiento. El uso de ficheros nos va a servir de gran ayuda a la hora de estructurar adecuadamente toda la información, y además nos facilitará el manejo de grandes volúmenes de datos. Los ficheros nos permiten acceder a esa creciente avalancha de información de una forma rápida. Cualquier aplicación implica la generación y uso de una determinada información. Con algunas excepciones la entrada a la aplicación se hace utilizando archivos y casi en todas las aplicaciones, la salida se guarda en archivos para almacenamiento a largo plazo y para posteriores accesos por parte del usuario y de otros programas. TEMA 2

2. CONCEPTOS Y DEFINICIONES FICHERO Un fichero es un conjunto de datos estructurados que pueden estar almacenados en un soporte de datos de forma que puedan ser tratados o utilizados de forma individual o global. Cada fichero se tiene que identificar con un nombre. Los elementos que forman un fichero se llaman registros y dichos registros se definen como la unidad mínima de información completa de un fichero. Existen dos modelos de ficheros: Fichero Lógico : Los crea el programador agrupando un conjunto de datos con características comunes (nombres, apellidos, dirección, teléfono... etc. ). Fichero Físico: Es una determinada cantidad de información que el sistema operativo es capaz de tratar como una sola unidad.

TIPOS DE FICHERO

SEGÚN SU UTILIZACIÓN

Permanentes o fijos: Constantes: Contienen información fija y necesaria para el óptimo funcionamiento y rendimiento de la aplicación e información con un bajo índice de variación en el tiempo. Por ejemplo un fichero de códigos postales en el cual se pueden relacionar códigos postales con una serie de diversas poblaciones y distritos. Contienen tablas y funciones. Históricos : Contienen información acumulada a lo largo del tiempo sobre las actualizaciones sufridas en los ficheros maestros y constantes. Los hacen los usuarios para las estadísticas. Por ejemplo el inventario al final de año de las existencias de un almacén. Maestros : Ficheros maestros llamados también ficheros de situación. Están encargados de mantener de forma constante y actualizados los campos cuya información es variable. Estos ficheros se modifican constantemente. Por ejemplo un fichero de inventario con información sobre la cantidad de piezas existente en un almacén. No permanentes o temporales: Se borran y actualizan a los ficheros fijos maestros. Fichero de movimientos: Este tipo de ficheros suele contener la información necesaria para la actualización de los ficheros maestros. Contienen las últimas modificaciones que hay que añadir al fichero maestro. La información se obtiene de los resultados obtenidos en operaciones realizadas y que posteriormente será utilizada para actualizar los campos que tienen en común el fichero maestro y el fichero de movimiento. La durabilidad o período de vida de este tipo de ficheros es muy corto, debido a que su función o utilidad finaliza al efectuarse la modificación o actualización de dichos datos (Campos) en el fichero maestro. Una vez realizada dicha operación el fichero de movimientos puede ser destruido o mantenido durante un tiempo limitado. Por ejemplo los datos de una cuenta bancaria. Ficheros de maniobra o transitorios: Son ficheros auxiliares creados durante la ejecución de programas o aplicaciones. El fin de estos ficheros es el de obtener cierta información que posteriormente será procesada para conseguir unos resultados esperados o calculados. Su período de vida es aún mas corto que el de los ficheros de movimiento o transición, pues son destruidos antes de que el programa o la aplicación correspondiente finalice su ejecución y el usuario no puede verlos. Por ejemplo un fichero auxiliar que contiene la clasificación de un fichero de inventario para hacer un listado estadístico anual. Finalizado el proceso de listado, es destruido.

Existen dos tipos de registros: Registro lógico: Son estructuras de datos homogéneas que hacen referencia a una misma entidad o cosa. Esta estructura está dividida a su vez en unos elementos más pequeños a los cuales denominaremos Campos, estos podrán ser del mismo o diferente tipo. Podríamos considerar al registro como una unidad de tratamiento incluida dentro de un fichero. Registro físico: Un registro físico al que podemos llamar también bloque , es la cantidad de información que el sistema operativo puede transferir como unidad al realizar una operación de entrada y salida entre la memoria principal del ordenador y los periféricos o dispositivos de almacenamiento. El tamaño de un bloque o registro físico dependerá o variará en función de las características del ordenador. DEFINICIONES : Campo : Llamaremos campo a cada uno de los elementos que constituyen un registro lógico, considerándolo como una unidad de tratamiento independiente dentro del mismo registro. Cada campo se caracteriza y se diferencia de los demás dentro de un registro por: El tipo de dato que tiene asociado (numérico, alfanumérico, lógico, de tipo fecha, de campo memo,... etc. ). El identificador o nombre a través del cual podemos referenciarle y acceder a su contenido (nombre, apellidos, dirección, fecha de nacimiento,... etc. ). El tamaño del dato (20 bytes, 45 bytes,... etc.). Subcampo : Los campos de un registro, con frecuencia, se pueden subdividir en unidades de tratamiento con las mismas características que un campo. De esta forma podemos establecer cierta jerarquía entre los datos almacenados dentro de un fichero y más concretamente dentro de cada registro. Esta jerarquía deberá tenerse en cuenta a la hora de tratar o procesar la información que tenemos almacenada. Dentro de un subcampo puede haber mas subcampos. Campo clave: Para poder diferenciar a un registro de otro dentro de un fichero, se tiene que recurrir a una información que sea única. Esta información sólo nos la puede ofrecer el campo clave. Este campo solo se puede crear con independencia del resto de la información (campos) del registro o por defecto se puede utilizar un campo de los ya existentes y disponibles en la estructura de dicho registro. El objetivo es poder realizar a traves de él operaciones de búsqueda y clasificación. La definición de un campo clave en un fichero no es obligatoria, es decir, se puede carecer de ella o puede estar formada por varias definiciones de campos claves, en cuyo caso se establecerán diferentes categorías entre ellas, dando lugar a lo que denominaremos como clave principal y claves secundarias. Bloqueo de registro o registro bloqueado:

Un registro puede constar de un número variable de registros lógicos, por tanto, suponiendo que utilizáramos como soporte de almacenamiento el disco, podríamos transferir varios registros lógicos de la memoria al disco y del disco a la memoria en una sola operación de entrada y salida. Este fenómeno recibe el nombre de bloqueo y el registro físico así formado se llama bloque. Registro expandido: Es justamente el concepto contrario del registro bloqueado, cuando el registro lógico ocupa varios bloques se le da la denominación de registro expandido. Factor de bloqueo: Con factor de bloqueo hacemos alusión al conjunto o número de registros lógicos que pueden entrar o estar contenidos en un bloque o registro físico. Ejemplo : 210 97 Tamaño del registro lógico. 16 2 Factor de bloqueo. Resto : Nº de bytes que sobran. Tamaño del registro físico. REGISTRO LÓGICO NOMBRE APELLIDOS DIRECCIÓN EDAD Tamaño : 97 bytes REGISTRO FÍSICO O BLOQUE DE 210 Bytes REGISTRO LÓGICO 1 REGISTRO LÓGICO 2? Factor de bloqueo=2 Espacio sobrante=16 bytes Estructura de registros : FICHERO 1 2 3 4 5 6 7 8 9 10 11 12 REGISTRO 7 COD_ALUMNO NOMBRE APELLIDOS FECHA_NAC CAMPO FECHA_NAC DIA MES AÑO

campo 3=10 campo 3= Poniendo al principio del registro el tamaño de los tres campos, será más rápido que el anterior porque mira los tres campos de una sola vez. Cuando se tiene un número de campos igual en ambos registros, pero estos son de distinta longitud de campo en el mismo o diferentes registros.

Ejemplo : REGISTRO Nº 1: CAMPO CAMPO CAMPO CAMPO REGISTRO Nº 2: CAMPO CAMPO CAMPO CAMPO

  • Con distinto número de campos y distinta longitud: 1º) En primera posición se pone el número de campos, y antes de cada campo se pone su tamaño. Ejemplo : 4 2 CAMPO 4 CAMPO 3 CAMPO 7 CAMPO Número de campos Tamaño del campo 2º) Se ponen todos los datos al principio. Ejemplo : 7 , 2 , 4 , 3 Tamaño de los campos 3º) Definiendo los tipos ( A, B, C ). Ejemplo : TIPO A : A 8 9 13 =30 TIPO B : B 6 20 4 = campo 1=8 campo 1= campo 2=9 campo 2= campo 3=13 campo 3= Lo normal es que los registros utilizados sean de longitud fija. 4.2 REGISTROS DE LONGITUD FIJA : Ejemplos : Mismo número de campos por registro e igual longitud de los campos en el mismo y distintos registros.

Registro 1 A B C D E F G H I J K L M Registro 2 A B C D E F G H I J K L M Igual número de campos por registro, y distinta longitud de cada campo del mismo registro e idéntica longitud del mismo campo en distintos registros. Registro 1 A B C D E F G Registro 2 A B C D E F G Igual número de campos por registro, y distinta longitud de campos en el mismo y diferentes registros. Registro 1 A B C D .................................. N Registro 2 A B C D ........................ N Registro 3 A B C D .................................. N Diferente número de campos por registro y distinta longitud de campo en el mismo y diferentes registros. Registro 1 A B C D E Registro 2 A B C D Registro 3 A B C D E F G H 4.3 REGISTROS DE LONGITUD VARIABLE : El tamaño total del registro es variable ( longitud indefinida o variable). En este tipo de registros es necesario establecer desde el programa un tratamiento para diferenciar el comienzo y fin de cada campo y cada registro. Existen tres tipos o formas de diseño : 1º) Ponemos al principio la longitud del registro y en cada campo la longitud del campo. Ejemplo : 89 12 CAMPO 38 CAMPO 20 CAMPO 19 CAMPO Tamaño total del registro Tamaño del campo 2º) Pondremos señales de final de campo y de registro. Ejemplo : CAMPO + CAMPO + CAMPO + CAMPO * Señal de final de campo Señal de final de registro 3º) Definiremos tipos.

Cuando el fichero se acaba, el sistema detecta que lo que ha leído no es un registro, a esto se le llama marca de fin de fichero. Un fichero de entrada es aquel que se utiliza para hacer operaciones de lectura, el flujo de información va desde el fichero a la memoria central. ESCRITURA O GRABACIÓN : Esta opción implica movimiento de información desde la memoria central hacia el fichero en cuestión. La información comprende al delas variables cuyos nombres coincidan con los campos definidos para un fichero El fichero de salida es aquel que recibe la información de la memoria central y la escribe es sus registros. Utilizando la lectura y escritura de registros podemos realizar una serie de operaciones, que son las siguientes: Altas : Consiste en la adición o inserción de uno o más registros en el fichero. Esta operación sólo será posible si el fichero ya existe. Bajas : Consiste en eliminar uno o varios registros del fichero. Esta operación requiere un primer proceso de lectura para la localización del registro que se pretende borrar. Modificaciones : Consiste en realizar un cambio total o parcial de uno o varios campos de los registros de un fichero. Esta operación requiere un primer proceso de lectura para la localización del registro que se desea modificar y un segundo proceso de escritura para la actualización de todo o parte del registro. Consultas : Esta operación nos permite acceder a uno o varios registros con la intención de visualizar el contenido total o parcial de sus campos en pantalla o impresora en forma de listados ordenados siguiendo ciertos criterios de clasificación establecidos por el usuario.

  • PSEUDOCÓDIGO : FICHEROS SECUENCIALES : Consultas : Se supone : Un fichero lógico llamado Fich. Un registro llamado R_Fich. La condición establecida campo_n = valor introducido por teclado. El fichero Fich está asignado a un fichero físico y abierto para lectura.

a) Consulta en un fichero secuencial desordenado : Búsqueda de un registro : INICIO Abrir Fich de lectura Leer valor sw= Mientras no FF (Fich) y sw=0 hacer leer R_Fich de Fich Si campo_n = valor entonces sw= Finsi Finmientras Si sw=1 entonces escribir R_Fich sino escribir No encontrado Finsi Cerrar Fich Fin b) Consulta en un fichero secuencial ordenado : Búsqueda de un registro : INICIO Abrir Fich de lectura Leer valor sw = 0 Mientras no FF (Fich) hacer

Finsi Finsi Finmientras Si Encontrado = F Escribir No encontrado Finsi Cerrar Fich Fin Actualización : ( Altas, Bajas, y modificaciones )

  • Actualización por lotes : Se actualiza un fichero origen ordenado por un campo clave con un lote de transacciones contenidas en un fichero de movimientos con la misma ordenación que el fichero origen, además contiene un campo que indica el tipo de movimientos ( alta, baja, o modificación ). Esto implica que la información que no sea baja o erronea pasa al fichero destino con los registros ordenados y actualizados. Los errores producidos en la actualización pueden ser enviados a una impresora o escritos en el soporte de almacenamiento para su posterior tratamiento. Para la actualización, se van a utilizar cuatro ficheros : Un fichero de origen ( Fich_origen ) Un fichero de movimientos ( Fich_mov ) Un fichero de destino ( Fich_destino ) Un fichero de errores ( Fich_errores ) INICIO Variables : clave_origen clave_destino registro_origen registro_destino registro_mov registro_error

resto_destino resto_mov Abrir Fich_origen de lectura Abrir Fich_mov de lectura Abrir Fich_destino de escritura Abrir Fich_errores de escritura Fin_origen = 0 Fin_mov = 0 Procedimiento Leer_origen Procedimiento Leer_mov Mientras Fin_origen = 0 y Fin_mov = 0 hacer Si clave_origen < clave_mov entonces Procedimiento Copia Procedimiento Leer_origen Sino Si clave_origen > clave_mov entonces Procedimiento Alta Procedimiento Leer_mov Sino Procedimiento Baja_modif Procedimiento Leer_origen Procedimiento Leer_mov Finsi Finsi Finmientras Mientras Fin_origen = 0 hacer

Sino Leer registro_origen de Fich_origen Finsi Fin Procedimiento Leer_mov : INICIO Si FF ( Fich_mov ) entonces Fin_mov = 0 Sino Leer registro_mov de Fich_mov Finsi Fin Procedimiento Baja_Modif : INICIO Según_sea Tipo−mov B´ : ** No se copiaM´ : ** Se modifican los campos deseados Escribir registro_destino en Fich_destino Otros : registro_error = registro_mov Escribir registro_error en Fich_error registro_destino = registro_orgen Escribir registro_destino en Fich_destino Finsegún_sea

Finsegunsea FIN Procedimiento Copia : INICIO registro_destino = registro_origen Escribir registro_destino en Fich_destino FIN

  • Actualización interactiva : Consiste en actualizar un fichero introduciendo datos por teclado, produciremos altas. Bajas, y modificaciones de registros. Utilizaremos un fichero temporal para organizar el fichero cuando tengamos que hacer una baja o un borrado de registro. Las altas se producen en el lugar correspondiente, tendremos que utilizar un fichero temporal para reorganizar el fichero si este está ordenado, sino las altas se realizarán añadiendo registros al fichero. Los errores se presentan en pantalla cuando se producen. Se utilizará un fichero llamado ( Fichero ) y un fichero temporal llamado ( Temp ) INICIO Variables : vclave vale_clave verif_clave clave_registro resto_registro Repetir Escribir 1. Alta
  • Baja
  1. Modificación Escribir Seleccionar operación Leer operación Según_sea operación

vale_clave = verif_clave ( vclave ) Cerrar fichero Si vale_clave = F entonces Escribir No existe clave para baja Sino Escribir registro Abrir Fichero para leer Abrir Temp para escribir Mientras no FF ( Fichero ) hacer Leer registro de Fichero Si clave_registro <> vclave entonces Escribir en Temp Finsi Finmientras Borrar_Fichero ( Fichero ) Renombrar_Fichero ( Temp, Fichero ) Finsi Fin Procedimiento Modificación : INICIO Escribir Introducir clave para modificar registro Leer vclave vale_clave = veirf_clave ( vclave ) Si vale_clave = F entonces Escribir No existe clave para modificar sino

Escribir registro ** Leer valores de campos del registro que se va a modificar. Escribir registro de Fichero Finsi Fin Procedimiento Verificar_clave ( clave) INICIO Abrir Fichero para lectura y escritura sw = 0 Mientras no FF ( Fichero ) y sw = 0 hacer Leer registro de Fichero Si clave_registro = clave sw = 1 Finsi Finmientras Si sw = 1 entonces retorno V Sino retorno F Finsi Fin FICHEROS SECUENCIALES INDEXADOS :

  • Actualización desde un fichero secuencial de movimientos (Proceso Batch ) : Iremos actualizando en un fichero secuencial de movimientos, durante un período de tiempo las altas, bajas, y modificaciones producidas sobre el fichero secuencial indexado. El fichero maestro contendrá todos los mismos campos, y además un campo tipo de movimiento. Uno de los campos será un campo identificador o clave por el que se buscará el registro. Ejemplo :