Powered By Blogger

martes, 23 de septiembre de 2014

Práctica 1: Ficheros en GDB


Alumna: Gema Mª Rivera Sánchez 1º ASIR.

Unidad didáctica: **. Ejercicios.
Pregunta
Respuesta

Desarrollo de la práctica.

    La práctica se desarrollará individualmente. Sé autodidacta, y busca información en la red. Consejo, no te quedes con lo primero que encuentres, sobre todo de blogs, ya que no siempre es lo más correcto. Busca información en libros electrónicos, manuales, de fuentes válidas (universidades, cursos, plataformas educativas,....).
    Consiste en realizar un trabajo sobre ficheros, y en el que desarrolles los siguientes puntos:
         
        Define lo que es un fichero.


Fichero: Los ficheros se utilizan para almacenar la  información de modo que cuando desconectamos el ordenador no desaparezca la información que teniamos guardada en él , como sucede con los datos guardados en memoria (memoria primaria), por lo tanto, para solucionar este problema se han buscado dispositivos de almacenamiento masivo de datos (memoria secundaria). La información contenida en los dispositivos de almacenamiento se estructura en unidades denominadas ficheros. Por lo tanto, podemos definir un fichero como un conjunto de bytes almacenados de forma organizada en un dispositivo de memoria secundario. Su información se almacena en unidades llamadas registros . Un fichero es identificado por un nombre y la descripción de la carpeta o directorio que lo contiene.
       
    Existen dos clases de ficheros:

1. Permanentes: Son los que contienen información relevante para el programa.

Existen tres clases de ficheros permanentes :

Fichero maestro : Contiene los datos indispensables para el funcionamiento de una aplicación determinada y muestra el estado actual de la misma, por ejemplo. el catálogo de una biblioteca.

Fichero constante : Contiene un tipo de datos de carácter fijo, por ejemplo, un fichero que contuviese un alista de autoridades.

Fichero histórico : Es el fichero donde van los registros eliminados del fichero maestro.

2. Temporales : Contienen información relevante para determinado programa, pero no para la aplicación en su conjunto. Sus datos proceden de los ficheros permanentes, como por ejemplo: una consulta. Existen dos tipos de ficheros temporales :

Intermedios : Son los que almacenan resultados de un programa que han de ser utilizados por otro programa en una misma aplicación.

De resultados, en los que se almacenan ficheros elaborados que se destinan a un dispositivo de salida (impresora...etc.)

Existen distintos tipos de ficheros con organización:

Ficheros con organización Secuencial( Secuencial encadenada:Puntero ,Secuencial Indexada,Secuencial Indexada-encadenada.
Ficheros con organización Relativa(Relativa directa o o Relativa aleatoria o indirecta).
Ficheros con organización Directa.



2. Investiga sobre los siguientes términos: registro, campo, factor de bloqueo, tipo de dato.

a) Registro: Un registro es una estructura de datos homogéneos referentes a una misma entidad , formada por elementos mas pequeños denominados campo. El registro es una unidad de tratamiento de los ficheros de datos .

Existen distintos tipos de registros:

De longitud fija: Es en el que al configurar el fichero se le asigna un determinado tamaño en bytes y lo mantiene a no ser que el registro sea modificado. Esto es así independientemente de la cantidad de información que contenga (Access).

De longitud variable: En éstos el programa mide la cantidad de información de los registros y adapta su tamaño a ellos (bases de datos documentales = Knosys).

Registro Físico o bloque: Es la cantidad de información que el sistema transfiere en una sola operación de E/S, entre la memoria del ordenador y los dispositivos de almacenamiento o viceversa . El tamaño del bloque depende de las caracterícticas del ordenador. Un registro físico está formado por un número variable de registros lógicos . Por lo tanto, un registro físico es el que se graba en el dispositivo de almacenamiento.

