Post on 12-Sep-2019
Adquisición y Tratamiento de Datos 1
Introducción a los archivos y bases de datos
Introducción a los archivos (I)
• Un archivo o fichero es:– Un conjunto de información sobre un tema.– Tratado como una unidad de almacenamiento.– Organizado de forma estructurada para la búsqueda
de un dato individual.
• Un archivo es independiente de los programas.
Adquisición y Tratamiento de Datos 2
Introducción a los archivos y bases de datos
Introducción a los archivos (II)
Adquisición y Tratamiento de Datos 3
Introducción a los archivos y bases de datos
Introducción a los archivos (III)
• Los registros se identifican mediante determinados campos conocidos como claves del registro.
Nombre
Apellidos
Domicilio
Nombre
Apellidos
Domicilio
Nombre
Apellidos
Domicilio
Registros
Campos
Fichero
Adquisición y Tratamiento de Datos 4
Introducción a los archivos y bases de datos
Introducción a los archivos (IV)
• Desde el punto de vista físico, el acceso a los datos es:– Secuencial (cinta).– Directa (CD-ROM).
• Desde el punto de vista lógico, su organización es:– Secuencial (archivo de texto).– Secuencial indexada (tabla de índices).– Directa (funciones Hash).
Adquisición y Tratamiento de Datos 5
Introducción a los archivos y bases de datos
Funciones Hash
• Las funciones Hash distribuyen las claves:– Aleatoria.– Uniformemente.
• Ejemplos:– Truncamiento: Eliminar algunos dígitos de la clave.– Plegado: Romper la clave en partes y sumarlas.– Multiplicación: Romper la clave en partes,
multiplicarlas y truncarlas si es necesario.– Módulo (resto): Dividir la clave por un número
primo y quedarnos con el resto.
Adquisición y Tratamiento de Datos 6
Introducción a los archivos y bases de datos
Operaciones sobre archivos.• Las funciones que pueden efectuarse sobre un archivo
son:– Apertura:
• Se indica el nombre del archivo y se crea un descriptor para identificarlo a partir de este momento.
• Indica las operaciones (lectura y/o escritura) que son posibles sobre el archivo.
– Cierre: Se elimina el descriptor creado.– Creación: Se crea el archivo vacío. En algunos lenguajes es
un modo más de apertura.– Lectura: Se leen datos del archivo.
– Escritura: Se escriben datos en el archivo.
Adquisición y Tratamiento de Datos 7
Introducción a los archivos y bases de datos
Operaciones sobre archivos en C (I)• Apertura de un archivo:#include <stdio.h> /* Archivo cabecera con la declaración de
funciones y del tipo FILE */......FILE *fp; /* Declaramos una variable de tipo puntero a la
estructura FILE */if ((fp=fopen(nombre,modo))==NULL) /* Error de apertura del archivo */
• Modos posibles: {r, w, a} [+] [t, b]– r: Leer.– w: Crear (escribir).– a: Añadir o crearlo si no existe (escribir).– +: Aceptar también la operación contraria a la indicada.– t: Fichero de texto.– b: Fichero binario.
Adquisición y Tratamiento de Datos 8
Introducción a los archivos y bases de datos
Operaciones sobre archivos en C (II)
• Cierre de un archivo:fclose(fp) /* Cierra el archivo cuyo descriptor viene dado
por el puntero fp */
• Lectura de un archivo:– Archivos de texto: fscanf().
– Archivos binarios: fread().
• Escritura de un archivo:– Archivos de texto: fprintf().
– Archivos binarios: fwrite().
Adquisición y Tratamiento de Datos 9
Introducción a los archivos y bases de datos
Operaciones sobre archivos en C (III)• Lectura de un archivo de texto con fscanf().fscanf(descriptor del fichero,"cadena de control", lista de
argumentos)
• Donde la cadena de control esta formada por:– Caracteres de no espacio en blanco: Deben leerse esos
caracteres.– Caracteres de espacio en blanco: Deben leerse uno o más
caracteres de espacio (espacios, tabuladores o retornos de carro).
– Especificadores de formato (con posterioridad).
• Los argumentos son punteros a las variables que almacenaran los valores leídos.
Adquisición y Tratamiento de Datos 10
Introducción a los archivos y bases de datos
Operaciones sobre archivos en C (IV)
• Escritura de un archivo de texto con fprintf().fprintf(descriptor del fichero,"cadena de control", lista de
argumentos)
• Donde la cadena de control esta formada por:– Caracteres: Se escriben esos caracteres.– Especificadores de formato (con posterioridad).
• Los argumentos son los valores a escribir, generalmente los valores de las variables.
Adquisición y Tratamiento de Datos 11
Introducción a los archivos y bases de datos
Operaciones sobre archivos en C (V)• Especificadores de formato:
– Van precedidos del símbolo %.– De forma general son un carácter que indica que tipo
de datos se va a leer o escribir.• %c: Un carácter.• %d: Un entero.• %f: Un número real.
– En el caso de los enteros se puede preceder de s (%sd) para indicar entero corto o de l (%ld) para indicar entero largo.
– En el caso de los reales se puede preceder de l (%lf) para indicar double (real de mayor rango).
Adquisición y Tratamiento de Datos 12
Introducción a los archivos y bases de datos
Ejemplos de manejo de archivos en C (I)• Lectura de un archivo de texto:#include <stdio.h>#include <stdlib.h>int main(void){ FILE *fp; float v; if ((fp=fopen("datos.txt","rt"))==NULL) /* Abrimos el archivo
para lectura en modo texto */ { fprintf(stderr,"\nError abriendo el archivo\n"); /* Mostramos un mensaje*/ exit(0); /* Salimos del programa */ } while (fscanf(fp,"%f\n",&v)==1); /*Mientras leamos un elemento*/ fclose(fp); /* Cerramos el archivo */ return 0; /* Terminamos el programa */}
Adquisición y Tratamiento de Datos 13
Introducción a los archivos y bases de datos
Ejemplos de manejo de archivos en C (II)• Escritura de un archivo de texto:#include <stdio.h>#include <stdlib.h>#define N 1000int main(void){ FILE *fp; float vector[N]; int num,i; /* Suponemos que num contiene el número de elementos del vector que deseamos guardar,
por supuesto dicho número es menor o igual que N */ if ((fp=fopen("datos.txt","wt"))==NULL) /* Creamos para escritura en modo texto */ { fprintf(stderr,"\nError creando el archivo\n"); /* Mostramos un mensaje*/ exit(0); /* Salimos del programa */ } for(i=0;i<num;i++) if (fprintf(fp,"%f\n",vector[i])<0) { fclose(fp); /* Cerramos el archivo */ fprintf(stderr,"\nError escribiendo el archivo\n"); /* Mostramos un mensaje */ exit(0); /* Salimos del programa */ } fclose(fp); /* Cerramos el archivo */ return 0; /* Terminamos el programa */}
Adquisición y Tratamiento de Datos 14
Introducción a los archivos y bases de datos
Sistemas de gestión de archivos (I)
• Los archivos se diseñan a la medida de los programas.
• Los programas necesitan conocer las estructura de los archivos.
• El diseño inicial:– Hace eficientes los programas desarrollados
inicialmente al estar los archivos pensados para ellos.– Ineficientes posteriores programas al usar archivos
no pensados para estos nuevos programas.
Adquisición y Tratamiento de Datos 15
Introducción a los archivos y bases de datos
Sistemas de gestión de archivos (II)• Problemas:
– La información aparece duplicada.– La actualización de información es complicada.– Pueden existir incongruencias en la información.
DA
DA
Programa de extensión decheques
DA
Programa de informe deempleados
DA
Programa de actualizaciónde empleados
Archivo maestrode empleados
Archivo maestrode fichas
Adquisición y Tratamiento de Datos 16
Introducción a los archivos y bases de datos
Bases de datos (I)• Una base de datos esta formada por:
– Un conjunto de datos.– Un software para la gestión de los mismos.
• De forma que:– Se controla el almacenamiento de datos redundantes.– Los datos son independientes de los programas que
los usan.– Las relaciones entre los datos se almacenan junto con
ellos.– Se puede acceder a los datos de muy diversas formas.
Adquisición y Tratamiento de Datos 17
Introducción a los archivos y bases de datos
Bases de datos (II)
• En una base de datos:– Los objetos o elementos sobre los que se almacena
información se llaman entidades.– Los datos que se almacenan sobre cada entidad se
llaman atributos.– Además, se almacena relaciones entre las distintas
entidades existentes.
• Las entidades y atributos son conceptos abstractos, representados internamente de distintas formas según cada base de datos.
Adquisición y Tratamiento de Datos 18
Introducción a los archivos y bases de datos
Bases de datos (III)
• Las bases de datos se clasifican en:– Jerárquicas.– En red.– Relacionales.
• Toda base de datos jerárquica puede representarse mediante una base de datos en red.
• Toda base de datos en red puede representarse mediante una base de datos relacional.
Adquisición y Tratamiento de Datos 19
Introducción a los archivos y bases de datos
Bases de datos jerárquicas (I)
Coche
Motor Cuerpo Chasis
Puertaizquierda
Puertaderecha
Capota Techo
VentanaTirador Seguro
Registros
Adquisición y Tratamiento de Datos 20
Introducción a los archivos y bases de datos
Bases de datos jerárquicas (II)• Representan relaciones padre/hijos.• Permiten:
– Obtener un registro padre mediante su clave.– Descender hasta el primer hijo.– Moverse lateralmente hasta el siguiente hijo.– Ascender hasta el padre.
• Las relaciones padre/hijo se representan de forma explícita en la base de datos (punteros).
• El producto más conocido es Information Management System de IBM, introducido en 1968.
Adquisición y Tratamiento de Datos 21
Introducción a los archivos y bases de datos
Bases de datos en red (I)
Cliente A Cliente B Artículo A Artículo B
Pedido 1 Pedido 2 Pedido 3 Pedido 4
Conjunto
Registro
Adquisición y Tratamiento de Datos 22
Introducción a los archivos y bases de datos
Bases de datos en red (II)
• Representan relaciones padres/hijos.
• Estándar oficial CODASYL (1971).
• Permiten:– Obtener un registro padre mediante su clave.– Descender hasta el primer hijo.– Moverse lateralmente hasta el siguiente hijo.– Ascender hasta uno de los padres.
• Presentan los mismos inconvenientes que las bases de datos jerárquicas.
Adquisición y Tratamiento de Datos 23
Introducción a los archivos y bases de datos
Bases de datos relacionales (I)
• Fueron propuestas por el Dr. Codd en 1970 como superación de los problemas de las bases de datos jerárquicas y en red.
• Las estructuras padre/hijos o padres/hijos desaparecen de forma explicita.
• Los datos se representan como sencillas tablas fila/columna de valores de datos.
• Todas las operaciones sobre la base de datos operan sobre esas tablas.
Adquisición y Tratamiento de Datos 24
Introducción a los archivos y bases de datos
Bases de datos relacionales (II)
Tabla PROFESORES
NOMBRECODIGO APELLIDOS
H0001H0002H0003…
AntonioAmparoIsabel…
García GarcíaPérez PérezFernández Fernández…
CATEGORIA
CatedráticoAyudanteTitular…
ANTIGUEDAD
15/02/198301/09/199719/04/1991…
• Cada fila representa una única entidad física.• Cada columna representa un atributo.• Una tabla vacía (sin filas) sigue teniendo
definidos los atributos (columnas).
Adquisición y Tratamiento de Datos 25
Introducción a los archivos y bases de datos
Bases de datos relacionales (III)• En una base de datos relacional no existe ningún orden
en la filas.– No podemos seleccionar una fila por su posición.– Debemos utilizar un identificador (clave primaria) que
determina de forma unívoca una entidad (fila).
Tabla PROFESORES
NOMBRECODIGO APELLIDOS
H0001H0002H0003…
AntonioAmparoIsabel…
García GarcíaPérez PérezFernández Fernández…
Tabla AULAS
NUMEROEDIFICIO
E1E1E2…
111211…
CAPACIDAD
100120110…
Clave primaria Clave primaria
Adquisición y Tratamiento de Datos 26
Introducción a los archivos y bases de datos
Bases de datos relacionales (IV)
• Las relaciones padre/hijos o padres/hijos pueden existir, pero no de forma explícita.
• Para ello se utilizan las claves primarias de una tabla en otra tabla (clave foránea).
Tabla PROFESORES
NOMBRECODIGO APELLIDOS
H0001H0002H0003…
AntonioAmparoIsabel…
García GarcíaPérez PérezFernández Fernández…
Tabla ASIGNATURAS
NOMBRECODIGO
100001000110002…
Tratamiento de datosAnálisis estadísticoCálculo numérico…
H0001H0002H0003…
PROFESOR
Clave primaria Clave primariaClave foránea