Estudio de la factibilidad del uso de PostgreSQL para el trabajo con datos científicos
Texto completo
(2) Hago constar que el presente trabajo fue realizado en la Universidad Central Marta Abreu de Las Villas como parte de la culminación de los estudios de la especialidad de Ciencia de la Computación, autorizando a que el mismo sea utilizado por la institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos ni publicado sin la autorización de la Universidad.. ______________ Firma del autor. Los abajo firmantes, certificamos que el presente trabajo ha sido realizado según acuerdos de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada.. _______________ Firma del tutor. _________________ Firma del jefe del Laboratorio.. II.
(3) Dedicatoria. A mis padres, Santiago y Marlene.. III.
(4) Agradecimientos. A todos los profesores que me han impartido clases, Gracias por sus enseñanzas. A todos los que de una forma u otra contribuyeron A la elaboración de este trabajo.. IV.
(5) Resumen En los últimos años, los avances en la tecnología de la información han facilitado la obtención de grandes cantidades de información. La Visualización Científica proporciona métodos y herramientas capaces de procesar y analizar datos del orden de los Terabytes. La manipulación, el almacenamiento, el acceso eficiente y el análisis de esos datos representan una tarea que constituye un gran reto. Muchos de estos datos son generados en forma de arreglos numéricos. Tradicionalmente se han empleado archivos planos secuenciales para almacenar los datos científicos, pues se ha demostrado que los SGBD resultan demasiado lentos para manipular datos de gran complejidad. Los formatos nativos de datos científicos incluyen estructuras para soportar grandes cantidades de datos, arreglos multidimensionales, una amplia variedad de tipos de datos y métodos para el acomodo de metadatos. Aunque el trabajo con estas herramientas resulta ventajoso para la manipulación de archivos secuenciales, los científicos, al usarlas en su trabajo, se enfrentan con la problemática del traslado y almacenamiento de una gran cantidad de archivos de soluciones individuales. Con el advenimiento de los SGBD-OR han surgido en los últimos años herramientas capaces de soportar gran cantidad de arreglos de datos multidimensionales. Estos sistemas combinan las ventajas de los SGBD-OO y sus antecesores, los SGBD relacionales. En este trabajo se hace un estudio de la factibilidad del uso del SGBD-OR PostgreSQL para la manipulación y visualización de los datos científicos a través de las extensiones que se les han creado para estos fines.. V.
(6) Abstract In the last years, the advances in the technology of the information have facilitated the obtaining of big quantities of information. Scientific Visualization provides methods and tools able to process and to analyze data of the order of the Terabytes. Manipulation, storage, efficient access and data analysis represent a task that constitutes a great challenge. Many of these data are generated in form of numeric arrangements. Traditionally sequential plane files have been used to store scientific data, because it has been demonstrated that the DBMS is too slow to manipulate data of great complexity. Scientific data native formats include structures to support big quantities of data, multidimensional arrangements, a wide variety of types of data and methods for metadatos accommodation. Although work with these tools is advantageous for sequential files manipulation, scientists face with transfer and storage problem of great quantity of singular solutions files, when using them. In the last years, with coming of DBMSOR has arisen tools able to support great quantity of multidimensional data arrays. These systems combine the advantages of those DBMS-OO and their predecessors, the relational DBMS. In this work, a study of the feasibility of the use of PostgreSQL DBMS-OR systems is made for manipulation and visualization of scientific data through the extensions created for that.. VI.
(7) Índice. Introducción. ................................................................................................................................ 2 Capítulo 1: Almacenamiento y Gestión de Datos Científicos. .................................................... 7 1.1 - Bases de Datos Científicas. ............................................................................................. 7 1.1.1 - Archivos Binarios. .................................................................................................... 8 1.1.1.1 – NetCDF. ................................................................................................................ 9 1.1.1.2 - HDF. .................................................................................................................... 12 1.1.2 - Sistemas Gestores de Bases de Datos aplicados. .................................................... 20 1.1.2.1 - Sistemas de Base de Datos Relacionales (SGBDR). ........................................... 21 1.1.2.2 - Sistemas de Bases de Datos Orientadas a Objeto (SGBD-OO). ......................... 22 1.1.2.3 - Sistemas de Bases de Datos Objeto Relacionales (SGBD-OR). ......................... 24 1.2 - Gestión de los DC. ......................................................................................................... 26 1.2.1 - Análisis estadístico. ................................................................................................ 27 1.2.2 - Visualización de Datos Científicos......................................................................... 27 1.2.2.1 - Requerimientos. ................................................................................................... 31 1.2.2.2 - Consultas. ............................................................................................................ 34 1.2.2.3 - Softwares de Visualización. ................................................................................ 36 1.2.2.3.1 - Iris Explorer. ..................................................................................................... 36 1.2.2.3.2 - Advanced Visual Systems (AVS)..................................................................... 37 1.2.2.3.3 - Khoros. ............................................................................................................. 38 1.2.2.3.4 - Amira. ............................................................................................................... 39 1.2.2.3.5 - OpenDX. ........................................................................................................... 40 Conclusiones parciales ........................................................................................................... 41 Capítulo 2: Uso del SGBD-OR PostgreSQL para el trabajo con datos científicos. .................. 42 2.1- PostgreSQL. .................................................................................................................... 42 2.1.1- Características del PostgreSQL. .............................................................................. 43 2.1.2 – Capacidad del PostgreSQL. ................................................................................... 44 2.1.3 - Uso del PostgreSQL. .............................................................................................. 45 2.1.4 - Soporte para PostgreSQL. ...................................................................................... 45 2.1.5 - Tipos de Datos. ....................................................................................................... 46 2.1.6 - Extensibilidad de PostgreSQL para el almacenamiento de datos científicos. ........ 48 2.1.7 – Medidas para mejorar el rendimiento en el acceso a los datos científicos almacenados en el PostgreSQL. ......................................................................................... 49 2.2- Modelado de los datos científicos. ................................................................................. 49 2.2- Importación de los Datos. ............................................................................................... 52 2.3- Accediendo a los DC en PostgreSQL. ............................................................................ 53 Conclusiones Parciales........................................................................................................... 54 Capítulo 3: Análisis del Rendimiento. ....................................................................................... 55 3.1 - Ambiente de prueba. ...................................................................................................... 55 3.2 - Métricas de Rendimiento. .............................................................................................. 56 3.3 – Caso de Estudio 1.......................................................................................................... 57 3.4 – Resultados del Caso de Estudio 1. ................................................................................ 58 3.5 – Caso de Estudio 2.......................................................................................................... 60 3.6 – Resultados del Caso de Estudio 2. ................................................................................ 61 VII.
(8) 3.7 - Comparación entre los dos Casos de Estudio. ............................................................... 63 Conclusiones parciales ........................................................................................................... 64 Conclusiones y Recomendaciones ............................................................................................. 65 Bibliografía ................................................................................................................................ 66 Anexo ......................................................................................................................................... 68 Anexo I. Esquema de BDVar................................................................................................. 68 Anexo II. Tablas generadas para BDVar. .............................................................................. 69 Anexo III. Tabla del comportamiento de concentraciones CO2. ........................................... 71. VIII.
(9) Introducción. 1.
(10) Introducción. Los volúmenes de datos generados por las aplicaciones científicas crecen de manera exponencial cada año. Los avances alcanzados en instrumentos, detectores y tecnología de computadoras están creando repositorios de datos del orden de los Terabytes en muchas disciplinas. La Visualización Científica (VC) emerge como una alternativa para extraer información de estos grandes volúmenes de datos, basada en la generación, a partir de ellos, de imágenes, ya sean estáticas o en movimiento. Para que este proceso sea efectivo se necesitan formas eficientes de almacenamiento y gestión de los datos. Una alternativa común usada en los primeros algoritmos de cálculos científicos fue el empleo de archivos planos secuenciales para el almacenamiento de los datos de entrada y salida. Esta solución, aunque simplifica el acceso, es ineficiente cuando se almacenan y procesan grandes conjuntos de datos, además de presentar problemas de interoperabilidad. La necesidad de tener una manera eficiente e independiente de la arquitectura de leer y escribir datos científicos condujo a la creación de nuevos modelos de datos. Estos modelos incluyen estructuras de datos que soportan grandes conjuntos de datos, arreglos multidimensionales, gran variedad de tipos de datos (números enteros, números en punto flotante, cadenas, entre otros), y métodos para incorporar metadatos. Como ejemplos de estos estándares tenemos NetCDF (NetCDF, 1998), HDF (HDF, 1998) y FITS (NASA). Cada uno incluye una biblioteca que encapsula los archivos correspondientes, y brinda una forma independiente de la plataforma para crear, acceder, buscar y visualizar los datos. Estas bibliotecas están disponibles mediante una Interface de Programación de Aplicaciones (API, por sus siglas en ingles) que puede ser usada desde varios lenguajes, siendo los más comunes C, C++ y Java. Estos estándares facilitan el intercambio de datos entre los científicos. Sin embargo, es común que cada disciplina o comunidad científica favorezca un formato específico, así como las herramientas construidas sobre él, lo que hace que el intercambio fuera del grupo sea problemático. Por otro lado, aunque las ventajas sobre el uso de archivos planos son considerables, aún se presenta el problema de la generación de un gran número de archivos, pues los científicos acostumbran a generar un archivo por cada simulación. Esto provoca que, cuando el sitio de almacenamiento no coincide con el de procesamiento, deban moverse muchos archivos de un lugar. 2.
(11) a otro. Además, los archivos se organizan en directorios. El sistema de archivos no contiene más metadatos que la estructura jerárquica de nombres de directorios y archivos. Esto promueve un modelo de datos de hágalo-usted-mismo (Gray, 2003), que no se beneficia del surgimiento de las nuevas herramientas de análisis de datos. En este modelo, el análisis de datos se realiza buscando primero todos los archivos relevantes, abriendo cada archivo, buscando los datos necesarios y moviéndose hacia el próximo archivo. Cuando todos los datos están en memoria, o en un archivo intermedio, el programa puede comenzar el análisis. Este proceso de “filtra, después analiza”, hace que el análisis de grandes volúmenes de datos con herramientas procedurales convencionales sea más lento a medida que el volumen de datos aumenta. Esta forma de acceso impide las búsquedas temporales, espaciales, asociativas y paralelas, así como el uso de un lenguaje de consulta de alto nivel. Varios de los problemas mencionados anteriormente pueden ser resueltos usando Sistemas de Gestión de Bases de Datos (SGBD). Estos están diseñados para minimizar el tiempo de las búsquedas, hacer balance de carga y manejar grandes volúmenes de datos. Además, permiten el acceso simultáneo a los datos desde varias aplicaciones, lo que brinda un adecuado ambiente para compartir los mismos. Los SGBD también brindan poderosos lenguajes de consultas no procedurales, independencia física y lógica de los datos, y variadas herramientas para el diseño y manipulación de los datos. Sin embargo, la comunidad científica no ha sido proclive a usar los SGBD comerciales. Entre las razones se encuentran que los SGBD Relacionales (los más usados en el mercado) no brindaban soporte para arreglos multidimensionales y su rendimiento al trabajar con grandes arreglos era bajo. Sin embargo, el surgimiento de los SGBD Objeto Relacionales (SGBD-OR) han abierto las puertas a la inclusión de conjuntos de datos científicos dentro de los SGBD. Por otra parte, las aplicaciones científicas en general, y las de visualización en particular, difieren de las aplicaciones comerciales en la forma de procesar los datos (Pérez Risquet, 2006).. Planteamiento del problema. Las aplicaciones científicas basadas en archivos binarios de datos científicos estándares presentan varias dificultades, entre las que se encuentran el uso de varios formatos incompatibles entre si y la necesidad de almacenamiento y transmisión de muchos archivos individuales. Los SGBD-OR brindan una alternativa para resolver estos problemas, pero a su vez presentan retos. 3.
(12) para usarlos en el almacenamiento de datos científicos, como son la gestión eficiente de grandes volúmenes de estos y su modelación.. Consecuentemente, en este trabajo se plantean las siguientes:. Preguntas de investigación. . ¿Qué ventajas ofrece un SGBD-OR para el almacenamiento y visualización de datos científicos?. . ¿Qué medidas se pueden tomar para mejorar el rendimiento en el acceso a los datos científicos almacenados en un SGBD-OR, que contrarresten la sobrecarga impuesta por aquellas funcionalidades del mismo que no son necesarias en las aplicaciones científicas y de visualización de datos científicos?. . ¿Cómo es el rendimiento de las operaciones de acceso a los datos científicos, en especial aquellas orientadas a la visualización de los mismos, usando un SGBD-OR, comparado con esas mismas operaciones usando una biblioteca estándar como HDF?. Teniendo en cuenta lo anterior se proponen los siguientes objetivos.. Objetivos Generales. Estudiar la factibilidad del uso de un SGBD-OR para el almacenamiento y visualización de datos científicos.. Objetivos Específicos. . Determinar las tendencias en el uso de Bases de Datos para el almacenamiento de datos científicos (Bases de Datos Científicas), con respecto a aspectos tales como tipo de SGBD (relacional, objeto-relacional, orientado a objetos, deductivo), tipos de datos almacenados, forma de modelar los datos, entre otros.. 4.
(13) . Determinar las ventajas que ofrece un SGBD-OR para el almacenamiento y visualización de datos científicos.. . Definir medidas para mejorar el rendimiento en el acceso a los datos científicos almacenados en el SGBD-OR escogido, que contrarresten la sobrecarga impuesta por las funcionalidades del mismo.. . Implementar un caso de estudio de visualización de datos científicos almacenados en archivos HDF y en un SGBD-OR y hacer una comparación de rendimiento entre las dos soluciones.. Justificación de la investigación. Los instrumentos científicos y las simulaciones por computadoras están generando grandes cantidades de datos que necesitan nuevos métodos de análisis y organización de los datos. La VC es una potente herramienta que permite analizar grandes volúmenes de datos de manera rápida, revelando relaciones que pueden perderse al usar métodos estadísticos. El reto que se presenta a los investigadores comprende varios aspectos. Primero, almacenar todo ese extenso volumen de datos; segundo, apoyarse en un Gestor de Bases de Datos que permita manejar lo recopilado de una manera adecuada; y tercero, métodos para “filtrar” y extraer resultados que permitan investigar problemas y obtener información relevante. PostgreSQL es un SGBD-OR gratis y de código abierto, muy usado en la actualidad. Uno de sus puntos fuertes, es la capacidad de tratar grandes volúmenes de datos con escalabilidad, o sea, su arquitectura puede ser continuamente ampliada de acuerdo con la demanda de los usuarios. Exactamente en este contexto, entran las aplicaciones solicitadas por las áreas de investigación científica que necesitan de una infraestructura robusta y en continua expansión.. Forma de validar los resultados. Se implementará un caso de estudio de visualización de datos científicos almacenados en archivos HDF y en un SGBD-OR y se harán comparaciones de rendimiento entre las dos soluciones.. 5.
(14) Hipótesis. El uso de un SGBD-OR para el almacenamiento y visualización de datos científicos ofrece ventajas sobre el uso de una biblioteca estándar de acceso a datos científicos como HDF. Es posible definir medidas para mejorar el rendimiento en el acceso a los datos científicos almacenados en el SGBD-OR, que contrarresten la sobrecarga impuesta por las funcionalidades del mismo.. 6.
(15) Capítulo 1: Almacenamiento y Gestión de Datos Científicos. Uno de los últimos retos para los programadores ha sido crear las condiciones para almacenar la creciente cantidad de datos científicos que se derivan de los últimos estudios, principalmente los relacionados con astrofísica, física de altas energías y genética. Ya se asoman los términos de terabytes y posiblemente petabytes para referirse a la impensada cantidad de datos electrónicos que se han derivado de la creciente actividad científica. Ha llegado a estimarse que sólo en el último año la cantidad de datos científicos supera todos los años anteriores desde que comenzó la ciencia. Más allá de la capacidad de almacenar datos, se empieza a hablar de nuevas necesidades surgidas por el acceso y forma de procesar la información científica.. 1.1 - Bases de Datos Científicas. Las bases de datos científicas son, casi por definición, muy extensas. Pero el tamaño por sí solo no hace necesariamente distinción entre una base de datos científica y una comercial. Las bases de datos científicas están separadas de sus primas comerciales por tres características fundamentales. Primero, las entidades observadas son frecuentemente más complejas, con interrelaciones significativas. Consecuentemente, la tecnología orientada a objetos frecuentemente parece más apropiada. Segundo, las bases de datos científicas están muy pocas veces orientadas a las transacciones. Los datos son registrados para ser preservados con posterioridad, y no están cambiando constantemente para reflejar el estado actual de un sistema. La recuperación de datos de interés es lo más importante. Tercero, la recuperación de datos es frecuentemente volumétrica, esto es, basada en dos o más búsqueda de rangos o parámetros conjuntivos. Las consultas espaciales constituyen un caso especial de recuperación volumétrica. Esto sólo es tan importante, que los métodos especiales de acceso, como los archivos grid y los árboles R+, son desarrollados exclusivamente para ejecutar accesos eficientemente con respecto a estos diseños volumétricos.(Pfaltz, 1998). Un ejemplo de base de datos científicas constituye el sistema concebido e implementado sobre una base de datos relacional en el Observatorio Astronómico Nacional de Llano del Hato (OAN),. 7.
(16) en los Andes Merideños, capaz de contener información sobre el sondeo del firmamento en la franja ecuatorial (Anexo I. Esquema de BDVar). La nombrada Base de Datos de Variabilidad en Objetos Celestes (BDVar), dispone una tabla (Anexo II. Tablas generadas para BDVar.) para datos de las observaciones y dentro de la información directa que se recaba para ellas, se encuentra: un identificador único, la fecha y hora de la observación, la Ascensión Recta, la Declinación, número de la observación según el catálogo (que es único para cada noche de observación, pero puede repetirse incluso para observaciones de objetos distintos, en noches diferentes), el CCD líder, número de cuadros en que aparece el objeto en la observación, el ángulo horario e indicador sobre la calidad de la imagen. Indirectamente, relacionando la observación con los CCD’s y filas, se encuentran: filtros utilizados, color de los filtros, términos de color, segundos de arco y punto cero. Por último, asociando cada objeto con los cuadros (o frames) en que aparece, se registran sus coordenadas X, Y en píxeles.. 1.1.1 - Archivos Binarios. Los principales adelantos en los programas de simulación científica y recolección de datos, obtenidos de las observaciones espaciales, por solo citar un ejemplo, han permitido desarrollar potentes herramientas de la Visualización Científica que poseen su propio campo de aplicación. Muchos de estos datos son generados en forma de arreglos numéricos. Inicialmente, se usaron archivos planos secuenciales para almacenar estos datos. Esta solución, aunque simplifica el acceso, resulta ineficiente cuando se trata del almacenaje y procesamiento de grandes conjuntos de datos. Por otra parte, el uso de representaciones binarias causa problemas de interoperatividad, debido a que el orden de almacenamiento de los octetos difiere según la arquitectura de computadoras empleada (Gray, 2005). La tecnología de la instrumentación detrás de estos generadores de los datos está mejorando aceleradamente, y a un ritmo superior a las técnicas disponibles para mejorar y poder utilizar los datos resultantes (Treinish, 2005). Los científicos demandaban para su actividad un método eficiente e independiente para la lectura y escritura de datos científicos que permitiera desarrollar bibliotecas especificas de accesos de datos (Cohen et al., 2006).. 8.
(17) Surgen así, desarrolladas por universidades y empresas, aplicaciones para representar, almacenar y procesar esta información y para facilitar su manipulación, permitiendo de esta forma diversas representaciones para muchos tipos de datos y el acceso rápido y eficiente a estos, proveyendo herramientas para una visualización efectiva. Todo ello trajo como consecuencia el surgimiento de nuevos formatos de datos, que permiten representar arreglos y datos tabulares, así como las relaciones entre ellos. En la década de los 80’s se diseñaron dos populares bibliotecas para cubrir estas necesidades: Network Common Data Form (NetCDF, 1998) y Hierarchical Data Format (HDF, 1998). Ambos formatos. incluyen. estructuras. para. soportar. grandes. cantidades. de. datos,. arreglos. multidimensionales, una amplia variedad de tipos de datos (enteros, números de punto flotantes, cadenas de caracteres, etc.) y métodos para el acomodo de metadatos1. Aunque las herramientas antes mencionadas (NetCDF y HDF) resultaban ventajosas sobre los archivos secuenciales, los científicos, al usarlas en su trabajo, se enfrentaban con el traslado y almacenamiento de una gran cantidad de archivos de soluciones individuales en demasía engorroso. Ambas bibliotecas están implementadas como bibliotecas de funciones vinculadas dentro de sus códigos, no como servidores; además no controlan las transacciones. Las implementaciones para el control de transacciones conllevan un gran esfuerzo de escritura del código (Cohen, 2006).. 1.1.1.1 – NetCDF. NetCDF (Network Common Data Form) fue creado en 1988. Es una interfaz de una biblioteca de funciones de acceso a datos diseñada para el almacenamiento y recuperación de datos en forma de arreglos, donde cada arreglo es una estructura rectangular n-dimensional en la que todos sus elementos son del mismo tipo de dato. Un escalar (un solo valor) es un arreglo 0-dimensional. La biblioteca NetCDF implementa un tipo de dato abstracto, por lo que todas las operaciones para crear, acceder y manipular datos deben usar sólo las funciones que provee la interfaz. La representación de los datos está oculta para las aplicaciones que usen la interfaz, de modo que se puede modificar la forma en la que estos se encuentran almacenados sin afectar los programas Son “datos sobre los datos”.Nivel superior de la información, o instrucciones que describen el contenido, contexto, calidad, estructura, y accesibilidad de una colección de datos específica. 1. 9.
(18) existentes. La representación física de los datos en formato NetCDF fue diseñada para ser independiente de la computadora en que fueran guardados. Los datos son vistos como una colección de objetos portables y autodescriptivos que pueden ser accedidos a través de una interfaz simple. Se puede acceder directamente a los valores sin conocer el modo en que estos datos están almacenados; para esto se dispone de informaciones auxiliares sobre los datos que son almacenadas juntamente con estos. Los programas de aplicación pueden transformar, combinar, analizar y mostrar campos específicos de estos conjuntos de datos. El desarrollo de estas aplicaciones ha dado lugar a una mejor accesibilidad de los datos y a una mejor reutilización del software para la administración, análisis, y visualización de datos orientados a arreglos. La biblioteca NetCDF está soportada sobre varios sistemas operativos UNIX y dispone tambien de varias interfaces para Windows como LeoNetCDF y netcdf-3.5.0.win32bin. Este paquete fue también probado en algunos otros sistemas operativos, con la asistencia de usuarios con acceso a esos sistemas. Un conjunto de datos de NetCDF clásico es almacenado como un solo archivo que consiste en dos fragmentos: un encabezado y una parte de datos. El encabezado contiene toda la información sobre las dimensiones, variables y atributos del archivo, incluyendo sus nombres, tipos y otras características. La sección de los datos se divide en una parte de datos de tamaño fijo, conteniendo los datos para variables que no tienen una dimensión ilimitada, y otra parte de datos de tamaño variable, conteniendo los datos para variables que tienen una dimensión ilimitada. La información sobre cada variable incluye: el desplazamiento al inicio de los datos de la variable para variables de tamaño fijo y el desplazamiento relativo de otras variables dentro del registro. El encabezamiento también contiene los tamaños dimensionales e informaciones necesarias para hacer un mapa de índices multidimensionales para cada variable hacia los desplazamientos apropiados. Por defecto, este encabezamiento tiene poco espacio extra para su uso; es tan grande como necesita ser para poder incluir las dimensiones, variables, y atributos (incluyendo todos los valores de atributos) en el conjunto de datos de NetCDF. Esto tiene la ventaja de que los archivos sean compactos, requiriéndose muy poco costo para almacenar los datos auxiliares que hacen a los conjuntos de datos autodescriptivos. Una desventaja de esta organización es que cualquier operación en un conjunto de datos de NetCDF que requiera que crezca el encabezamiento (por. 10.
(19) ejemplo: adicionar nuevas dimensiones o nuevas variables) requiere de movimiento de los datos mediante la copia de los mismos. No obstante si se crean todas las dimensiones necesarias, variables y atributos, antes de escribir los datos, y se evita adiciones posteriores y renombramientos de componentes que requieran más espacio en la parte de encabezamiento del archivo, entonces se puede evadir el costo asociado al cambio posterior del encabezamiento. Otra alternativa para esta problemática es usar una versión de la función enddef para reservar espacio extra en el encabezamiento del archivo de forma explícita. Mediante esta reservación se puede evitar el gasto de tener que mover todos los datos posteriormente. Cuando se cambia el tamaño del encabezamiento, los datos en el archivo son movidos y la localización de los valores de datos en el archivo cambia. Si otro programa esta leyendo el conjunto de datos de NetCDF durante la redefinición, su vista estará basada en el archivo viejo, mostrando probablemente índices incorrectos. Si los conjuntos de datos. de NetCDF están. compartidos, debe estar previsto algún mecanismo externo a la biblioteca NetCDF para que prevenga el acceso a los lectores durante la redefinición. Las partes de datos con tamaño fijo que le siguen al encabezamiento contienen todos los datos versátiles para las variables que no emplean una dimensión ilimitada. Los datos para cada variable son almacenados contiguamente en esta parte del archivo. Si no hay dimensión ilimitada, esta es la última parte del archivo NetCDF. La parte que le sigue a los datos de tamaño fijo consiste de un número variable de registros de tamaño fijo, donde cada uno de los cuales contiene datos para todas las variables de registros. Una de las metas de NetCDF es soportar acceso eficiente a pequeños subconjuntos de en grandes conjuntos de datos. Para lograr esto, NetCDF utiliza accesos directos en lugar de accesos secuenciales. Esto puede ser mucho más eficiente cuando el orden en que los datos son leídos es diferente del orden en que fueron escritos, o cuando deben ser leídos en diferentes órdenes por diferentes aplicaciones. El costo computacional para la representación externa portable depende de muchos factores, incluyendo el tipo de dato, el tipo de computador, la granularidad del acceso a los datos, y de cuán bien se ha ajustado la implementación a la computadora en la que está corriendo. Este costo es típicamente pequeño en comparación con todo el conjunto de recursos utilizados por una. 11.
(20) aplicación. De cualquier forma, el costo de la capa de representación externa es usualmente un precio razonable a pagar por acceso de datos portables. A pesar de que la eficiencia en el acceso a los datos ha sido un aspecto importante en el diseño e implementación de NetCDF, el hecho de tener aún que utilizar la interfaz para acceder a los datos puede en algunas ocasiones resultar ineficiente, por ejemplo: cuando se solicita una porción de datos que requiere un solo valor de cada registro. Una de las razones primarias para usar la interfase de NetCDF para aplicaciones que traten con arreglos es para tomar ventaja de las utilidades de alto nivel y las aplicaciones genéricas de NetCDF para este tipo de datos. Algunas de las funciones más utilizadas de la biblioteca se despliegan a continuación: . ncdump: lee un conjunto de datos NetCDF e imprime una representación textual de la información en el conjunto de datos.. . ncgen:. lee una representación textual de un conjunto de datos NetCDF y genera el. archivo binario NetCDF correspondiente o un programa en C o FORTRAN para crear el conjunto de datos NetCDF. . ncmeta: imprime los metadatos seleccionados para uno o mas conjuntos de datos NetCDF. . ncrob: realiza varias operaciones (copy, sum, mean, max, min, etc.) con los datos leídos, impresos o escritos para archivos texto o con partes seleccionadas de variables o atributos NetCDF (NetCDF, 1998).. El programa NetCDF de Unidata está disponible libremente vía FTP para alentar a su uso generalizado. [ftp://ftp.unidata.ucar.edu/pub/NetCDF]. 1.1.1.2 - HDF. HDF (Hierarchical Data Format) es un formato de datos desarrollado por el Centro Nacional de Aplicaciones de Supercómputo (NCSA) de la Universidad de Illinois. Es una biblioteca de funciones que permite estructurar los archivos de datos y posee un formato de archivo multiobjeto para la transferencia de datos gráficos y numéricos entre ordenadores. HDF se encuentra libremente disponible. La distribución incluye, además de la biblioteca HDF, las utilidades de línea de comando HDF y una suite de prueba (código fuente solamente). 12.
(21) HDF posee diferentes niveles de interacción (Figura 1. Niveles de interacción de HDF.). En su nivel más bajo es un formato físico de archivos para el almacenamiento de datos científicos. En su nivel más alto es una colección de utilidades y aplicaciones para manipular, ver y analizar datos en los archivos HDF. Entre estos niveles existe una biblioteca de programas que provee una Interfaz de Programación de Aplicaciones (API) de alto nivel y una interfaz de datos de bajo nivel. En el nivel más alto de HDF se incluyen varias utilidades de línea de comandos para administrar y visualizar los archivos HDF, aplicaciones de NCSA que soportan visualización y análisis de datos, y una gran variedad de aplicaciones de terceros.. Figura 1. Niveles de interacción de HDF.. El paquete HDF se agrupa en las siguientes categorías. . API’s de C y de FORTRAN 77.. . Herramientas de análisis y visualización científica que leen y escriben archivos HDF.. . Utilidades de línea de comandos para operar directamente en los archivos HDF.. Las utilidades de línea de comando son programas de aplicación que pueden ser ejecutados invocándolos desde el intérprete de comandos como comandos UNIX. Estas realizan operaciones comunes en los archivos HDF, como: . Convertir de un formato a otro, por ejemplo, desde y hacia JPEG/HDF.. . Analizar y ver archivos HDF.. . Manipular los archivos HDF.. De las utilidades HDF, hdp es una de las más importantes ya que provee información rápida sobre los contenidos y objetos de datos en un archivo HDF. Puede listar los contenidos de los archivos HDF en varios niveles con diferentes detalles. Además puede descargar los datos de uno o más archivos en formato binario o ASCII.. 13.
(22) Las API´s incluyen conjuntos de rutinas para el almacenamiento y acceso a tipos de datos específicos, y se encuentran disponibles en los lenguajes C y Fortran. A pesar de que el uso de las interfaces requiere programación, todos lo detalles de bajo nivel pueden ser ignorados. Las API’s de HDF están divididas en dos categorías: las interfaces multiarchivo y las interfaces de un solo archivo. Las interfaces multiarchivo son aquéllas que proporcionan el acceso simultáneo a varios archivos HDF, esto es un rasgo importante que las interfaces de un solo archivo no soportan. HDF 4.0 (y versiones posteriores) soporta una interfaz de compresión de bajo nivel, que permite que cualquier objeto de datos sea comprimido utilizando diferentes algoritmos. Actualmente solo soporta tres algoritmos de compresión: RLE, Huffman adaptativo y LZ-77. En el futuro se planea incluir además Lempel/Ziv-78 (el algoritmo de descompresión que utiliza gzip), un Codificador Aritmético y un Algoritmo Huffman más rápido. También soporta compresión de n bits para SDS y compresión JPEG para imágenes raster. La interfaz de bajo nivel está reservada para desarrolladores de software. Fue diseñada para E/S de flujo de datos directamente desde archivos, manipulación de errores, administración de memoria y almacenamiento físico. Es esencialmente un conjunto de herramientas para programadores experimentados, quienes desean hacer algo más de lo que HDF permite actualmente a través de la interfaz de alto nivel. Las rutinas de bajo nivel están disponibles solo en C. Un archivo HDF contiene un encabezamiento, al menos un bloque descriptor de datos, y cero o más elementos de datos. El encabezamiento de archivo lo identifica como un archivo HDF. Un bloque descriptor de datos contiene un número de descriptores de datos. Un descriptor de datos y un elemento de dato juntos forman un objeto de dato, esta es la estructura básica de agrupamiento para el encapsulamiento de datos en un archivo HDF. El archivo HDF posee una serie de rasgos importantes tales como: . Es versátil. HDF suporta muchos tipos diferentes de modelos de datos. Cada modelo de dato define un conjunto específico de tipo de dato y provee una API para lectura, escritura y organización de los datos y metadatos del tipo correspondiente. Los modelos de datos soportados incluyen arreglos multidimensionales, imágenes de puntos y tablas.. . Es auto-descriptivo, permitiendo una aplicación para interpretar la estructura y contenidos de un archivo sin ninguna información proveniente del exterior.. 14.
(23) . Es flexible. Con HDF se pueden mezclar y asociar objetos relacionados agrupados en un archivo y acceder a ellos como un grupo o como objetos individuales. Los usuarios pueden además crear sus propias estructuras de agrupamiento utilizando un rasgo de HDF llamado vgroups.. . Es extensible. Puede acomodar fácilmente nuevos modelos de datos, sin tener en cuenta si fueron adicionados por el equipo de desarrolladores de HDF o por los usuarios de HDF.. . Es portable. Los archivos HDF pueden ser compartidos a través de la mayoría de las plataformas comunes, incluyendo muchas estaciones de trabajo y computadoras de alto desempeño. Un archivo HDF creado en una computadora puede ser leído en un sistema diferente sin modificación alguna.. No obstante, posee varias limitaciones, algunas de las cuales son: . Un solo archivo no puede almacenar más de 20,000 objetos complejos ni sobrepasar los 2 gigabytes.. . El modelado de los datos es menos consistente de lo que debieran ser. Existen más tipos de objetos que lo necesario y los tipos de datos son demasiado rígidos.. . La biblioteca de recursos es ambigua y excesivamente compleja.. HDF se encuentra actualmente en la versión 5, conocida como HDF5, la cual está diseñada para solucionar algunas de las limitaciones de HDF4. HDF5 incorpora las siguientes expansiones: . Un nuevo formato de archivo diseñado para solucionar algunas de las deficiencias de HDF4, particularmente la necesidad de mayor almacenaje de objetos.. . Un modelo de datos más simple y comprensivo, que incluye solo dos estructuras básicas: un arreglo multidimensional de registros y una estructura de agrupamiento.. . Biblioteca y API mejor implementadas y más flexibles, con un perfeccionado soporte para E/S en paralelo, hilos, y otros requerimientos impuestos por otros sistemas y aplicaciones modernas.. La biblioteca HDF5 está soportada sobre varias plataformas como: AIX,Cray J90, T3E, FreeBSD, HP-UX, IRIX, Linux, OSF1, Solaris, ASCI TFLOPS, Windows NT 4.0, Windows 98. Los archivos HDF5 están organizados en estructuras jerárquicas, con dos objetos primarios: grupos y conjuntos de datos (datasets), y dos objetos secundarios: datatypes y dataspace.. 15.
(24) Un grupo es una estructura que contiene cero o más objetos HDF5, los cuales, a su vez, se denominan miembros de ese grupo. Un dataset es un arreglo multidimensional de elementos de datos, unido al soporte de metadatos. El trabajo con grupos y miembros de grupos es similar en muchas maneras al trabajo con directorios y archivos en UNIX. Como los objetos directorios y archivos en UNIX, los objetos en un archivo HDF5 son también descritos por la entrega de sus caminos enteros o absolutos. Por ejemplo: / es el grupo root o raíz; el camino /foo/bar significa un miembro llamado bar pertenece al grupo foo que a su vez pertenece al grupo raíz (Figura 2. Ejemplo de grupos y miembros de grupos.).. Figura 2. Ejemplo de grupos y miembros de grupos.. Un grupo cuenta con dos partes: 1) Un encabezado, que contiene un nombre de grupo y una lista de sus respectivos atributos. 2) Una tabla de símbolos del grupo, que es una lista de objetos HDF5 que pertenecen al grupo. Un dataset (Figura 3. Composición de un dataset.) es almacenado en un archivo en dos partes: un encabezado y un arreglo de datos.. 16.
(25) Figura 3. Composición de un dataset.. Los encabezados contienen información que es necesitada para interpretar la porción del arreglo del dataset, conocido como metadatos (o punteros a metadatos), que describe o registra el dataset. La información del encabezado incluye el nombre del objeto, su dimensionalidad, su tipo de número, información sobre como el dato por sí mismo es almacenado en disco y otras informaciones usadas por la biblioteca para acelerar el acceso al dataset o mantener la integridad de los archivos. Existen cuatro clases esenciales de información en cualquier encabezado: name, datatype, dataspace y storage layout. El name es una secuencia de caracteres alfanuméricos ASCII. Datatype define los tipos de datos del dataset y especifica, dado un elemento, el conjunto de posibles valores que puede tener y como los valores de ese tipo son almacenados. Existen varias categorías de datatypes; entre ellas se destacan los atómicos, los nativos, los compuestos y los named (Figura 4. Categorías de un datatype.). El atómico es aquel que no puede ser descompuesto. Esta clase incluye a los integer, float, date, time, string, pointers, bit field, etc. Cada tipo atómico pertenece a una clase particular y posee algunas propiedades como tamaño, orden, precisión y offset. Aunque es posible describir prácticamente cualquier clase de datatype atómico, la mayoría de las aplicaciones usan datatypes predefinidos que son soportados por sus compiladores. En HDF5 estos son llamados NATIVES. Estos datatypes son parecidos a los de C que generalmente soportados por el hardware de la máquina donde la biblioteca fue compilada. En orden de portabilidad, las aplicaciones al menos deberían usar la designación NATIVE para describir los valores de los datos en memoria. 17.
(26) El compuesto está conformado por colecciones de datatypes dentro de una sola unidad; similar a los structs en C. Las partes de un datatype compuesto son llamadas miembros; estos pueden ser de cualquier tipo, incluyendo a otro datatype compuesto. Dentro de ellos están los named datatypes que pueden ser lo mismo atómicos que compuestos y son específicamente diseñados para ser compartidos en datasets cruzados. Normalmente cada dataset tiene su propio datatype, pero a veces queremos compartir un datatype entre varios datasets. Esto puede hacerse usando el datatype named. Un named datatype es almacenado en el archivo independientemente de cualquier dataset, y referenciado por todos los datasets que tengan ese datatype. Pueden tener una lista de atributos asociados.. Figura 4. Categorías de un datatype.. El dataspace describe la dimensionalidad del dataset. Las dimensiones de un dataset pueden ser fijas (invariables) o pueden ser ilimitadas (extendibles), las cuales pueden irse expandiendo a medida que vayan almacenándose nuevas informaciones. Consiste en un rango (número de dimensiones) del arreglo de datos, el tamaño actual de las dimensiones del arreglo, y el tamaño máximo de las dimensiones del arreglo (Figura 5. Estructura de un dataspace.). Para un. 18.
(27) dataset de dimensión fija, el tamaño actual es el mismo del tamaño máximo de la dimensión. Cuando una dimensión es ilimitada, el tamaño máximo es puesto con el valor H5P_UNLIMITED.. Figura 5. Estructura de un dataspace.. El formato HDF5 posibilita almacenar los datos en variadas formas. El almacenamiento por defecto es de formato contiguous (Figura 6. Almacenamiento contiguous.), el cual significa que los datos son guardados del mismo modo lineal en que son organizados en memoria. Las otras dos formas de almacenamiento son compact y chunked. El almacenamiento compact (Figura 7. Almacenamiento compact.). es usado cuando el total de datos es pequeño y puede ser almacenado. directamente en el encabezado. El almacenamiento chunked (Figura 8. Almacenamiento chunked.). actúa dividiendo el dataset en porciones de igual tamaño que luego son guardadas. separadamente.. Figura 6. Almacenamiento contiguous.. Figura 7. Almacenamiento compact.. Figura 8. Almacenamiento chunked.. 19.
(28) En el futuro, otros formatos de almacenamiento serán añadidos a HDF5. Los atributos son pequeños named datasets que son adjuntados a los datasets primarios, grupos, o named datatypes. Los atributos pueden ser usados para describir la naturaleza y/o el uso entendible de un dataset o grupo. Un atributo cuenta de dos partes: . Nombre: es una cadena de caracteres ASCII terminadas en null. Cada atributo adjuntado a un objeto tiene un nombre único.. . Valor: contiene uno o más elementos de datos del mismo datatype.. La sección del valor contiene uno o más datos de entrada del mismo datatype. Los atributos HDF5 tienen todas las características de los datasets HDF5 excepto que su capacidad E/S no es parcial; los atributos pueden ser de escritura y de solo lectura en su completitud, sin ninguna conjunción. La API Atributo (H5A) es usada para la lectura o escritura de información del atributo. Cuando se accede a ellos, los atributos pueden ser identificados por nombre o por un valor índice. El uso de un valor índice hace posible iterar a través de todos los atributos asociados con el objeto dado. El formato HDF5 y la biblioteca E/S fueron diseñados con la suposición que los atributos son pequeños datasets. Ellos siempre son almacenados en la parte cabecera del objeto al que están adjuntados. A causa de esto, grandes datasets no tendrían que ser almacenados como atributos. Cuan extenso puede ser no está definido por la biblioteca y está preparado para la interpretación del usuario. Grandes datasets con metadatos pueden ser guardados como datasets suplementarios en un grupo con el dataset primario (HDF, 2005).. 1.1.2 - Sistemas Gestores de Bases de Datos aplicados. Recientemente, muchas compañías han empezado a usar SGBD en aplicaciones no tradicionales, por la gran demanda de imágenes y objetos de multimedia. En consecuencia, los objetos y las operaciones relacionadas, se han hecho más complejos. Algunos ejemplos de datos complejos son: imágenes, sistemas de información gráfica, objetos de multimedia, 3-D y datos temporales.. 20.
(29) El criterio convencional en el pasado ha sido que los SGBD resultaban demasiado lentos para manipular datos de gran complejidad. La valoración más aceptada era que todavía los SGBD no resultaban adecuados para grandes cantidades de datos multidimensionales. Algunos acontecimientos ocurridos durante los últimos años han venido a opacar la claridad que existía en estas aceptadas creencias. Entre estos tenemos: . Algunas investigaciones científicas a gran escala, como el Earth Observing System Data and Information System (EOSDIS), física de gran energía y el estudio del genoma humano, han adoptado SGBD como el centro de su Sistema de Control de Datos.. . Varios de los principales fabricantes de aplicaciones para la administración de Sistemas de Bases de Datos, han introducido novedosos productos, como los SGBD ObjetoRelacional (SGBD-OR), con herramientas capaces de soportar gran cantidad de arreglos de datos multidimensionales.. Los SGBD se diseñan para realizar búsquedas rápidas, balanceando y manipulando gran cantidad de trabajo en enormes volúmenes de datos y realizan un mejor trabajo que el que un científico promedio pudiera codificar. Permiten acceder simultáneamente a datos desde diferentes aplicaciones, creando un buen ambiente compartido (Nieto-Santisteban, 2005). De ahí la importancia de que los científicos que trabajan en disciplinas donde se utilizan gran cantidad de datos como la astronomía, biología, etc., reconozcan que los SGBD son herramientas poderosas para analizar grandes volúmenes de datos y que son capaces de permitirle compartir sus resultados con otros de forma natural.. 1.1.2.1 - Sistemas de Base de Datos Relacionales (SGBDR). En la actualidad, los Sistemas Gestores de Bases de Datos (SGBD-R) son utilizados para el almacenamiento de grandes cantidades de información. Por las ventajas que estos brindan (seguridad, acceso concurrente, rapidez de recuperación de datos, indexado de los datos, etc.) se ha extendido su uso a casi cualquier aplicación que necesite almacenar datos. No obstante, los SGBD-R existentes no son apropiados para el almacenamiento y procesamiento de tipos de datos orientados a arreglos como los que soportan las diferentes interfaces de trabajo con datos científicos (ejemplo, NetCDF, CDF, HDF).. 21.
(30) Los sistemas de bases de datos basados en el modelo relacional, no soportan objetos multidimensionales (arreglos) como una unidad básica de acceso a datos y el hecho de representar arreglos como relaciones hace complicados algunos tipos útiles de accesos a datos. Además de esto, proveen poco soporte para las abstracciones de datos multidimensionales y las herramientas que poseen para el trabajo con sistemas de coordenadas no son lo suficientemente potentes, por lo que se necesita un modelo de datos bastante diferente que pueda facilitar la recuperación, modificación, manipulación matemática y visualización de datos orientados a arreglos. Relacionado a esto hay un segundo problema con los sistemas de bases de datos de propósito general: su pobre desempeño en arreglos grandes. Las colecciones de imágenes de satélites, salidas (información) pertenecientes a modelos científicos y observaciones a largo plazo del tiempo global, se encuentran más allá de las capacidades que poseen la mayoría de los sistemas de bases de datos de organizar e indexar la información para lograr una recuperación eficiente. Los SGBD-R proveen muchas facilidades que no son necesarias para el análisis, administración y muestra de datos orientados a arreglos agregando un costo significativo en términos de recursos y rendimiento en el acceso. Por ejemplo, las funciones de actualización, auditorías, formato de reportes y los mecanismos designados para el procesamiento de transacciones son innecesarios para la mayoría de las aplicaciones científicas. Cualquier fichero de larga escala basado en un Sistema Gestor de Bases de Datos Relacionales (SGBD-R) es costoso, requiriendo sistemas de computadoras de alta potencia y buenas conexiones de red. Los archivos creados con SGBD-R no son portables (intercambiables) directamente, a menos que se utilicen en ambas partes los mismos tipos de engines de SGBD-R, o sea usado un formato basado en texto llano. En general, los SGBD-R crean un archivo de gran tamaño debido a la cantidad de sobrecarga que le añaden (Elsmari, 2002).. 1.1.2.2 - Sistemas de Bases de Datos Orientadas a Objeto (SGBD-OO). Los sistemas de gestión de bases de datos orientadas a objetos surgen debido a la falta de capacidad semántica del modelo relacional para el acceso uniforme a sistemas de múltiples bases de datos y atender aplicaciones complejas como las bases de datos científicas, de imágenes, multimedia, gráficas, etc.. 22.
(31) Este tipo de aplicaciones necesita trabajar con datos de forma diferente a lo que conocemos porque necesitan: . Estructuras más complejas para los objetos.. . Transacciones de mayor duración.. . Nuevos tipos de datos para almacenar imágenes o grandes bloques de texto.. . Necesidad de definir operaciones no estándar, especificas para cada aplicación.. . Controlar versiones y configuraciones.. Las bases de datos orientadas a objeto usan un modelo que soporta tipos de datos abstractos, e incluyen además características como el encapsulamiento, la herencia y el polimorfismo. El encapsulamiento se consigue mediante la ocultación de información, es decir, se basa en ocultar todos los secretos de un objeto que no contribuyen a sus características esenciales. La herencia es el proceso mediante el cual las propiedades y los métodos de un objeto pueden ser reusados para definir las propiedades de un objeto nuevo. El polimorfismo implica que el operador o símbolo puede ser usado por implementaciones diferentes. La bases de datos orientadas a objeto proveen identificadores llamados: Unique Object Identifiers (OID), para que los objetos puedan ser identificados con facilidad. Los datos en un SBGD-OO son manipulados a través de dos grupos de relaciones: uno que describe las relaciones entre clases de datos y otro que describe las relaciones abstractas (inherencia). La conexión fuerte entre la aplicación y la base de datos hace que usen menos código y su estructura es más natural. Los lenguajes OO, como C++ o java reducen el tamaño del código y son más prácticos porque no tienen que traducir el código en un sub-lenguaje como SQL, ODBC o JDBC (E. Nahouraii y F. Petry, 1991; B. R. Rao, 1994). Hasta ahora, la falta de un patrón o estándar era un problema para los SGBD-OO. El grupo, Object Data Management Group (ODMG) ha propuesto un estándar conocido como ODMG-93 o ODMG 1.0 (Cattell, 1995). El estándar consiste en un modelo objetivo: el lenguaje para definir los objetos (ODL), el lenguaje de consultas (OQL) y los enlaces a los lenguajes de programación. Los SGBD-OO han sido integrados con C, C++, Java y LISP. La interfaz primaria es de los SGBD-OO; para crear y modificar los objetos se usa directamente el lenguaje orientado a objeto (C++, Java, etc). La mayor diferencia entre las bases de datos relacionales y las bases de datos orientadas a objeto está en la forma en que manejan las relaciones. Una simple metáfora ayuda a ilustrar la. 23.
(32) diferencia entre ambos modelos. Consideremos el problema de almacenar un coche en un garaje al final del día. En un sistema de objetos el coche es un objeto, el garaje es un objeto, y hay una operación simple que es almacenar-coche-en-garaje. En un sistema relacional, todos los datos deben ser traducidos a tablas, de esta forma el coche debe ser desarmado, y todos los pistones almacenados en una tabla, todas las ruedas en otra, etc (Figura 9. Almacenamiento en un SGBD-R y en un SGBD-OO.). Por la mañana, antes de irse a trabajar hay que componer de nuevo el coche para poder conducir (problema: al componer piezas puede salir una moto en vez de un coche).. Figura 9. Almacenamiento en un SGBD-R y en un SGBD-OO.. Las mayores ventajas de los SGBD-OO son su flexibilidad y soporte para el manejo de tipos de datos complejos y la manipulación de estos de forma ágil y rápida, su intento de satisfacer necesidades de aplicaciones mas complejas y tener como característica clave el poder que dan al diseñador de la base de datos tanto para especificar la estructura de los objetos complejos como las operaciones que se pueden aplicar a estos objetos. Los mayores problemas que se han presentado con los SGBD-OO ha sido el poco apoyo de los proveedores dentro del mercado, su pobre desempeño para la optimización de consultas complejas y su dificultad para soportar sistemas en gran escala. Algunos ejemplos de SGBD-OO son: O2 creado por Ardent Software y Object Store System creado por Object Design Inc. (Elmasri, R., 2000; Rao, B. R., 1994).. 1.1.2.3 - Sistemas de Bases de Datos Objeto Relacionales (SGBD-OR).. 24.
(33) Los SGBD-OR usan un modelo de datos que trata de combinar las características orientadas a objeto con el modelo relacional. Toda la información de la base de datos esta guardada en tablas, pero algunas notaciones tabulares pueden tener una estructura de datos abstractos (ADT). Los SGBD-OR soportan una forma de SQL llamada SQL3. Las extensiones son necesarias porque los SGBD-OR deben de soportar ADT. Los SGBD-OR tienen un modelo relacional porque los datos están guardados en forma de tablas con renglones y columnas. SQL es usado por el lenguaje de búsqueda de información. Las características de los SGBD-OR son: 1) Extensión, de base de datos. 2) Soporte de objetos complejos. 3) Herencia. 4) Sistema de reglas (Stonebraker y P. Brow, 1999). La aparición de los SGBD-OR ha permitido la inclusión de los conjuntos de datos científicos en los SGBD. Estos resultan ventajosos por varias cuestiones: 1. Poseen la capacidad de guardar grandes cantidades de información y acceso de alta velocidad. 2. Ofrecen un enorme potencial en cuanto a sus posibilidades de rapidez. 3. Han estado en fase de desarrollo constante durante la última década y todo indica que posee promisorias potencialidades de crecimiento en las áreas científicas. 4. Permiten que los usuarios puedan definir los tipos de datos, funciones y operadores, teniendo mayor funcionabilidad y mejor desempeño. 5. Las inversiones hechas por las organizaciones a lo largo de los últimos años han familiarizado a los programadores con las herramientas de programación, ajustando el SQL o mecanismos de acceso relacionado, con que cuenta el SQL, en la adopción de extensiones propuestas o nuevas funcionalidades de base de datos. 6. Los proveedores de SGBD-OR tienen presencia mayoritaria, y están más fortalecidos, en la estructura del mercado, en comparación con los proveedores de SGBD-OO, que ocupan menor cuantía. Esto presupone, que en los próximos anos las expectativas de crecimiento de los mercados, para los proveedores de SGBD-OR, será también mayor que los de los SGBD-OO.. 25.
(34) 7. Los SGBD-OR permiten que los usuarios puedan definir tipos de datos, funciones y operadores. Realizan una gran cantidad de funcionalidades que se ejecutan de forma automática, como la optimización de consultas y el mantenimiento de índices, que no requieren de ninguna acción por parte del usuario. Por esto, los SGBD-OR permiten crear aplicaciones de acceso a datos científicos eficientes, que en la mayoría de los casos sobrepasan en este sentido a aplicaciones hechas a la medida. Por otra parte aún subsisten algunas desventajas: 1. Todavía esta propuesta de integrar datos orientados a objetos en una interfaz de consultas relacionales no ha pasado la prueba de fuego en gran escala. Esto significa que cualquier aplicación que dependa de un estilo de interfaz dado estará en gran parte maniatada a un solo proveedor. 2. Su desarrollo esta limitado en la medida en que los usuarios asimilen la nueva tecnología con suficiente profundidad. 3. La funcionalidad de la interfaz aún resulta. transitoria, frágil, limitada y a veces. completamente desconcertante. 4. Resulta complejo establecer el modelado de la relaciones entre los datos almacenados en el sistema. 5. La arquitectura del modelo objeto relacional no es la mejor para aplicaciones Web de alta velocidad (Ortega Camacho, 2008). Aunque estos gestores todavía están en proceso de desarrollo, tienen expectativas de buen futuro. Centros como el Barrodale Computing Services (BCS) y proyectos como el TRIM Watershed Atlas (TWA), Integrated Digital Electoral Atlas (INDEA), el Commercial Shipping Information System, el Weather Modeling and Prediction y Life Sciences se han especializado en la tecnología de los SGBD-OR para solucionar los problemas en campos tan diversos como la geofísica, la genética, oceanografía, meteorología, etc (Computing System, 2008). 1.2 - Gestión de los DC. Mediante estaciones de medición de alta precisión, imágenes de satélite o supercomputadoras se generan a diario volúmenes de datos tan grandes y complejos, que no pueden ser analizados suficientemente bien en forma numérica. En general se asume que de todos los datos generados 26.
(35) solo una cuarta parte se almacena, y de éstos a su vez solo una cuarta parte realmente se analiza. Evidentemente se pierden datos valiosos y de muchas informaciones importantes solamente se utiliza un pequeño porciento (Pérez Risquet, 2005). Campos tan diversos como la bioinformática, geofísica, astronomía, medicina, meteorología y física de partículas son los que más se enfrentan a esta clase de situaciones.. 1.2.1 - Análisis estadístico. Para examinar estos datos de forma efectiva, son necesarios métodos de análisis que extraigan de ellos información y conocimientos a través de consultas que permiten calcular valores estadísticos de los datos como la suma, promedio, máximo, mínimo, moda, desviación estándar, varianza, coeficiente de variación, frecuencia, entre otros. El análisis exploratorio y el confirmatorio incluyen el análisis estadístico de los datos. En el análisis exploratorio se tiene un conjunto de datos sin una hipótesis específica. Estos datos se someten a un proceso de búsqueda interactiva de información que va a arrojar como resultado una visualización que soporte una hipótesis sobre el conjunto de datos. En el análisis confirmativo se tiene un conjunto de datos sobre los que se plantea una hipótesis. Se realiza un procesamiento de dichos datos que genera una visualización mediante la cual se pueda validar o refutar la hipótesis que se tenía de ellos. Después que se conocen los hechos específicos sobre los datos, se realiza una presentación del resultado a través de una visualización que enfatice en la veracidad de dichos hechos.. 1.2.2 - Visualización de Datos Científicos. La visualización científica es la transformación de datos científicos y abstractos en imágenes. Es una forma especial de la visualización que procura encontrar una representación visual apropiada para un conjunto de datos que permita mayor efectividad en el análisis y evaluación de los mismos. Simplifica el análisis, comprensión y la comunicación de modelos, conceptos y datos en la ciencia y la ingeniería.. 27.
(36) La Visualización Científica es altamente valorada, en muchos experimentos y simulaciones, que demandan el procesamiento y análisis de numerosos datos, del orden de algunos cientos de Gigabytes a Terabytes, y que poseen diversas características, pues recogen información de disímiles esfera de la ciencia y la técnica. La manipulación, el almacenamiento, el acceso eficiente y el análisis de esos datos representan una tarea que constituye un gran reto, pero al mismo tiempo ofrece ventajas incuestionables, ya que nos lleva de la mano en la representación gráfica de objetos y nos permite seguir su evolución para lograr la exploración interactiva de los mismos, algo que hubiera sido imposible con la simple observación de una sola imagen. La visualización científica posibilita reconocer patrones de comportamiento de los datos, ver en una sola imagen o en una secuencia de estas (animación) una gran cantidad de datos y facilita la comprensión de algunos conceptos, sobre todo de tipo abstracto. Por ejemplo, si se diera el caso de que tuviéramos una serie de datos de las concentraciones del dióxido de carbón atmosférico, tomadas en el transcurso de varios años en Mauna Loa (Anexo III. Tabla del comportamiento de concentraciones CO2.). Al mostrarlos en forma de tabla, sería muy difícil distinguir a simple vista alguna relación entre los mismos, pero al conformar una gráfica de los valores veríamos si siguen cierto patrón de comportamiento (Figura 10. Gráfico de concentración de CO2.). Si un observador perspicaz pudiera deducir de la tabla el incremento promedio anual de las concentraciones de CO 2 que aparecen en la línea azul oscura, sería muy difícil, hasta para el más preparado científico, notar el ciclo anual del CO2 atmosférico que la línea azul clara muestra fácilmente.. Figura 10. Gráfico de concentración de CO2.. 28.
(37) De ahí la importancia de la visualización científica, más aún, si añadimos que se trata de una solución alternativa eficaz a los problemas que difícilmente pueden ser abordados desde la óptica de las técnicas tradicionales conocidas; por ello, en los últimos tiempos, se ha perfilado como un área de investigación bien definida. El objetivo de cualquier proceso de visualización es la generación de imágenes a partir de datos abstractos, que por lo general son de naturaleza no geométrica. La descripción y modelación de los datos es por tanto un punto de partida para la realización de un proceso de visualización expresivo, efectivo y adecuado. Entre las ventajas de la visualización científica está el poder representar datos de varias dimensiones o variables, lográndose visualizar cuatro o más variables al mismo tiempo apoyándose en algunos métodos. Por ejemplo, el plano cartesiano puede mostrar dos variables, si agregamos otro, podremos ver 3, si agregamos colores, tendremos 4, si se hace alguna animación de la gráfica podremos apreciar una quinta variable o dimensión. Otra gran ventaja es la independencia del lenguaje, ya que la idea principal del problema está representada de forma gráfica (Puente Verdin, 2006). Posibilita a las personas la interacción directa con los datos. La visualización puede ser hecha sin mayor dificultad en datos no homogéneos o que no se conozca detalladamente su estructura. La exploración visual es intuitiva, no requiere de complicados conocimientos matemáticos, estadísticos o de otra índole. Otra gran ventaja consiste de la visualización de datos es la gran cantidad de conocimiento que puede ser rápidamente interpretado. Presentar los datos desde donde se sacan conclusiones, le da a los científicos la oportunidad de analizar ellos mismos los datos, un proceso que tiene el propósito de mantener los experimentos y análisis científicos al nivel más objetivo posible. A pesar que las tablas son necesarias para anotar datos, los gráficos le permiten al lector visualizar complejas series de datos de una manera simple y concisa. Un enorme volumen de información puede plasmarse en una sola imagen. Exitosamente ella puede reducir el tiempo que toma entender los datos implícitos, encontrar sus relaciones, y conseguir la información buscada (Sahling, 2002). El problema principal del proceso de visualización científica consiste en encontrar la técnica de visualización que logre los resultados más apropiados. Las técnicas de visualización son una de las partes fundamentales del proceso de visualización y dependen en gran medida del tipo de dato a. 29.
(38) visualizar (escalar, vector, tensor) y de la dimensión del dominio en que se van a representar los datos (una, dos, tres dimensiones o multidimensional). Los algoritmos de transformación de los datos se pueden clasificar según la estructura y el tipo de transformación. Estructura se refiere a los efectos que puede tener la transformación sobre la topología, geometría y atributos de los datos, y el tipo se refiere al tipo de datos con que se va a operar. Las transformaciones estructurales pueden ser clasificadas en cuatro conjuntos, en dependencia de cómo estas afectan a la geometría, la topología, y los atributos del conjunto de datos: . Transformaciones Geométricas.. Son aquellas que cambian la geometría de la entrada, pero no cambian la topología del conjunto de entrada. Por ejemplo si realizamos una traslación, una rotación, y/o un escalado en los puntos de un conjunto de datos poligonal, la topología no cambia, pero las coordenadas de los puntos sí. . Transformaciones Topológicas.. Son aquellas que alteran la topología de la entrada, pero no cambian la geometría y los atributos de los datos. Convirtiendo el tipo de un conjunto de datos poligonal a una malla no estructurada, o de una imagen a una malla no estructurada, se cambia la topología pero no la geometría. Transformaciones de Atributos. Son aquellas que convierten de los atributos de los datos de una forma a otra, o crean nuevos atributos del conjunto de entrada manteniendo la estructura del conjunto de datos sin afectarse. Transformaciones Combinadas. Son aquellas que cambian la estructura del conjunto de entrada y los atributos de los datos.. Una forma muy usada de clasificar los algoritmos es de acuerdo al tipo de datos que usan. El significado de la palabra "tipo" en este caso se refiere a la clase de datos perteneciente a los atributos, tales como vectores y/o escalares. Estas categorías incluyen los siguientes algoritmos: Algoritmos Escalares: Operan en datos escalares. Un ejemplo es la generación de líneas de contorno de temperatura en un mapa del estado del tiempo.. 30.
Figure
Documento similar
[r]
SECUNDARIA COMPRENDE LOS
[r]
Clave ajena: sus valores deben coincidir con los de la clave primaria de otra relación representa una relación entre datos a modo de referencia.
En el caso de realizar una análisis estructural dinámico lineal de un edificio en particular, se necesita disponer de la información correspondiente a las dimensiones en planta y
U-Ranking cuenta con la colaboración del Ministe- rio de Universidades, al permitirnos el acceso al Sistema Integrado de Información Universitaria (SIIU). El SIIU es
El valor agregado 6 del indicador por universidad se pre- senta en una escala de 0 (mínimo valor obtenido por una universidad del sistema en ese indicador) a 100 (correspondiente
El segundo paso es elegir la comunidad autónoma o comunidades que se contemplan como lugares en los que cursar los estudios. Para ello, el usuario debe marcar las elegidas