Registro lógico : Es cada uno de los componentes del archivo, conteniendo el conjunto de informaciones a que se acceden y se tratan de manera separada y unitaria. Está constituido o una o más campos, los que a su vez están compuestos por subcampos.


b) Campo: Son la unidad mínima de información creada con sentido en sí misma.     Por lo tanto, es la estructura que contiene un dato individual acerca de la entidad de la que trate. Internamente un campo se almacena como un conjunto de bytes. Un campo se define por [nombre, tamaño, tipo de datos].

Los campos pueden crearse con logitud fija o variable . Para crear lalongitud fija se inserta un carácter especial que actúa como delimitador de longitud alcomienzoo al final de cada campo.

Tipos de campos:

    Numéricos: Caracteres numéricos. Representan magnitudes y son susceptibles de realizar operaciones con ellos.

    Alfabéticos: (Texto). Caracteres alfabéticos, o letras.

    Alfanuméricos: Información que combina los dos anteriores (letras, números, puntos, comas, paréntesis, etc. ...)

    Formateados: Contienen una información según un patrón determinado (fecha/hora, moneda, etc.)

    Lógicos: Su información cumplirá determinadas condiciones. Sólo admite dos posibilidades: Sí o No.

Los campos están siempre identificados :

    Por el nombre.

    Por el “valor de campo”, que es el contenido concreto del campo.

    Por el “dominio de campo”, que es el conjunto de valores que puede adoptar un campo.


c) Factor de bloqueo: Es el número de registros lógicos de un bloque o registro físico.El factor de bloqueo será >1 sí el tamaño del registro lógico es menor que el del físico. Será <1 sí el tamaño del registro lógico es mayor que el del físico y será =1 sí los dos tienen el mismo tamaño.   

Puesto que el bloque es la unidad de transferencia en operaciones de E/S por una parte, cuantos menos bloques tenga, menos operaciones de E/S tendrá que realizar para acceder a los datos de un fichero y por tanto tardaré menos tiempo. Desde el punto de vista del tiempo, cuanto mayor sea el factor de bloqueo menos tardaré en procesar los datos. Por otra parte, aunque lo ideal sería desde el punto de vista anterior, que hubiera un solo bloque físico y que todos los registros lógicos cupiesen dentro de ese bloque, en la práctica, sin embargo, el tamaño de un bloque no puede ser tan grande como queramos porque cuando lo queremos transmitir a memoria principal se transfiere a una parte de la misma. Si el tamaño de este buffer es muy grande ocupará demasiada memoria principal y no quedará memoria para procesar los datos, además, de que esta memoria es cara.

Al elegir el tamaño de un bloque hay que buscar el equilibrio entre los 2 aspectos anteriores para determinar cuál es el factor de bloqueo lógico.


d) Tipo de dato: Es un conjunto de datos almacenados entre los que existen relaciones lógicas y que ha sido diseñada para satisfacer los requeriminetos de información de una empresa u organización . En una base de datos . además de los datos , también se almacena su descripción . También , es un gran almacén de datos que se define una sola vez y que se utiliza al mismo tiempo por muchos departamentos y usuarios.  En ella todos los datos se integran con una mínima cantidad de duplicidad. Además , no solo contiene los datos de la organización , también almacena una descripción de dichos datos (se denomina metadatos), por lo tanto, se almacena en el diccionario de datos o catálogo y es lo que permite que exista independencia de datos lógica-física.

