TEMA 4: Organización de los datos 4.1 Tipos de Datos Dato: cualquier objeto manipulable por la computadora. Los datos dentro de un programa pueden ser: constantes y variables. Información externa del programa: grabada en memoria secundaria o generada por algún periférico. En función del concepto o magnitud que representan hay distintos tipos de datos, y se almacenan de manera diferente. TIPOS SIMPLES: (Definidos en la mayoría de los compiladores) x Enteros, reales, lógicos (también llamados binarios o booleanos), caracteres. x Enumerados: se definen dando un conjunto de posibles valores. Ejemplo: color=(azul, rojo, verde, amarillo) x Subrango: definidos a partir de un tipo entero, carácter o enumerado. Ejemplo: letra: ‘a’..‘z’ 4.2 Estructuras de datos Además de los tipos anteriores (simples), se pueden construir tipos más complejos. Una estructura de datos o tipo de datos estructurado es un tipo construido a partir de otros tipos. Ej: Para representar un número complejo se necesita un par ordenado de datos reales. Una estructura puede ser homogénea si todos los elementos que la componen son del mismo tipo o bien heterogénea si son de distinto tipo. Un nº complejo sería una estructura homogénea. 4.2.1 Arrays (formaciones o matrices) Es una estructura de datos formada por una cantidad fija de datos de un mismo tipo, que pueden ser referenciados por un índice que determina la posición en el array. Las matrices o arrays se pueden definir con diferente nº de dimensiones. TEMA 4: Organización de los datos Página 1 Ejemplo: X tiene una dimensión y cinco posiciones, sus valores x son enteros. y Y tiene una dimensión y seis posiciones, sus valores son reales. z Z tiene dos dimensiones, una de cinco posiciones y otra de dos, sus valores son caracteres. Su definición sería: x: array de 5 enteros y: array de 6 reales z: array de 5, 2 caracteres Para acceder a alguno de los elementos que se encuentran dentro del dato, se escribe el nombre del dato seguido de la posición entre paréntesis: x(2), z(1,1). 4.2.2 Registros Un registro es una estructura de datos formada por la unión de varios elementos que contienen información relativa al mismo ente. Cada elemento se denomina campo. Cada campo puede ser de diferente tipo y se identifica por un nombre. Al definir los campos hay que especificar el nombre y el tipo de cada campo. Ejemplo Para representar información de un empleado, su definición sería: Empleado: RECORD Nombre: array de 30 caracteres Edad: 16..70; Trienios: 0..20; Hijos: entero; Estadocivil: caracter; Categoría: 0..200 End; Para acceder a los campos del registro se indica el campo correspondiente mediante un punto: empleado.hijos=3; TEMA 4: Organización de los datos Página 2 4.2.3 Conjuntos Un conjunto es una estructura de datos formada por cero o más elementos de los definidos. Se pueden realizar las operaciones típicas de los conjuntos. Los elementos no están ordenados dentro del conjunto y no pueden repetirse. A l no estar los elementos ordenados, no es posible acceder a ellos, únicamente añadir elementos al conjunto, eliminarlos o comprobar si un elemento se encuentra en un conjunto. Forma de definirlos: Conjunto: set of enteros Conjunto2: set of (lunes, martes, miercoles) Para utilizarlos dentro de un programa: Conjunto={1, 8, 36} Para añadir un elemento a un conjunto: INC (1, conjunto) Para eliminar un elemento de un conjunto: EXCL(1, conjunto) Para preguntar si un determinado elemento pertenece o no al conjunto: 1 IN conjunto 4.3 Archivos o ficheros Un archivo es una estructura de datos que reside en memoria secundaria que tiene un conjunto de información sobre el mismo tema, tratada como una unidad de almacenamiento y organizada de forma estructurada para la búsqueda de un dato individual. Un archivo está compuesto de registros homogéneos. Cada registro contiene un conjunto de información a la que se accede y se trata de manera unitaria. Está constituido por uno o más elementos denominados campos, que pueden ser de tipos diferentes y estar compuestos de subcampos. La vida de un archivo empieza cuando se crea y acaba cuando se borra. Durante la vida de un archivo se pueden realizar operaciones de consulta o mantenimiento: modificación de un registro, eliminación de un registro e inserción de un registro. Cualquier operación de consulta o mantenimiento implica una operación de búsqueda para luego actuar sobre él. TEMA 4: Organización de los datos Página 3 4.3.1 Características de los archivos (es una estructura de datos) x Residencia en soportes de información externa. x Independencia de cualquier programa: su vida no está limitada a la vida del programa que lo crea y puede ser usado por varios programas en diferentes momentos. x Permanencia de la información. x Gran capacidad de almacenamiento (limitado teóricamente por la capacidad del soporte, mucho mayor que los datos que residen en memoria principal). 4.3.2 Clasificación de los archivos según su uso (desde una aplicación) 1. Permanentes: contienen información que varía poco a lo largo del tiempo, y que es relevante para una aplicación. Se clasifican en: Maestros: contiene el estado actual de los datos que pueden ser modificados por la aplicación. Es el núcleo central de la aplicación y todos los procesos están orientados a actualizarlos. Por ejemplo el fichero de clientes de un banco. Constantes: tienen datos fijos para la aplicación y se utilizan generalmente sólo para consulta. Por ejemplo los archivos con información de intereses para cada tipo de cuenta, ubicación de estantes en una biblioteca, etc. Históricos: datos que fueron actuales en tiempos anteriores (para poder reconstruir la situación). 2. Temporales: Contienen información relevante para un determinado proceso o programa pero no para el conjunto de la aplicación. Intermedios: almacenan resultados que van a ser utilizados por otro programa dentro de la misma tarea. De trabajo o de maniobra: para almacenar datos que no caben en memoria principal (Sobre todo en cálculos, los compiladores...). Su vida es menor que el tiempo de ejecución del programa. De resultados: para almacenar datos elaborados que van a ser transferidos a un dispositivo de salida. Ejemplo. Impresión. TEMA 4: Organización de los datos Página 4 4.3.3 Organización de los Archivos. Dependiendo del uso y del soporte, los registros de un fichero se pueden organizar de diferentes maneras: 1. Secuencial: los registros ocupan posiciones consecutivas de memoria y solo se puede acceder a uno de ellos a partir del primero. Reg1 Posición Reg2 Reg3 2 3 ... 2 . Directa o aleatoria: Las informaciones se colocan y acceden aleatoriamente indicando el lugar relativo que ocupan dentro del conjunto de posiciones posibles. Se pueden leer y escribir registros en cualquier orden y lugar. Es tarea del programador establecer una relación entre la posición y el contenido. La ventaja es la rapidez de acceso. Reg2 Posición 2 Reg3 Reg1 3 4 ... 3. Secuencial indexada. Consta de 2 áreas: - De índices – se procesa de forma secuencial. Contiene clave y dirección de un registro. - Primaria – datos clasificados en orden ascendente por un campo clave 4.3.4 Modos de acceso. Se denomina modo de acceso a la forma de posicionarse en un determinado archivo para leer sus datos o bien escribir datos en él. El modo de acceso lo decide el programador de la aplicación en función del soporte utilizado para almacenar el fichero y en función del tipo de organización del archivo. Hay dos modos básicos: secuencial: cualquier tipo de soporte y organización directo: soporte direccionable, organización directa o indexada. TEMA 4: Organización de los datos Página 5 4.3.5 Operaciones sobre Archivos Las operaciones más usuales sobre archivos que se llevan a cabo por cualquier programa que manipule ficheros son: creación, copia, consulta, clasificación u ordenación, concatenación, intersección, fusión, partición, actualización, reorganización y borrado. 4.4. Bases de Datos. Conjunto de datos interrelacionados junto con unas aplicaciones para su manejo (SGBD – Sistemas de Gestión de Bases de Datos), accesibles simultáneamente por diferentes usuarios y programas. Características: - Control centralizado de datos - Integridad de datos - Minimización de redundancias - Acceso concurrente a datos - Independencia de los datos y las Aplicaciones - Establecimiento de medidas de seguridad - Utilidades de acceso a los datos 4.4.1 Estructura de una Base de Datos Una Base de Datos (de aquí en adelante BD) almacena información de una serie de elementos. Cada elemento recibe el nombre de entidad, y es cualquier ente sobre el que se almacena información. Ejemplo. Base de datos de Datos académicos. Entidades: alumno, profesor, asignatura, centro, etc. De cada entidad se almacenan una serie de datos que se denominan atributos, son características o propiedades. Atributos de la entidad Alumno: DNI, apellidos, nombre, fecha de nacimiento, etc. Entidades y atributos son conceptos abstractos: cada entidad se almacena en registros, cada atributo en campos del registro. TEMA 4: Organización de los datos Página 6 En una BD hay diferentes tipos de registros, uno por entidad. Cada registro se identifica por uno o varios atributos. Se dice que un conjunto de atributos es clave de una entidad si el valor de dichos atributos identifica inequívocamente a cada elemento de la misma. 4.4.2 SGBD – Sistema de Gestión de Bases de Datos Es un software destinado a la creación, control y manipulación de la información de una BD. Tareas: - Acceso a los datos desde algún lenguaje de alto nivel. - Recuperación de la información directa en modo conversacional. - Definición del esquema de la BD. - Organización física de la BD y recuperación tras fallos en el sistema. 4.4.3 BD Relacionales En la actualidad, las BD más utilizadas se denominan relacionales. Una BD relacional está formada por tablas, cada tabla tiene una sucesión de registros del mismo tipo. Estas tablas deben cumplir ciertas condiciones: - Todos los registros de una tabla son del mismo tipo. - En ninguna tabla aparecen campos repetidos - En ninguna tabla aparecen registros duplicados - El orden de los registros es indiferente - En cada tabla hay una clave formada por uno o varios campos. Para definir una Base de Datos Relacional se debe especificar de cada tabla su nombre, los campos y los nombres de los campos clave. Como ya se ha dicho, la clave l a f o r m a n u n c a m p o o l a c o m b i n a c i ón de varios campos que identifiquen inequívocamente a un registro de la tabla. Por ejemplo, el nombre no puede ser un campo clave porque puede haber varias personas con el mismo nombre. A continuación se muestran las operaciones que se pueden realizar sobre una Base de Datos Relacional de Gestión Académica formada por cuatro tablas: Datos Personales, Expediente, Asignaturas y Titulaciones. TEMA 4: Organización de los datos Página 7 Operaciones que se pueden realizar sobre una o varias tablas de una Base de Datos Relacional: selección: obtiene otra tabla que contiene los registros que cumplen una x condición (en función de valores de los campos). Es necesario indicar la tabla sobre al que se hace la operación y los campos afectados: o Para elegir los alumnos que hayan nacido en el año 1982: Seleccionar de la tabla datos personales, los alumnos cuya fecha de nacimiento esté entre el 01/01/1982 y el 31/12/1982 o Para elegir los alumnos cuyo nombre empiece por A y que hayan nacido en 1982: Seleccionar de la tabla datos personales, los alumnos cuyo nombre empiece por A y su fecha de nacimiento esté entre el 01/01/1982 y el 31/12/1982 proyección: obtener una tabla que tiene los mismos registros que la original x y sólo algunas columnas. Es necesario indicar la tabla sobre al que se hace la operación y los campos que se quieren: o Para elegir las fechas de nacimiento de todos los alumnos: Proyectar de la tabla datos personales, la fecha de nacimiento o Para elegir los nombres y apellidos de todos los alumnos: Proyectar d e l a t a b l a datos personales, e l nombre y los apellidos x unión: a partir de 2 tablas se compone una tercera que une dos registros de las dos tablas que tengan el mismo valor en un campo. o Para elegir Nombre, Apellidos, Nombre asignatura, Convocatoria y Calificación de los alumnos matriculados en Arquitectura TEMA 4: Organización de los datos Página 8 Unión de las tablas Expediente y Asignaturas p o r e l Código Asignatura. Unión de la tabla resultado con Titulaciones por el campo Código Titulación. Unión de la tabla resultado con Datos Personales por el DNI. Selección d e l a t a b l a resultado p o r Nombre Titulación = Arquitectura. Proyección del resultado sobre los campos Nombre, Apellidos, Nombre asignatura, Convocatoria y Calificación. x Estas operaciones generan nuevas tablas sobre las cuales se podrían hacer nuevas operaciones de estos tipos. De esta manera se pueden componer operaciones más complejas. TEMA 4: Organización de los datos Página 9