11/03/2013 Conceptos Fundamentales Organización de Datos Representación de una cosa real o ideal o de un evento ocurrido o programado para que ocurra, en una unidad lógica de manipulación llamada registro, en términos de características descriptivas (también llamadas atributos) que se representan en unidades llamadas campos. Técnicas de representación y almacenamiento de datos en archivos para su recuperación, resguardo y transmisión en formas eficientes y seguras. Organización de Datos - Curso Servetto 1 3 FIUBA FIUBA 4 De Intercambio de Datos: para representar datos en formatos estándar de manera que puedan ser procesados libremente conociendo el estándar. Generalmente son archivos de texto, con alguna convención para rotular o delimitar datos, que pueden incluir o no definiciones sobre la estructura de la información contenida (un estándar actual es el XML: eXtensible Markup Language). De Recursos de Programa o Unidades Grandes de Información: imágenes, audio, vídeo. De Productos de Programas: archivos con tipo asociado a un programa o aplicación (.doc, .xls, etc.). De Empaquetado de Archivos: para agrupar, normalmente en forma comprimida, archivos y directorios, con propósitos de trasmisión o respaldo (.zip, .rar, etc.). Organización de Datos - Curso Servetto Sistema de Archivo Funciones del Sistema Operativo El Sistema Operativo es responsable del manejo de recursos de Identificación y localización de archivos: mediante un Organización de Datos - Curso Servetto FIUBA Clasificación de Archivos (cont.) FIUBA FIUBA sistema jerárquico de directorio o catálogo de archivos. una computadora. Los recursos pueden ser físicos (el hardware) o lógicos (carpetas y archivos). Una de sus funciones es proveer una interfaz controlada entre usuarios y aplicaciones, a nivel lógico, y dispositivos de almacenamiento secundario, a nivel físico: usuarios y programas tienen una visión lógica de la información almacenada, y los dispositivos de almacenamiento tienen una visión física; el sistema operativo es el mediador. El conjunto de programas del sistema operativo encargados de proveer la visión lógica de la información almacenada a usuarios y programas conforman el Sistema de Archivo. 5 Organización de Datos - Curso Servetto 2 De Datos Maestros: datos de un sistema de información que representan entidades de existencia real o ideal, por ejemplo productos o servicios, o valores de referencia para determinar características o atributos de otros datos (dominios de atributos definidos por extensión). De Datos Transaccionales: registros de hechos o eventos relacionados con datos maestros, por ejemplo de ventas de productos o de prestaciones de servicios. De Reporte: información editada para su presentación al usuario (en general en formatos pdf, html o de texto). De Trabajo: resultados parciales o intermedios de procesamiento, o datos de intercambio entre programas. De Control de Datos: para almacenar metadatos (definiciones de datos), administrar espacios libres, registrar identificadores de registro vacantes o acceder al contenido de otro archivo (índices y tablas de acceso). Organización de Datos - Curso Servetto Archivo de Datos Unidad lógica de almacenamiento permanente de registros, administrada por un Sistema Operativo. Dentro de un archivo los registros pueden organizarse en otras unidades lógicas llamadas bloques o páginas. Clasificación de Archivos Dato Seguridad: los sistemas operativos que identifican a usuarios generalmente permiten que los mismos establezcan permisos de acceso a sus archivos para otros usuarios o grupos de usuarios, e invariablemente aíslan o encapsulan sus espacios de almacenamiento. Asignación de espacio en dispositivos de almacenamiento: para implementar archivos, el Sistema de Archivo debe llevar cuenta de las unidades de asignación que cada uno ocupa, así como de las unidades de asignación libres en cada dispositivo de almacenamiento. 6 Organización de Datos - Curso Servetto FIUBA 1 11/03/2013 Funciones del Sistema Operativo Visión Lógica de Archivos Coordinación de transferencia: el sistema operativo debe atender solicitudes simultáneas de acceso a un mismo dispositivo de almacenamiento de varios procesos; para optimizar sus servicios debe priorizar la atención de solicitudes de lectura o escritura de registros físicos que se encuentren en las pistas más próximas a la posición actual de los brazos de lectoescritura en el mismo sentido de desplazamiento actual (algoritmo del ascensor). Coordinación de comunicación entre la CPU y los dispositivos de almacenamiento: interacción asincrónica entre la CPU y los dispositivos de almacenamiento. Otra forma de optimizar la comunicación y administrar el acceso concurrente de procesos a un mismo registro físico, ya que los dispositivos de almacenamiento tienen acceso directo a la memoria RAM (son dispositivos DMA: Direct Memory Access devices) es el empleo de data caching o buffering, con bloqueo (denegación de acceso) de buffers. Organización de Datos - Curso Servetto 7 FIUBA Atributos 8 Protección Acceso Contraseña Creador Propietario Indicador Solo Lectura Indicador Oculto Indicador Texto/Binario Indicador Bloqueo Indicador Temporal Fechas/Horas Tamaño Nombre Operaciones Crear Eliminar Abrir Cerrar Leer Escribir Escribir al Final Posicionarse Obtener Atributos Definir Atributos Renombrar Organización de Datos - Curso Servetto FIUBA Diseño de Datos El diseño de datos se realiza en dos fases o etapas: la de diseño conceptual o de alto nivel, en la que se caracterizan, y la de diseño lógico (de programación) o de bajo nivel, en la que se define su organización. Organización de Archivos Se abordan técnicas de organización de datos en archivos con el objetivo de optimizar la eficiencia de almacenamiento, recuperación y resguardo de los datos, comenzando con las bases conceptuales y procedimentales sobre las que se apoyarán dichas técnicas. Organización de Datos - Curso Servetto 9 FIUBA La definición conceptual de datos implica la definición de atributos, sin especificar tipos o dominios. La definición lógica de datos implica la definición de bloques o unidades de organización dentro de un archivo, especificando tipos o dominios para atributos, y la determinación de la convención de almacenamiento y recuperación. Ambas definiciones deben realizarse con una convención independiente del lenguaje de programación. 10 Diseño Conceptual de Datos 11 FIUBA Definición Conceptual de Datos Cada cosa o evento debe poder distinguirse de los demás del mismo conjunto, por lo que debe haber uno o más atributos que identifiquen unívocamente a los datos, conformando lo que se llama un identificador. Un conjunto de datos puede tener más de un identificador. Hay atributos que sólo se pueden describir en términos de otros atributos: compuestos Hay atributos que pueden desconocerse al momento de registrar un dato, o ser características que un dato particular puede no poseer: opcionales Hay atributos que pueden precisarse en términos de una lista de valores del mismo tipo o estructura: polivalentes Hay atributos que relacionan un dato con otro u otros del mismo conjunto o de otro: identificadores externos Organización de Datos - Curso Servetto Organización de Datos - Curso Servetto FIUBA Persona(((apellido)+, (nombre)+, fecha de nacimiento(año, mes, día))i, (DNI)i, (domicilio(tipo(‘real’ | ‘laboral’ | ‘legal’), calle, ubicación, (teléfono)*, localidad, (provincia)d, (CPA)?))*3, (e-mail)*, (nro celular)?) Para cada atributo se indica la identidad (nombre), la estructura (en caso de que sean compuestos), y la cardinalidad.También se puede definir la extensión. Los calificadores son: 12 De identificación De cardinalidad i identificador ? opcional ie identificador externo * ninguno o varios d definido por extensión en otro archivo + uno o varios Organización de Datos - Curso Servetto FIUBA 2 11/03/2013 Definición Lógica de Datos Definición Lógica de Datos Tipos de valores convencionales independientes de lenguajes de programación: En Enteros complemento a dos en n bytes Fn Fraccionarios punto flotante en n bytes Cn Caracteres con longitud exacta n CV Caracteres Variables hasta 255, con prefijo de longitud T Texto cantidad ilimitada de caracteres, incluyendo caracteres de control como salto de línea, retorno de carro, tabulación, fin de texto L Lógicos 0: Falso o No, 1: Verdadero o Sí B Binario imagen, audio, vídeo, etc. Organización de Datos - Curso Servetto 13 Registros de longitud fija (las unidades de organización son los mismos registros): Persona(apellidos: C64, nombres: C64, fecha de nacimiento(año: E2, mes: E1, día: E1), DNI: E4, (domicilio(tipo(‘real ’ | ‘laboral’ | ‘legal’): C7, calle: C32, ubicación: C32, teléfonos: C32, localidad: C32, provincia: C16, CPA: C8))3, (e-mail: C32)2, nro celular: C16) Registros de longitud variable (las unidades de organización son bloques, y se requiere campos de control): Persona(cantRR: E1, (apellidos: CV, nombres: CV, fecha de nacimiento(año: E2, mes: E1, día: E1), DNI: E4, cantDoms: E1, (domicilio(tipo(‘real’ | ‘laboral’ | ‘legal’): CV, calle: CV, ubicación: CV, cantNros: E1, (teléfono: CV)*, localidad: CV, provincia: CV, (CPA: C8)?))*3, cantD: E1, (e-mail: CV)*, nro celular: CV)*) FIUBA Organización de Registros 15 Datos lógicamente dependientes Representación de valores nulos: mapas de nulidad en cada registro Determinación de tamaños de bloque: 512 * 2^n bytes (coordinación con buffering) Administración de espacio libre: Dependen de una aplicación propietaria (sólo la aplicación conoce la estructura y organización de los registros). encadenamiento de registros vs mapas para registros de longitud fija listas de espacio libre vs archivo auxiliar para registros de longitud variable Organización de Datos - Curso Servetto FIUBA FIUBA Hay una definición de los datos (metadatos) pública y en una convención estándar (por ejemplo XML). Opciones: encabezados en archivos vs diccionario. FIUBA Primitivas de Organización de Archivos Dónde almacenar registros nuevos y cómo encontrar registros dentro del archivo para eliminarlos, modificarlos o recuperarlos para consulta. Los esquemas de organización se basan en los modos de acceso a archivos que proveen los sistemas operativos: secuencial (los registros se acceden en orden de posición) y relativo (se accede a registros con posicionamiento previo -seek). Para determinar cómo organizar un archivo se debe considerar los patrones de acceso que requiere. Las organizaciones indicadas cuando hay predominio de acceso secuencial son la secuencial, balanceadas secuenciales (B+ o B#) o la secuencial indexada; y cuando hay predominio de acceso relativo son las balanceadas no secuenciales (B o B*), las directas o la indexada. Organización de Datos - Curso Servetto Datos lógicamente independientes Organización de Datos - Curso Servetto 16 Conceptos de Organización de Archivos 17 FIUBA Independencia Lógica de Datos Problemas Organización de Datos - Curso Servetto 14 1. 2. 3. 4. 18 De Creación: creación y carga inicial sin validación de unicidad ni búsqueda de espacio libre. De Actualización de Registros: inserción con validación de unicidad y búsqueda de espacio libre, modificación y supresión. De Recuperación de Registros: consulta o recuperación unitaria de registros, y reporte o recuperación comprensiva. De Mantenimiento: reestructuración (reconstrucción), depuración (archivos transaccionales) y respaldo. Organización de Datos - Curso Servetto FIUBA 3