El modelo seguido con los sistemas de bases de datos (separar la definición de los datos de los programas de aplicación , es muy similar al modelo que se sigue en la actualidad para el desarrollo de programas , dónde los usuarios del objeto sólo ven la definición externa . Este modelo llamado como abstracción de datos , tiene una veentaja , que es que se puede cambiar la definición interna de un objeto sin afectar a sus usuarios , debido a que su definición externa no cambia. Del mismo modo, los sistemas de bases de datos separan la definición de la estructura de los datos, de los programas de aplicación y almacenan esta definición en la base de datos. Si se añaden nuevas estructuras de datos o se modifican las ya existentes, los programas de aplicación no se ven afectados ya que no dependen directamente de aquello que se ha modificado.

Tipos de base de datos:

Bases de datos estáticas
Bases de datos dinámicas
Bases de datos bibliográficas
Bases de datos de texto completo (se pueden considerar en varios subtipos):
Las que almacenan secuencias de nucleótidos o proteínas.
 Las bases de datos de rutas metabólicas.
 Bases de datos de estructura, comprende los registros de datos experimentales sobre estructuras 3D de biomoléculas-
    Bases de datos clínicas.
    Bases de datos bibliográficas (biológicas, químicas, médicas y de otros campos): PubChem, Medline, EBSCOhost

Modelos de bases de datos:

Bases de datos jerárquicas
Base de datos de red
Bases de datos transaccionales
Bases de datos multidimensionales
Bases de datos orientadas a objetos
Bases de datos documentales
Bases de datos deductivas
Sistema de Gestión de bases de datos distribuida (SGBD)



3. Ejemplo práctico:Una casa discográfica lleva el registro de sus álbumes mediante dos ficheros:Albumes.dat y Canciones.dat. Los datos que se almacenan en cada uno de ellos son:

-Álbumes: Código del álbum, Título, Nombre del autor, Precio, Número de
        copias vendidas.

-Canciones: Título, duración, código del álbum en el que se encuentran.

Diseña los ficheros del apartado anterior, y la pregunta sería ¿Están relacionados? SI es así, indica cómo se relacionarían.

Casa discográfica lleva registro de sus álbumes mediante fichero Albumes.dat.

                                                   Fichero


                                                                    Álbumes.dat      
Registro 1         Código del álbum    Título    Nombre del autor     Precio    Número de copias vendidas       
Registro 2    Código del álbum    Título    Nombre del autor    Precio    Número de copias vendidas      
Registro 3    Código del álbum    Título    Nombre del autor    Precio    Número de copias vendidas   

                                                                        

Registro N     Código del álbum    Título    Nombre del autor    Precio    Número de copias vendidas      
    Campo 1    Campo 2    Campo 3    Campo 4    Campo 5   
                                                                             
                                                                             Registro             

Título    Nombre del autor    Precio        Número de copias vendidas      
Campo 1    Campo 2    Campo 3                      Campo 4      
               

                                                                                            
                                                                              Título
           Identificadores de campo             Nombre del autor
                                                                             Precio
                                                                              Número de copias vendidas.

Casa discográfica lleva registro de sus álbumes mediante fichero Canciones.dat.

                         Fichero


                                         Canciones.dat   
 
Registro 1         Título    Duración    Código del álbum      
Registro 2    Título    Duración    Código del álbum      
Registro 3    Título    Duración    Código del álbum   
                                                                                                                                        

Registro N    Título    Duración    Código del álbum      
    Campo 1    Campo 2    Campo 3   
                                          
                                     Registro

Duración    Código del álbum      
Campo 1    Campo 2   

                                                                                            
                                                                     Duración
           Identificadores de campo      Código del álbum
                                                  
Si están relacionados: Los dos tienen código del álbum campo, título campo,los dos cuentan con una base de datos de texto completo y una base de dato estática . También cuentan con registro Además hay datos que no coinciden en los dos , pero si mantienen la relación al tratarse de cosas de un mismo tema (Álbumes de ficheros).



4.Investiga sobre las organizaciones de ficheros: secuencial, indexada, directa, etc
...

Secuencial:

    Los registros están grabados en orden y deben ser leídos en ese mismo orden. Para leer un registro hay que pasar por los anteriores.

    Solo pueden añadirse registros al final del fichero. No permite la inserción de registros en un punto cualquiera.

    La modificación de información, solo puede efectuarse si la nueva información no excede de la longitud del registro.

    El borrado es lógico y consiste en una marca que el programa le pone a ese registro, para que cuando el programa vaya a leerlo, lo ignore saltando al registro siguiente. No se borra físicamente el registro.

Las ventajas de los ficheros con organización secuencial son:
• Rapidez en el acceso a un bloque de registros contiguos.
• Compactación del archivo:
o No hay espacios vacios entre registros.
o No se realizan operaciones de compactación.
o No se desperdicia espacio en el dispositivo de almacenamiento
Los inconvenientes de este tipo de organización de ficheros son:
• Hay que realizar consultas secuenciales para acceder a un registro. Para acceder al enésimo registro se han de recorrer los n-1 registros anteriores.
• Para realizar una consulta hay que crear un proceso en el que se compare el valor del campo que se pretende localizar con el valor del mismo campo correspondiente a cada registro leído del fichero.
 La adición de registros se realiza a continuación del último registro ya existente. No se pueden insertar nuevos registros.
• No se pueden eliminar registros. Para eliminar un registro se marca de modo que no se muestre o recupere, pero el registro existe y ocupa espacio en el dispositivo de almacenamiento.
• Para mantener ordenado y compactado el fichero, hay que crear un fichero nuevo a partir del existente.


Secuencial Indexado:

 La grabación del registro es igual que en el anterior (secuencialmente).

    La lectura, se hace a través de un índice. El índice, recoge todas las claves de los registros, y asociados a esta clave, la dirección que tiene el registro en el fichero. De esta forma, no hay que leer todos los registros uno por uno hasta llegar a la información que nos interesa, sino que lee el disco por sectores.

Este tipo de ficheros esta formado por:
• Área primaria.
Área de índices.
• Área de overflow.
El acceso a los registros se realiza mediante una consulta al área de índices para determinar el segmento donde se encuentra el registro buscado. Si la clave del último registro del segmento que aparece en el área de índices no existe en el área primaria, significara que no existe ningún registro almacenado con esa clave.
La búsqueda de un registro en un fichero con organización secuencial indexada comienza con una consulta al área de índices. Si el registro buscado contiene un valor inferior al primer registro del área de overflow, el área de índices proporciona el valor del último registro del segmento al que pudiera pertenecer el registro a buscar. Con el valor del segmento seleccionado, se recorren secuencialmente todos los registros de ese segmento. Si el registro esta comprendido en el segmento, se termina la búsqueda. Si no esta en el segmento, se continúa la búsqueda de forma secuencial en el área de overflow hasta la localización del registro o hasta terminar de leer los registros de esa área.

FICHEROS SECUENCIAL ENCADENADA: PUNTEROS:
Son ficheros de organización secuencial gestionados mediante punteros –campos que contienen la dirección de un registro dentro del fichero-. Los punteros, son un campo adicional, por lo que aumentan el tamaño de los registros, y forman parte integrante de la estructura del registro, indicando cual es el siguiente o el anterior registro en secuencia lógica y no en secuencia física. Las características de los punteros son: estar en cada registro en una posición fija y definida para todos los registros y poseer una longitud constante.
En estos ficheros la secuencia física y la secuencia lógica no coinciden, pudiendo ocurrir que el último registro en secuencia física sea el primero en secuencia lógica y viceversa. La adición de registros se realiza al final, pues los registros se almacenan secuencialmente. La eliminación de registros se efectúa marcando el registro, de modo que el fichero mantiene su tamaño, ya que el borrado que se produce es lógico, pero no físico.

ORGANIZACIÓN SECUENCIAL INDEXADA-ENCADENADA

Este tipo de organización aprovecha lo mejor de la organización secuencial encadenada e indexada. Se caracteriza por la utilización de punteros e índices de forma simultánea, lo que implica un aumento del espacio ocupado pero proporciona una gran rapidez en la búsqueda de registros. Para eliminar registros se marcan, en lugar de ser borrados físicamente. Las adiciones se realizan sobre la zona de overflow ya que no se pueden añadir registros en el área primaria una vez creado el fichero. Estos ficheros deben ser reorganizados con frecuencia ya que la no eliminación física de los registros marcados y las adiciones crean un área de overflow grande, llegando a funcionar como ficheros secuenciales en caso de no ser reorganizados.
Para acceder a un registro se busca en el área de índices la dirección de inicio del bloque de registros a la que pertenece el registra buscado. Si no se encuentra en el área de índices, el último registro del bloque apuntara a un bloque de área de overflow, que se lee de forma secuencial. Si no se encuentra en el área de overflow, se terminará la búsqueda al acabar el área de overflow. Si se desea leer todo el fichero, el último registro de cada bloque del área de overflow tiene un puntero al primer registro del bloque siguiente y así se continuara la búsqueda hasta acabar de leer el fichero.

Aleatoria o directa:

    Este tipo de fichero solo es posible en soportes direccionables (discos).

    Para poder acceder a estos ficheros, al crearlos se genera automáticamente su dirección en el disco, accediéndose por lo tanto a través de un índice que se genera automáticamente.
El borrado puede ser tanto físico como lógico.

    La inserción se puede realizar en cualquier parte del fichero.

Las ventajas de este tipo de organización de ficheros son:
• Acceso inmediato a los registros mediante su clave.
• No es necesario ordenar el fichero.
• Se pueden realizar operaciones de escritura y lectura a la vez.
Son muy rápidos en el tratamiento individual de registros.
• Se pueden realizar accesos secuenciales.
Los inconvenientes de este tipo de organización de ficheros son:
• El fichero contiene gran cantidad de huecos o espacios libres.
• El algoritmo para la conversión de las claves y el algoritmo necesario para el almacenamiento y tratamiento de sinónimos han de ser creados de modo que dejen el menor número de huecos libres y se genere el menor número de sinónimos.

FICHEROS DE ORGANIZACIÓN RELATIVA
Son ficheros en los que el almacenamiento físico de los registros se realiza mediante el empleo de una clave que indica la posición del registro dentro del fichero y la posición de memoria donde esta almacenado. Hay dos tipos de organización relativa: directa y aleatoria
A) ORGANIZACIÓN RELATIVA DIRECTA
Emplean claves numéricas, por lo que los registros poseen direcciones numéricas enteras, de forma que la secuencia lógica de almacenamiento de los registros en el fichero coincide con la secuencia física de almacenamiento de los registros sobre el dispositivo, ya que, las posiciones físicas de cada registro coinciden con el valor de laclave. En este tipo de organización no se puede almacenar un registro cuya clave este por encima de los limites máximos del fichero, ya que cada dirección sólo puede ser ocupada por un registro.
Como la clave es la posición de memoria, para acceder a un registro es suficiente con conocer el valor de la clave, ya que con el se obtiene la dirección de almacenamiento, siendo inmediato el acceso al registro deseado.
Las ventajas de este tipo de organización de ficheros son:
• Acceso directo a los registros.
• Permite realizar operaciones de escritura y lectura simultáneamente, ya que primero se localiza el registro y luego se realiza la operación deseada: inserción, eliminación, consulta, modificación, etc
Los inconvenientes de este tipo de organización de ficheros son:
Al realizar un acceso secuencial, en una consulta sobre todos los registros del fichero hay que recorrer todas las direcciones aunque estén vacías.
• Deja gran cantidad de posiciones libres de memoria dentro del fichero, debido a que las claves de los registros pueden indicar posiciones de almacenamiento no contiguas, lo que implica una falta de aprovechamiento del soporte de almacenamiento respecto al numero real de registros almacenados.
• Se producen colisiones, ya que puede existir más de un registro con la misma clave. Esto causa errores, pues supone la posibilidad de almacenar en el fichero un registro repetido.

  5.Para cada fichero del punto anterior, piensa qué organización sería la más correcta.
         
Creo que la organización más correcta sería : Ficheros de organización secuencial , en concreto , creo que es ficheros secuencial encadenada: Punteros.