capítulo 1: almacenamiento y gestión de datos científicos

80
Universidad Central “Marta Abreu” de las Villas. Facultad Matemática, Física y Computación Licenciatura en Ciencias de la Computación Título Estudio de la factibilidad del uso de PostgreSQL para el trabajo con datos científicos. Autor: Marlén López Mora. Tutor: Msc. Alberto Morell Pérez. Departamento: Computación Gráfica. “Año 50 de la Revolución” Santa Clara 2008

Upload: others

Post on 29-Jun-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

Universidad Central “Marta Abreu” de las Villas.

Facultad Matemática, Física y Computación

Licenciatura en Ciencias de la Computación

Título

Estudio de la factibilidad del uso de PostgreSQL para el trabajo con

datos científicos.

Autor: Marlén López Mora.

Tutor: Msc. Alberto Morell Pérez.

Departamento: Computación Gráfica.

“Año 50 de la Revolución”

Santa Clara

2008

Page 2: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

II

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.

Page 3: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

III

Dedicatoria

A mis padres, Santiago y Marlene.

Page 4: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

IV

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.

Page 5: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

V

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.

Page 6: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

VI

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 DBMS-

OR 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.

Page 7: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

VII

Í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

Page 8: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

VIII

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

Page 9: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

1

Introducción

Page 10: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

2

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

Page 11: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

3

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

Page 12: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

4

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.

Page 13: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

5

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.

Page 14: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

6

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.

Page 15: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

7

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),

Page 16: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

8

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).

Page 17: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

9

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

1 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.

Page 18: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

10

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

Page 19: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

11

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

Page 20: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

12

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).

Page 21: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

13

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.

Page 22: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

14

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.

Page 23: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

15

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.

Page 24: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

16

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.).

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.

Figura 2. Ejemplo de grupos y miembros de grupos.

Page 25: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

17

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.

Page 26: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

18

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

Page 27: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

19

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.

Page 28: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

20

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.

Page 29: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

21

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 Objeto-

Relacional (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).

Page 30: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

22

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.

Page 31: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

23

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

Page 32: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

24

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).

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).

Figura 9. Almacenamiento en un SGBD-R y en un SGBD-OO.

Page 33: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

25

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.

Page 34: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

26

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

Page 35: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

27

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.

Page 36: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

28

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 CO2

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.

Page 37: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

29

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

Page 38: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

30

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.

Page 39: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

31

Algoritmos Vectoriales: Operan en datos vectoriales. Un ejemplo es mostrado por las

flechas orientadas de corrientes de aire en un mapa del estado del tiempo (dirección y

magnitud).

Algoritmos Tensoriales: Operan en matrices tensoriales. Un ejemplo es al mostrar los

componentes de tensión o presión en un material usando iconos orientados.

Algoritmos de Modelado: Generan la topología, la geometría de un conjunto de datos,

normales de la superficie o datos de la textura. Esta última tiende a ser la categoría para

todos los algoritmos que no están en una sola de las categorías que se trataron arriba.

1.2.2.1 - Requerimientos.

La importancia de determinar correctamente los requerimientos de un sistema al comienzo del

proceso de desarrollo es un hecho bien conocido. La experiencia muestra que la definición

incorrecta de los requerimientos conduce al desarrollo de sistemas deficientes, incrementa su costo

de desarrollo o incluso causa que el proyecto falle. Por lo tanto, los requerimientos deben ser

necesarios y suficientes y deben ser descritos de forma tal que dejen el menor margen de mala

interpretación posible. Además, es crucial para los clientes que verifiquen que el sistema planeado

satisface sus necesidades. Esto significa que el sistema debe ser descrito de forma que los clientes

puedan entenderlo con claridad.

El desafío es que un cliente en principio no especialista en informática, debe ser capaz de

entender los resultados del proceso de revelamiento de requerimientos. Para lograr este objetivo,

debe utilizarse "el lenguaje del cliente" para describir los resultados. En este contexto las técnicas

de visualización parecen ser una herramienta útil para describir los requerimientos del sistema. El

uso de técnicas de visualización permite mostrar los requerimientos de un sistema utilizando

representaciones gráficas que ayudan a los usuarios en el proceso de comprensión y validación.

Mientras más características de los datos se consideren en su especificación, más información

estará disponible para una rápida evaluación y para la visualización. Estas técnicas van desde un

simple diagrama para indicar los resultados de una elección a través de imágenes tridimensionales

para visualizar un tumor en el cuerpo hasta animaciones tridimensionales para visualizar la

corriente del aire sobre un coche.

Page 40: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

32

Un enfoque es el que considera que los datos del mundo real, teórico y artificial están

localizados en puntos en un espacio n-dimensional llamado el espacio de observación. Aquí debe

distinguirse entre las dimensiones que definen el espacio de observación y los parámetros

(atributos) que son observados/medidos en el espacio de observación. Debe distinguirse, además,

entre las variables dependientes e independientes.

Para la caracterización de los puntos de observación (ejemplo, puntos en el espacio de

observación donde los datos están disponibles) necesitamos conocer lo siguiente:

Dimensionalidad del espacio de observación (variables independientes).

Área de impacto en el espacio: especifica la región en que tienen validez los valores

tomados en un punto. Dichas regiones se clasifican en tres grupos:

1. Impacto puntual: Los datos tienen validez solo en el punto de observación

correspondiente (ejemplo, valores de datos en un punto de una laguna).

2. Impacto local: Los datos tienen validez en una cierta vecindad del punto de

observación correspondiente (ejemplo, datos en la parte norte de la laguna).

3. Impacto global: Los datos tienen validez en todo el espacio de observación

(ejemplo, toda el área que abarca la laguna).

Conectividad de los datos: los puntos de observación pueden estar organizados de

acuerdo a diferentes criterios.

A continuación se describen con mayor detalle las principales características de algunas

técnicas de visualización más ampliamente difundidas, agrupadas de acuerdo a su área de impacto

en el espacio.

Métodos puntuales.

Esquema de flechas: consiste en representar vectores velocidad mediante flechas. Este

método está bien establecido para representaciones en 2D y 3D.

Líneas de fluído (stream lines): consiste en dibujar un conjunto de líneas que son

paralelas al campo vectorial en cada punto.

Líneas de trayectoria (path lines): describe el movimiento en el tiempo de las partículas

de campo de fluído no estacionario.

Líneas de bandas (streak lines): es la localización de todas las partículas dispuestas en

un punto fijo, en momentos diferentes.

Page 41: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

33

Movimiento de partículas.

Líneas de tiempo (time lines): se basa en la visualización de todas las partículas que

estuvieron dispuestas sobre una línea recta en un momento fijo.

Superficies de corriente y objetos de corriente (stream surfaces and stream objects):

consiste en hacer combinaciones de diferentes fuentes de partículas lo cual conduce a

diferentes vistas del flujo.

Métodos locales.

Cintas de flujo (flow ribbons): consiste en representar la trayectoria e información

adicional de una partícula mediante una cinta.

Sonda: para visualización de flujo local. El punto de partida es la matriz de Jacobi de la

cual son extraídas y visualizadas las propiedades adicionales.

Métodos globales.

Métodos combinados: combinación de métodos permite obtener una imagen mejorada,

y por tanto se pueden determinar una mayor cantidad de características presentes en los

datos que estas representan. Por ejemplo, se puede combinar una imagen Integrar y

Dibujar con otra imagen de color, la cual codifica propiedades adicionales.

Coordenadas paralelas: puede visualizar una cantidad mucho mayor de variables y sus

relaciones, que con métodos tradicionales (2 ó 3 dimensiones). Cada uno de los ejes

verticales de un sistema de coordenadas paralelas puede tener su propia escala o

definirse todos con una sola escala, la primera forma nos permite la visualización de

hipersuperficies y el análisis del funcionamiento del conjunto de datos, con la segunda

podemos hacer un análisis de las relaciones entre las variables. Este método permite

encontrar patrones de comportamiento de las variables y correlaciones entre ellas. Es

una técnica común para representar datos de muchas dimensiones.

Page 42: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

34

1.2.2.2 - Consultas.

Las consultas son requeridas por el usuario para visualizar los cambios continuos y las

combinaciones de fenómenos que ocurren dentro de la naturaleza de su área de investigación.

Una aplicación, por ejemplo en el campo de la Política, muestra las contribuciones políticas de

varios candidatos. El investigador selecciona un estado, una carrera política en ese lugar, y el

apoyo monetario de las contribuciones. La aplicación construye una imagen en 2D que mostrará

quién soporta cada candidato y a qué nivel (basado en los tamaños relativos de las figuras que

representan los contribuidores) se revela la influencia política (Figura 11. Área de contribuciones

políticas.).

Otro ejemplo pero esta vez en el campo del proyecto hidrográfico del TRIM Watershed Atlas

(TWA) cuya base de datos está gestionada por un SGBD-OR (IBM Informix) y tiene almacenado

rangos descriptores de puntos, líneas, áreas, jerarquías de polígonos y otros muchos tipos de datos,

sería hacer una consulta como “encontrar el área de línea divisoria de agua entre la intersección de

un terreno con el río”. La consulta en SQL quedaría así:

SELECT Area(Watershed(streamElement,

(Intersection(streamElement, roadElement))))

FROM streamNetwork, roadNetwork

WHERE Overlap(Intersection(Box(streamElement),

Box(roadElement)), userDefinedArea);

Donde:

• userDefinedArea es un string que provee el usuario.

• Se usan 5 funciones definidas por el usuario, que son:

Figura 11. Área de contribuciones políticas.

Page 43: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

35

o BOX – rectángulo que encuadra al objeto;

o INTERSECTION – área común;

o OVERLAP - T o F;

o WATERSHED – calcula la línea divisoria a partir de un punto;

o AREA – calcula el área.

La salida, a través de un software de visualización, quedaría mostrada de la siguiente manera:

Otras consultas comúnmente usadas en las diferentes esferas de investigación se muestran a

continuación:

Meteorología: todo tipo de comportamiento meteorológico, densidad de las tormentas,

zonas de altas presiones, movimiento de las áreas de precipitaciones, cambios en los

niveles de temperaturas, comportamiento de las corrientes marinas, etc.

Astronomía: zona estelar donde ocurren más frecuentemente supernovas, zonas de vacíos,

etc.

Biología: migraciones de animales, áreas de repoblación y extinción de vida animal, etc.

Forestal: crecimiento forestal, zonas de alto riesgo de incendios, comportamiento de la

hidrología en diferentes zonas, zonas de futura poda y tala, zonas de plantación, etc.

Medicina: desarrollo de cáncer en los pacientes, desarrollo supervisado en la embriología,

genética, etc.

Geofísica: zonas de mayor riesgo de terremotos y actividades volcánicas, zonas de alta

saturación hidrológica, etc.

Social: movimientos de criminales o espías, desplazamiento de personas en caso de

emergencias, etc.

Planeamiento Urbano: parcelas administradas, desarrollo de áreas urbanas, zonas de mayor

afluencia de turismo, rutas más frecuentadas, etc.

Page 44: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

36

Militar: localizaciones de misiles, movimiento de tropas, etc.

Aviación/Marina: rutas principales, rutas alternativas, desvíos, etc.

1.2.2.3 - Softwares de Visualización.

Durante la última década se han establecido potentes sistemas en el campo de la visualización

científica. Algunos están enfocados a un campo de aplicación específico, como la medicina,

química molecular, meteorología, etc., y otros son de propósito general, con amplia utilización en

diversas ramas de la ciencia. Entre estos últimos se destacan notablemente: Iris Explorer, AVS,

Khoros, Amira y OpenDX. Estos sistemas son conocidos como ambientes modulares de

visualización, puesto que las aplicaciones se componen mediante la unión de diversos módulos en

una red, empleando un paradigma de programación visual. Entre estos últimos se destacan

notablemente:

1.2.2.3.1 - Iris Explorer.

Iris Explorer es un sistema versátil para la visualización de datos científicos y el procesamiento

de imágenes. Usa el paradigma de flujo de datos para convertir, mediante una serie de pasos de

cálculo, los datos brutos en las representaciones visuales.

Iris Explorer soporta la programación visual mediante la construcción interactiva de una red de

módulos interconectados entre sí, denominada mapa (Figura 12. El sistema de visualización Iris

Explorer.). Los datos fluyen a lo largo de este mapa sufriendo las transformaciones necesarias para

ser convertidos en imágenes. Cada módulo es controlado por un conjunto de parámetros, que

también pueden seleccionarse de manera interactiva.

Page 45: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

37

Figura 12. El sistema de visualización Iris Explorer.

El proceso de examinar los datos es interactivo. El investigador observa la imagen, altera las

escenas, invoca otros métodos de visualización y combina los cuadros para conseguir una idea más

clara de qué está pasando en los datos (EXPLORER, 1998).

1.2.2.3.2 - Advanced Visual Systems (AVS).

AVS/Express es un ambiente visual orientado a objetos, que permite construir aplicaciones

reusables utilizando distintos elementos, con los cuales se pueden realizar aplicaciones muy

sofisticadas. Este sistema tiene cientos de componentes, que se utilizan para visualizar, analizar,

manipular y desplegar datos (Figura 13. El sistema de visualización AVS.).

Figura 13. El sistema de visualización AVS.

Page 46: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

38

Algunas de las herramientas que posee son:

Visor de imágenes (Image Viewer): Herramienta de alto nivel para manipular y ver

imágenes.

Visor de grafos (Graph Viewer): Herramienta de alto nivel para graficar datos.

Visor de geometría (Geometry Viewer): Para componer escenas fuera de objetos

geométricamente definidos accesibles a AVS.También provee una interfaz para

manipular todos los demás tipos de objetos de AVS, como los conjuntos de datos de

volumen.

Editor de mapas: Interfaz de programación visual para conectar módulos

computacionales dentro de redes que realizan las funciones de la visualización (AVS,

1998).

1.2.2.3.3 - Khoros.

Khoros es un sistema de desarrollo de software para el tratamiento y visualización de

imágenes. Es un software abierto, pero no de dominio público. Esto quiere decir que se distribuye

de forma gratuita, y que se puede utilizar gratis igualmente, pero si se quiere desarrollar software

comercial a través de él, será necesario comprar una licencia. Esta característica hace de este

sistema una plataforma idónea para tratamiento científico en ambientes universitarios.

Khoros posee una herramienta de programación visual muy potente que hace uso de un

lenguaje gráfico orientado a flujo de datos (Figura 14. El sistema de visualización Khoros.). Los

módulos están agrupados en cajas de herramientas (toolbox en inglés), las cuales pueden instalarse

a manera de plug-in, y extenderse por los propios usuarios (KHOROS, 1998).

Page 47: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

39

Figura 14. El sistema de visualización Khoros.

1.2.2.3.4 - Amira.

Amira es un sistema de visualización y modelado 3D. Permite visualizar conjuntos de datos

científicos de varias áreas de aplicación, como por ejemplo, medicina, biología, química, física, o

ingeniería.

Amira es un software modular orientado a objetos. Los componentes básicos del sistema son

módulos y objetos de datos (Figura 15. El sistema de visualización Amira.). Se usan los módulos

para visualizar los objetos de datos o para realizar algunas operaciones computacionales en ellos.

Las conexiones entre los módulos de Amira representan las dependencias entre los objetos de

datos y sus métodos (AMIRA, 1998).

.

Page 48: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

40

Figura 15. El sistema de visualización Amira.

1.2.2.3.5 - OpenDX.

OpenDX es una aplicación y un paquete de desarrollo de software de código abierto para la

visualización de datos científicos, especialmente los adquiridos a partir de observaciones y

simulaciones. Es un sistema multiplataforma de visualización de propósito general, que permite

leer datos de distintas fuentes de una manera flexible y amigable. Aún cuando la organización de

los datos puede ser muy diferente para cada fuente, OpenDX ofrece una manera de leer casi

cualquier tipo de datos a través su herramienta conocida como Data Prompter.

OpenDX ofrece una interfaz gráfica que permite crear programas de manera visual, mediante

la interconexión de bloques o módulos, llamados redes (Figura 16. El sistema de visualización

OpenDX.). Por otro lado, OpenDX contiene un lenguaje script para crear programas de

visualización y genera objetos visuales multidimensionales a partir de datos numéricos

multiparamétricos (OPENDX, 1998).

Page 49: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

41

Figura 16. El sistema de visualización OpenDX.

Conclusiones parciales

En este capítulo se han presentado las principales características de los formatos binarios de

almacenamiento de datos científicos más difundidos. Estos formatos han sido creados con el

objetivo de almacenar grandes volúmenes de datos científicos, permitiendo un uso eficiente de

ellos por parte de las aplicaciones que los utilizan. A pesar de esos beneficios, este enfoque

presenta el problema del almacenamiento y movimiento de un gran número de archivos

individuales, lo que dificulta su procesamiento.

Los SGDB-OR actuales ofrecen nuevas posibilidades para el trabajo con datos científicos, que

apenas comienzan a ser explotadas. Una característica importante en la actualidad es la extensión

de los Sistemas de Bases de Datos para unificar las Bases de Datos con los lenguajes de

programación, así como poder vincular nuevos tipos de objetos en los Sistemas de Gestión de

Datos y así lograr esta unión (Musick, 1998).

Los sistemas modulares de visualización de propósito general constituyen la principal

alternativa para integrar la Visualización Científica en los centros de ciencia. Ellos generalmente

usan este paradigma de manipulación de archivos, para lo cual brindan soporte para el acceso a los

datos en varios formatos binarios de almacenamiento de datos científicos.

Page 50: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

42

Capítulo 2: Uso del SGBD-OR PostgreSQL para el trabajo con datos científicos.

Los SGDB-OR actuales ofrecen nuevas posibilidades para el trabajo con datos científicos, que

apenas comienzan a ser explotadas. Una característica importante en la actualidad es la extensión

de los Sistemas de Bases de Datos para unificar las Bases de Datos con los lenguajes de

programación, así como poder vincular nuevos tipos de objetos en los Sistemas de Gestión de

Datos y así lograr esta unión (Musick, 1998).

El PostgreSQL es un SGBD-OR de código abierto que posibilitó el desarrollo de soluciones

corporativas con una mejor relación “costo por beneficios”. Un punto fuerte de este SGBD es su

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.

Su extraordinario soporte que incluye desde reporte y recuperación de fallas, instrucciones

sobre como usar tal o cual característica y optimización de consultas convierten a PostgreSQL en

un DBMS de nivel empresarial, que puede ser usado en casi todo tipo de sistemas (desde los más

comunes sistemas de facturación hasta los más complejos sistemas científicos), conservando el alto

rendimiento sin sacrificar la estabilidad ni la integridad de los datos.

2.1- PostgreSQL.

PostgreSQL tiene más de 15 años de desarrollo activo y se ha ganado la reputación de ser

confiable. De hecho, hay compañías que aseguran haber tenido corriendo PostgreSQL en

producción durante varios años y con altas tasas de actividad sin haber experimentado problemas

de ningún tipo y mantener la integridad de los datos. Además corre en la mayoría de los Sistemas

Operativos más utilizados incluyendo, Linux, varias versiones de UNIX (AIX, BSD, HP-UX, SGI

IRIX, Mac OS X, Solaris, SunOS, Tru64), BeOS y Windows.

Por si eso fuera poco, cumple la prueba ACID (Atomicity, Consistency, Integrity, Durability) y

tiene soporte completo para llaves foráneas, joins, vistas, subconsultas (incluyendo subconsultas en

la cláusula FROM), triggers, y procedimientos almacenados (en varios lenguajes). Incluye la

mayoría de los tipos de datos de los estándares SQL92 y SQL99 (INTEGER, NUMERIC,

BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, TIMESTAMP, entre otros). También

Page 51: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

43

soporta almacenamiento de objetos grandes (imágenes, sonido y video), así como sus propias

interfaces de programación para C/C++, Java, Perl, Python, Ruby, Tcl, ODBC, entre otros, y una

documentación muy completa.

2.1.1- Características del PostgreSQL.

PostgreSQL se ha preocupado por ser una solución real a los complejos problemas del mundo

empresarial y a la vez mantener la eficiencia al consultar los datos. Con ese fin, se han desarrollado

y añadido a PostgreSQL las más interesantes y útiles características que antes sólo podían hallarse

en sistemas manejadores de bases de datos comerciales con costos muy elevados; lo cual lo coloca,

como su lema indica, como "el manejador (o gestor) de bases de datos de código abierto más

avanzado del mundo".

Algunas de las características que posee PostgreSQL son:

Control de concurrencia multi-versión (MVCC), que sirve para lograr un control de

concurrencia tan eficiente que en la gran mayoría de los casos no se requiere de bloqueos).

Herencia de tablas (aunque la orientación a objetos no está completa esta característica

se la puede utilizar para lograr el particionamiento de tablas en varios discos mediante una

técnica llamada "restricciones excluyentes").

El sistema de reglas (el sistema re-escritor de consultas), permite identificar ciertas

acciones sobre una tabla y reemplazarlas por otras o ejecutar adicionales (podemos, por

ejemplo, crear una regla para que al hacer INSERT sobre una vista se reemplace por un

INSERT sobre la tabla en la que se basa la vista, dando así la impresión de vistas

actualizables).

Varios lenguajes procedurales como: Java, Perl, Python, Ruby, Tcl, C/C++, así como su

lenguaje nativo (PL/PGSQL) que es muy similar al PL/SQL de Oracle.

Su arquitectura extremadamente modular, facilitando el trabajo de los desarrolladores

que desean implementar nuevas funcionalidades.

Posee módulos contribuidos entre los que se cuentan OpenFTS, que es un método para

indexación de texto completo y PostGIS, que añade objetos geográficos lo cual permite a

PostgreSQL ser usado en proyectos de bases de datos para sistemas de información

Page 52: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

44

geográfica, por ejemplo los que usan sistemas repartidores. También cuenta con módulos

de criptografía (SHA1, MD5).

Permite la creación de tipos de datos personalizados.

Escritura adelantada de registros (WAL) para evitar perdidas de datos en caso de falla

de energía, fallos del Sistema Operativo, y fallas de hardware.

Juegos de caracteres internacionales, codificación de caracteres multibyte y Unicode;

características para la integridad de los datos, tales como: claves primarias, llaves foráneas

con capacidad de actualizar en cascada o restringir la acción en caso que existan hijos,

restricción check, restricción de unicidad y restricción not null; todas las restricciones se

pueden postergar hasta el momento de terminar la transacción.

Interfaces de programación para Java (JDBC), ODBC, Perl, Python, Ruby, C, C++,

PHP, Lisp, Scheme, y Qt solo para nombrar algunas.

La implementación se sujeta fuertemente a los estándares ANSI-SQL 92/99 (y últimamente se

han añadido características del SQL2003). Este recurso permite una gran facilidad en la migración

de datos de otras bases que también sigan el ANSI SQL. Es altamente escalable; tanto en lo que se

refiere a cantidad de datos que puede manejar (se reportan ambientes de producción activos que

manejan incluso más de 4 Terabytes); así como, al número de usuarios concurrentes que puede

acomodar.

2.1.2 – Capacidad del PostgreSQL.

A continuación se muestran algunos valores límites de PostgreSQL:

Tamaño de una base de datos Ilimitada (limitada solo por el espacio en disco).

Tamaño de una tabla 32 Terabytes.

Tamaño de una fila 1.6 Terabytes.

Tamaño de un campo 1 Gigabyte.

Número de filas en una tabla Ilimitada (limitada solo por el espacio en disco).

Número de columnas en una tabla de 250 - 1600 dependiendo de los tipos de datos.

Número de índices en una tabla Ilimitada (Limitada sólo por el espacio en disco).

Por todo esto y más, PostgreSQL se ha ganado la admiración y el respeto de sus usuarios, así

como el reconocimiento de la industria (ganador del Linux New Media Award for Best Database

Page 53: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

45

System y 3 veces ganador del The Linux Journal Editors' Choice Award for best DBMS).

2.1.3 - Uso del PostgreSQL.

En la página de PostgreSQL se pueden encontrar algunos casos de estudio de empresas que han

optado por PostgreSQL y se están recopilando más experiencias que se irán añadiendo a la página.

Además es un secreto a voces (los que dudan pueden usar google para confirmar) que los dominios

.ORG y .INFO corren bajo postgres, tambien la página TravelPost.com y Rambler.ru, así como

ciertas agencias gubernamentales de Estados Unidos tales como: City of Garden Grove, CA;

National Gallery; Media Library project of the Library of Congress; US Army; Dept of Forestry;

State of California; NCSA; National Weather Hidrology Laboratory; The Oxford University

Computing Services; Sandia Labs, sólo por mencionar algunos pero se pueden encontrar aún más

alrededor del mundo.

2.1.4 - Soporte para PostgreSQL.

PostgreSQL esta soportado por diferentes proveedores, entre los que se encuentran:

El soporte de la comunidad. El principal soporte de PostgreSQL lo provee la

comunidad a través de las listas de correo (lo esperamos en la lista en español) y los canales

de IRC (también tenemos nuestro canal en español).

El soporte comercial. También existen varias empresas que proveen soporte comercial

para PostgreSQL , entre las que tenemos: Fujitsu (Australia); Hub.org (Canadá);

PostgreSQL, Inc. (Canadá); credativ GmbH (Alemania); Afilias Limited (Irlanda);

Software Research Associates (Japón, con subsidiarias en USA); Delta-Soft LLC (Rusia);

2ndQuadrant (Reino Unido); 800 Pound Gorilla (USA); Command Prompt, Inc. (USA);

EnterpriseDB (USA); Greenplum (USA); Pervasive Software, Inc. (USA); RedHat, Inc.

(USA) y, hace unos días atrás, Sun Microsystems anunció que daría soporte a sus usuarios

de Solaris. Hace poco SRA comentó su deseo de ingresar al mercado latino-americano.

El soporte a nivel individual.

Page 54: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

46

2.1.5 - Tipos de Datos.

PostgreSQL tiene un amplio surtido de tipos de datos nativos disponibles (Figura 17. Tipos de

Datos disponibles en PostgreSQL.). Los usuarios, pueden además añadir nuevos tipos de datos

usando el comando CREATE TYPE.

Page 55: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

47

Figura 17. Tipos de Datos disponibles en PostgreSQL.

Internamente PostgreSQL usa identificadores de objetos (OID) como llaves primarias para

varias tablas del sistema. Los OID no se añaden a las tablas creadas por los usuarios, a menos que

se especifique la cláusula WITH OIDS cuando se crea la tabla, o que esté habilitada la variable de

entorno default_with_oids.

El tipo OID se implementa realmente como un entero de cuatro bytes sin signo, por tanto no es

suficientemente grande como para proporcionar una identificación única en bases de datos

grandes, o incluso en grandes tablas individuales, debido a esto se recomienda usar los OID solo

como referencias de las tablas de Sistemas.

El Sistema PostgreSQL contiene varias entradas de propósito especial llamadas colectivamente

pseudo-tipos. Un pseudo-tipo no puede usarse como un tipo de dato de una columna, pero puede

ser declarado como argumento o valor de retorno de una función. Cada uno de los pseudo-tipos es

útil en situaciones donde el comportamiento de una función no corresponde a simplemente tomar

o devolver un valor de un tipo de dato específico de SQL.

Las funciones escritas en C pueden declararse para aceptar o devolver cualquiera de estos

pseudo-tipos. Depende del programador asegurar que la función se comportará adecuadamente

cuando se usa un pseudo-tipo como argumento. En la actualidad la mayoría de los lenguajes

procedurales prohíben el uso de pseudo-tipos como argumentos o retorno.

Page 56: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

48

El pseudo-tipo interno se usa para declarar funciones que sólo tienen significado al ser

llamadas internamente por el sistema de bases de datos, y no mediante invocación directa en una

consulta SQL, de ahí que si una función tiene al menos un argumento de tipo interno no pueda

llamarse desde SQL.

2.1.6 - Extensibilidad de PostgreSQL para el almacenamiento de datos científicos.

PostgreSQL se diseñó desde el inicio para ser extensible, por esta razón las extensiones

cargadas en su base de datos pueden funcionar de igual forma que las incluidas en su paquete

original. Existen una serie de características que han hecho que PostgreSQL pueda ser fácilmente

extensible para trabajar con datos científicos, algunas de estas son:

PostgreSQL tiene una amplia gama de tipos de datos nativos disponibles. Los usuarios

pueden añadir además nuevos tipos de datos.

PostgreSQL proporciona un número grande de funciones y operadores integrados con los

tipos de datos. Los usuarios pueden también definir sus propias funciones y operadores.

PostgreSQL tiene la posibilidad de manejar diferentes tipos de datos complejos, en

particular el empleo de arreglos multidimensionales es muy común.

En muchas ocasiones los datos científicos son de gran volumen y se necesita desarrollar

aplicaciones en red que permitan realizar consultas a un servidor centralizado de gran capacidad,

PostgreSQL facilita estas operaciones.

En PostgreSQL está presente la herencia, que es un concepto de las Bases de Datos

Orientadas a Objetos y que abre nuevas posibilidades de interés para al diseño de estas.

Existe una interfaz de programación escrita en C que interactúa con PostgreSQL (Libpq).

Está implementada como un conjunto de bibliotecas de funciones que permiten a los programas

clientes hacer consultas al motor de Bases de Datos de PostgreSQL y recibir los resultados de

estas consultas. Libpq permite además a PostgreSQL interactuar con aplicaciones escritas en otros

lenguajes como: C, Perl, Python, Tcl y ECPG.

En general el rendimiento de PostgreSQL es similar al de otros SGBD, sin embargo resulta

mucho más rápido para algunas operaciones como son: la realización de consultas complejas, la

carga del programa para lectura y escritura y el trabajo en ambientes multiusuario de gran tamaño.

Page 57: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

49

2.1.7 – Medidas para mejorar el rendimiento en el acceso a los datos científicos almacenados en el PostgreSQL.

Para contrarrestar la sobrecarga impuesta por las funcionalidades del PostgreSQL, es bueno

tomar medidas para mejorar el rendimiento en el acceso a los datos científicos almacenados.

Algunas de estas optimizaciones se muestran a continuación:

Uso de herramientas de mantenimiento como VACUUM, ANALYZE, REINDEX.

Uso de las cláusulas LIMIT y OFFSET en las consultas siempre que sea posible.

Optimizador de Consultas Genéticas.

Rutinas de recobro de espacio en disco.

Prevención de fallos.

Planificador Optimizador.

Generación de posibles planes.

2.2- Modelado de los datos científicos.

En este trabajo es de interés analizar algunas de las características de los tipos de datos que

posee el PostgreSQL, en particular las facilidades para la definición de arreglos

multidimensionales, tipos compuestos, datos espaciales y tipos abstractos para el acomodo de

datos científicos.

Para los arreglos de una sola dimensión y multidimensionales puede emplearse una sintaxis

alternativa ajustada al SQL estándar. Ambos podrían definirse de la siguiente manera:

Page 58: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

50

Esta sintaxis requiere una constante entera para representar el tamaño del arreglo, sin embargo

al igual que en el caso anterior PostgreSQL no restringe el tamaño del arreglo.

Además de los arreglos es posible definir tipos de datos compuestos. En esta sintaxis sólo se

pueden especificar los nombres de los campos y los tipos; hasta el presente no pueden incluirse

restricciones tales como NOT NULL. La palabra clave AS es esencial, pues sin ella el sistema

“pensaría” bastante diferente acerca del significado del comando CREATE TYPE y pudieran

obtenerse extraños errores de sintaxis.

Un dato espacial es una variable asociada a una localización del espacio. Normalmente se

utilizan datos vectoriales, los cuales pueden ser expresados mediante tres tipos de objetos

espaciales:

1. Puntos.

Se encuentran determinados por las coordenadas terrestres medidas por latitud y

longitud. Por ejemplo: ciudades, accidentes geográficos puntuales, hitos.

2. Líneas.

Objetos abiertos que cubren una distancia dada y comunican varios puntos o nodos,

aunque debido a la forma esférica de la tierra también se le consideran como arcos.

Líneas telefónicas, carreteras y vías de trenes son ejemplos de líneas geográficas.

3. Polígonos.

Figuras planas conectadas por distintas líneas u objetos cerrados que cubren un área

determinada, como por ejemplo países, regiones o lagos.

De esta forma la información sobre puntos, líneas y polígonos se almacena como una colección

de coordenadas (x, y). La ubicación de una característica puntual, pueden describirse con un sólo

punto (x, y). Las características lineales, pueden almacenarse como un conjunto de puntos de

coordenadas (x, y). Las características poligonales, pueden almacenarse como un circuito cerrado

de coordenadas.

Una vez definidos los tipos pueden usarse para crear tablas o funciones.

La abstracción es el mecanismo que permite seleccionar partes de un todo complejo para su

consideración, ignorando el resto. Esto permite filtrar aquellos aspectos relevantes, y obtener

soluciones más generales. El concepto de abstracción nos remite a la posibilidad de considerar la

resolución de un problema sin tener en cuenta los detalles por debajo de cierto nivel.

Page 59: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

51

El concepto de Tipo de Dato Abstracto (TDA en castellano o ADT en inglés) surgió para

facilitar el trabajo con tipos de datos haciendo abstracción de la implementación de los mismos.

Un TDA está dado por un grupo de datos que cumplen cierta condición especificada para él, más

un conjunto de operaciones que representan su comportamiento.

En un SGBD-OR la variable dependiente puede almacenarse junto con sus dimensiones

utilizando una columna que contenga un arreglo multidimensional, implementado como un ADT.

Esto resulta una representación más natural, ya que la variable dependiente se almacena en la

misma fila que las variables independientes o dimensiones.

PostgreSQL es un SGBD-OR que permite la definición de tipos de datos abstractos y también

de las funciones que trabajarán sobre ellos. Tiene además un tipo predefinido de arreglo n-

dimensional dinámico que se puede utilizar para modelar datos científicos. Este tipo de dato tiene

algunas ventajas sobre tipos de datos similares de otros SGBD-OR (por ejemplo, Oracle) pues

permite insertar, actualizar y eliminar elementos individuales, así como definir índices sobre estos.

En la Figura 18. Modelado abstracto de datos. se muestra la forma en que fue modelada la

variable presión en PostgreSQL. Nótese que se creó un tipo abstracto de datos (PressureData) que

encapsula los valores numéricos de la presión, y una descripción de los mismos. De la misma

manera se pueden agregar otros atributos. Las otras variables fueron modeladas de forma similar.

Otra forma de almacenar los datos en un SGBD-OR, es utilizando el modelado

multidimensional del esquema Estrella.

El esquema estrella deriva su nombre del hecho que su diagrama forma una estrella, con puntos

radiales desde el centro. El centro de la estrella consiste de una tabla de hechos, que es aquella que

contiene toda la información, y un conjunto de tablas dimensiones organizadas alrededor de ésta,

conteniendo el catálogo de la información, formando las puntas de la estrella. Este modelo

Figura 18. Modelado abstracto de datos.

Page 60: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

52

entonces, resulta ser asimétrico, pues hay una tabla dominante en el centro con varias conexiones a

las otras tablas. Las tablas de dimensiones tienen sólo una conexión a la tabla de hechos y ninguna

más, vinculada por un identificador (Figura 19). Son relativamente pequeñas y se pueden utilizar

como criterios de filtro. Son bases de datos históricas, más de consulta que de transacción, e

incrementales.

Figura 19. Esquema Estrella.

El esquema de estrella sólo tiene un nivel. Su diseño es ad hoc y difícil de cambiar. La tabla de

hechos es más grande en atributos y tuplas que las de dimensiones. El tener todos los hechos juntos

y las dimensiones separadas permite que las “juntas” sean mínimas ocupando menos tiempo las

consultas.

2.2- Importación de los Datos.

Para cargar una base de datos se utilizaría una herramienta para extraer la información de los

archivos HDF donde están almacenados e ir acotejando estos datos dentro del SGBD-OR. Esta

herramienta pudiera incluir sentencias SQL en código fuente C, lo que facilita mucho la

realización de tareas comunes con bases de datos.

Datos científicos SGBD-OR

HERRAMIENTA

HDF

Page 61: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

53

2.3- Accediendo a los DC en PostgreSQL.

Una vez que los datos científicos se encuentran almacenados dentro la base de datos, se pueden

usar las operaciones tradicionales que brindan los SGBD-OR para manipularlos. Para este trabajo

se eligieron cuatro de ellas para el cálculo de valores estadísticos de los datos: la suma, el

promedio, el máximo y el mínimo.

Las bases de datos espaciales no tienen un conjunto de operadores que sirvan como elementos

básicos para la evaluación de consultas ya que estas manejan un volumen extremadamente grande

de objetos complejos no ordenados en una dimensión. Es por esto que existen algoritmos

complejos para evaluar predicados espaciales. Las consultas son realizadas generalmente en SSQL

(Spatial SQL), el cual introduce mediante extensiones, los distintos conceptos del álgebra ROSE

dentro del lenguaje SQL estándar, es decir, utiliza las cláusulas SELECT-FROM-WHERE para las

tres operaciones en el álgebra relacional (proyección algebraica, producto cartesiano y selección).

Las tres categorías fundamentales de consultas en un sistema de información espacial son:

1. Consultas exclusivamente de propiedades espaciales. Ej: "traer todos los pueblos que

son cruzados por un río".

2. Consultas sobre propiedades no espaciales. Ej: "cuantas personas viven en Valdivia".

3. Consultas que combinan propiedades espaciales con no espaciales. Ej: "traer todos los

vecinos de un cuadra localizada en Los Angeles"

En el lenguaje SSQL, el ejemplo del segundo punto se escribiría de la siguiente forma:

SELECT poblacion FROM ciudades WHERE nombre= "Valdivia"

El PostgreSQL posee la capacidad de hacer transacciones anidadas (savepoints) y posee un

sofisticado optimizador de consultas, que es capaz de resolver consultas complejas en tiempos

comparables a los de los mejores DBMS. Una última adición en este campo es la habilidad de

usar varios índices para resolver consultas sobre una misma tabla y mejorar el rendimiento de

la base de datos. Estos índices pueden ser compuestos, únicos, parciales, funcionales (sobre

funciones) y que pueden ser definidos como B-tree, R-tree, hash o GiST. PostgreSQL posee

toda la infraestructura necesaria para extender estos tipos de índices.

Page 62: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

54

Conclusiones Parciales.

En específico, los SGBD-OR (donde se ubica el PostgreSQL), extienden el modelo relacional,

brindándole capacidades propias de los lenguajes orientados a objetos, uniendo de este modo lo

mejor de ambos.

PostgreSQL posee una serie de características que han hecho que pueda ser fácilmente

extensible para trabajar con datos científicos, dado el soporte que brinda este sistema para el tipo de

dato arreglo multidimensional y las facilidades de interacción con otros lenguajes como C. Una

vez que los datos científicos están almacenados en el SGBD, se pueden aprovechar todas las

facilidades que este brinda para el manejo de los datos.

Page 63: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

55

Capítulo 3: Análisis del Rendimiento.

En el capítulo anterior, se mostró que PostgreSQL posee una serie de características que

han hecho que pueda ser fácilmente extensible para trabajar con datos científicos, debido a su

rica colección de datos y operaciones estadísticas comunes. Utilizando precisamente estas

nuevas extensiones, en este capítulo se presentará un estudio de la incorporación de datos de un

archivo HDF al PostgreSQL y comparar el rendimiento entre ambas bases de datos.

3.1 - Ambiente de prueba.

Para las pruebas de rendimiento realizadas en este trabajo se utilizó una computadora

Hanel, con la siguiente configuración:

CPU Intel Celeron P4/Xeon a 2.40 Ghz.

248 MB de memoria RAM.

128 KB de memoria cache externa.

Disco duro IDE de 80 GB.

Tarjeta de video de 8 MB.

Tarjeta de red de 100 Mbps.

El sistema operativo empleado fue Linux Debian version 2.6.18. Las herramientas usadas

fueron el administrador grafico para PostgreSQL pgadmin3 (version 1.4.3), el SGBD-OR

PostgreSQL (version 8.1), el Hierarchical Data Format hdf5 (version 1.6.5) y el SPSS para

Windows (version 13.0). Como estadígrafos, fueron utilizados los comandos time, iostat y

mpstat que provee el Linux.

El comando time tiene como función ejecutar programas y sumarizar el tiempo consumido

por el mismo. Su valor esta dado en segundos. Proporciona una descripción general de las

estadísticas del CPU y de las E/S del disco.

El comando iostat muestra una descripción general de la utilización del CPU, junto con las

estadísticas de E/S para una o más unidades de disco. Es el encargado de monitorear las

entradas y salidas de los dispositivos del sistema mediante la observación del tiempo y los

dispositivos que están activados en relación con sus momentos de transferencia promedio. El

Page 64: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

56

comando genera dos tipos de reportes: el de la utilización de la CPU y el de la utilización de

los dispositivos.

El comando mpstat realiza un reporte de las actividades de la CPU de forma individual. La

salida muestra una fila por cada uno de los procesadores presentes en el sistema y una serie de

columnas con estadísticas muy semejantes a las de iostat sobre distintos elementos, con la

excepción de una columna adicional mostrando las interrupciones por segundo manejadas por

la CPU.

3.2 - Métricas de Rendimiento.

Para el caso de estudio 1 como para el caso de estudio 2, se tomaron las siguientes

métricas de rendimiento:

tiempo de ejecución.

%user: porcentaje de tiempo en modo usuario (ejecutando aplicaciones, etc.)

%nice: porcentaje de tiempo en modo usuario (para procesos que han alterado su

prioridad de planificación usando nice).

%system: porcentaje de tiempo en modo kernel.

%iowait: porcentaje de tiempo que la CPU (o CPUs) estuvo ocioso mientras que el

sistema estuvo en la espera de una solicitud de E/S al disco.

%idle: porcentaje de tiempo ocioso.

tps: número de transferencias (u operaciones de E/S) por segundo.

kB_read/s: número de kilobytes leídos por segundo.

kB_wrtn/s: número de kilobytes escritos por segundo.

kB_read: número total de kilobytes leídos.

kB_wrtn: número total de kilobytes escritos.

rrqm/s: numero de solicitudes de lectura por segundo que son puestos en cola por el

dispositivo.

wrqm/s: numero de solicitudes de escritura por segundo que son puestos en cola por el

Page 65: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

57

dispositivo.

r/s: numero de solicitudes de lectura expedidas al dispositivo por segundo.

w/s: numero de solicitudes de escritura expedidas al dispositivo por segundo.

rkB/s: numero de kilobytes leidos desde el dispositivo por segundo.

wkB/s: numero de kilobytes escritos desde el dispositivo por segundo.

avgrq-sz: tamano promedio (en sectores) de las solicitudes que son expedidas hacia el

dispositivo.

avgqu: longitud promedio de la cola de las solicitudes que son expedidas hacia el

dispositivo.

await: tiempo promedio (en milisegundos) de las solicitudes de E/S a ser respondidas.

svctm: tiempo promedio (en milisegundos) de las solicitudes E/S que son expedidas al

dispositivo.

%util: porcentaje del tiempo de la CPU durante el cual las solicitudes de E/S son

expedidas al dispositivo.

3.3 – Caso de Estudio 1.

Los datos utilizados fueron obtenidos del Programa Pathfinder, concebido por la NASA a

principios de los años 90, con el objetivo de poner a disposición de la comunidad científica la

información obtenida durante años por varios satélites que se encargan de recopilar y procesar

a diario datos atmosféricos. Estos se encuentran almacenados en una gran cantidad de archivos

de tipo HDF, y son procesados utilizando complejos algoritmos para obtener información

climatológica de las áreas correspondientes. Entre las variables almacenadas en estos archivos

se consideraron en este trabajo la presión atmosférica, la latitud, la longitud y los valores de

significación correspondientes.

Page 66: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

58

3.4 – Resultados del Caso de Estudio 1.

Después de aplicar las consultas estadísticas implementadas en lenguaje C al archivo HDF

TOVS5DAY.h5, se obtuvieron los siguientes resultados:

time.

1 Min: 0.032.

2 Max: 0.03.

3 Average: 0.03.

4 Sum: 0.03.

iostat.

1 Min:

tps kB_reads/s kB_wrtn/s kB_read kB_wrtn

14.43 485.36 75.03 490.18 75.64

rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util

3.85 6.79 7.38 6.04 417.19 51.31 54.31 0.07 3.89 2.9 4.21

2 Max:

tps kB_reads/s kB_wrtn/s kB_read kB_wrtn

28.83 1488.21 21.09 1503.05 22.1

rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util

11.3 8.18 22.79 1.67 1232.47 39.38 87.32 0.15 4.75 3.42 10.74

Page 67: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

59

3 Average:

tps kB_reads/s kB_wrtn/s kB_read kB_wrtn

27.12 1083.56 51.43 1088.67 52.67

rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util

15.72 3.43 32.85 4.26 1678.54 30.79 91.85 0.23 8.63 4.87 16.77

4 Sum:

tps kB_reads/s kB_wrtn/s kB_read kB_wrtn

42.66 1916.03 28.4 1922 28.4

rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util

12.8 3.07 29.09 0.5 1406.37 14.27 108.84 0.18 6.16 4.99 14.75

mpstat.

1 Min:

%user %nice %sys %iowait %idle intr/s

3.93 0 1.6 2.28 92.19 369.45

2 Max:

%user %nice %sys %iowait %idle intr/s

4.29 0 1.52 0.05 94.14 352.86

Page 68: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

60

3 Average:

%user %nice %sys %iowait %idle intr/s

4.38 0 1.46 1.21 92.95 357.36

4 Sum:

%user %nice %sys %iowait %idle intr/s

3.66 0 1.61 2.55 92.19 358.22

3.5 – Caso de Estudio 2.

Para cargar una base de datos con estos datos es necesario extraerlos de los archivos HDF

donde están almacenados. El proceso de extracción de los datos y llenado de la base de datos

puede ser engorroso y consumir tiempo, pues no están disponibles herramientas que lo realicen

de manera automática. Para completar esta tarea, se creó una herramienta en lenguaje C que

recibe como parámetros el nombre del archivo HDF y la información de la base de datos

(nombre, nombre de la tabla, nombre de usuario y contraseña, puerto, etc.), para

posteriormente llenarla con los datos almacenados en el archivo HDF. Para ello utiliza las

bibliotecas libhdf5 y libpq, suministradas por los paquetes HDF y PostgreSQL

respectivamente.

La base de datos científicos fue modelada basándose en el modelo estrellado. Está

compuesta por una tabla principal nombrada TestDataTable que almacenará un número de

secuencia incremental, las llaves extranjeras de las tablas dimensiones (Pressure, Latitude,

Longitude) conectadas a ella y un último campo que almacenará el valor de la significación.

La tabla Pressure almacenará un número identificador que hará función de llave primaria

y un valor que corresponderá con los valores de presión que van desde los 200 hasta los 1200

hectopascal.

Page 69: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

61

La tabla Longitude almacenará un número identificador que hará función de llave primaria

y un valor que corresponderá con los valores de longitud.

La tabla Longitude almacenará un número identificador que hará función de llave primaria

y un valor que corresponde con los valores de latitud.

3.6 – Resultados del Caso de Estudio 2.

Después de ejecutar las consultas estadísticas en lenguaje SQL a la base de datos científicos, se

obtuvieron los siguientes resultados:

time.

1 Min: 855.8.

2 Max: 863.

3 Average: 840.83.

4 Sum: 919.63.

iostat.

1 Min:

tps kB_reads/s kB_wrtn/s kB_read kB_wrtn

91.34 7168.68 39.63 7242.67 39.83

rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util

45.81 6.94 89.9 1.25 6876.2 32.77 120.66 0.6 6.33 4.23 39.36

2 Max:

tps kB_reads/s kB_wrtn/s kB_read kB_wrtn

Page 70: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

62

65.02 5713.93 16.34 5726.52 16.44

rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util

57.02 5.9 84.8 1 5918.32 27.58 94.60 0.55 6.18 4.29 35.56

3 Average:

tps kB_reads/s kB_wrtn/s kB_read kB_wrtn

80.39 6425.23 50.22 6452 50.52

rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util

89.33 5.24 91.81 0.9 5706.49 24.57 82.78 0.55 5.53 3.74 33.86

4 Sum:

tps kB_reads/s kB_wrtn/s kB_read kB_wrtn

111.35 7310.44 15.75 7377.44 15.84

rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util

43.84 4.96 76.01 0.83 5706.4 21.51 105.35 0.43 5.5 3.92 30.21

mpstat.

1 Min:

%user %nice %sys %iowait %idle intr/s

32.73 0 5.08 16.53 45.15 482.22

Page 71: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

63

2 Max:

%user %nice %sys %iowait %idle intr/s

37.88 0 5.48 13.29 42.56 445.57

3 Average:

%user %nice %sys %iowait %idle intr/s

32.47 0 4.85 20.88 41.42 488.78

4 Sum:

%user %nice %sys %iowait %idle intr/s

35.95 0 5.11 15.46 43.02 451.43

3.7 - Comparación entre los dos Casos de Estudio.

Después de obtener los resultados de emplear los dos casos de estudio, se utilizó el Test de

Wilcoxon a través del SPSS para comparar las métricas de rendimiento de ambos

respectivamente.

Métricas HDF PostgreSQL

Tiempo de duración Menor Mayor

tps Menor Mayor

kB_reads/s Menor Mayor

kB_wrtn/s Igualdad

kB_read Menor Mayor

kB_wrtn Igualdad

%user Menor Mayor

%sys Menor Mayor

Page 72: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

64

%iowait Menor Mayor

%idle Mayor Menor

intr/s Menor Mayor

rrqm Igualdad

wrqm Igualdad

r/s Menor Mayor

w/s Igualdad

rkB/s Menor Mayor

wkB/s Menor Mayor

avgrq Igualdad

avgqu Menor Mayor

await Igualdad

svctm Igualdad

%util Menor Mayor

Conclusiones parciales

Se implementó un caso de estudio entre los datos científicos almacenados en archivos HDF y

en un SGBD-OR. Después de elegirse las métricas de rendimiento, realizaron pruebas de

recuperación de datos a través de consultas, midiéndose los valores de las variables de rendimiento.

Finalmente se realizó el Test de Wilcoxon para establecer una comparación entre ambas soluciones,

descubriéndose que en algunos aspectos como el tiempo de duración, la utilización de la CPU, el

tiempo en que esta permanece ociosa, entre otros, es mucho menor en las consultas a archivos

HDF. En otros aspectos como en los requerimientos de lectura/escritura puestos en cola, el tiempo

en que estas son respondidas y expedidas, HDF y PostgreSQL mostraron semejanza. En otros,

como la cantidad de información leída y escrita, la utilización de la CPU, el número de

interrupciones, entre otras es mucho superior en el PostgreSQL.

Page 73: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

65

Conclusiones y Recomendaciones

En este trabajo se analizó la factibilidad de la utilización del SGBD-OR PostgreSQL el

almacenamiento y trabajo con datos científicos. Se comprobó que este gestor posee ventajas sobre

los otros modelos (relacional, orientado a objetos) que lo convierten en buen candidato para la

manipulación de datos científicos.

Se determinaron 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.

También se mostraron las ventajas que ofrece un SGBD-OR para el almacenamiento y

visualización de datos científicos, así como algunas medidas para mejorar el rendimiento en el

acceso a los datos científicos almacenados en el SGBD-OR escogido.

Se implementó una base de datos en PostgreSQL para almacenar datos científicos y

se realizó una comparación de rendimiento entre este SGBD-OR y el formato nativo HFD.

No obstante, se recomienda que este estudio no termine junto con el presente trabajo y se

continúe la investigación sobre este tema tan controvertido en pesquisas posteriores.

Page 74: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

66

Bibliografía

AMIRA (1998).

AVS (1998).

BRICEÑO AVILA, C. (2006) Informe Final.

CACERES GONZÁLEZ, A. (2006) Arreglos Multidimensionales.

CATTELL, R. G. (1995) The Object Database Standard: ODMG-93 (Release 1.2).

COHEN, S. H., PATRICK; SCHULZ, KARL W.; BARTH, WILLIAM L.; BENTON, BRAD (2006) Scientific Formats for Object-Relational Database Systems: A Study of Suitability and Performance.

COMPUTING SYSTEM, BARRODALE (2008) Applications of Object Relational Database Management Systems at BCS

CUBILLOS, C. (2007) Estructuras estáticas.

CURSO (2006) Algoritmos y Programación II.

DX (1998).

EGGER, A. E. (2004) Visualizando Datos Científicos: Un componente esencial de la investigación.

ELSMARI, R. N., S. B. (2002) Fundamentals of Database Systems.

ERWIG, M. (2008) Toward Spatiotemporal Patterns.

EXPLORER, I. (1998).

GRAY, A. R. T. A. A. S. S. A. P. Z. K. A. J. (2003) The Sloan Digital Sky Survey Science Archive: Migrating a Multi-Terabyte Astronomical Archive from Object to Relational DBMS.

HDF (1998).

HDF (2005) HDF5 User Guide

KHOROS (1998).

MUSICK, R. (1998) Supporting Large-Scale Computational Science.

NAHOURAII, E. P., F. (1991) Object-Oriented Databases.

Page 75: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

67

NASA fits-page.

NETCDF (1998).

NIETO-SANTISTEBAN, M. S., ALEXANDER S. (2005) When Database Systems Meet the Grid.

OCHOA, G. Tipos Abstractos de Datos. Universidad Simón Bolívar.

OLIVARES ROJAS, J. C. (2008) Apoyo para la toma de decisiones.

OPENDX (1998).

ORTEGA CAMACHO, A. A. (2008) Uso de un SGBD-OR para el trabajo con datos científicos.

PÉREZ RISQUET, C. O. C., JUAN C (2005) Modelación de datos para la Visualización Científica.

PÉREZ RISQUET, C. O. C., JUAN C; MORELL PÉREZ, ALBERTO; ENRIQUE CARO, SAUMEL (2006) Uso de DBMS-OR para el trabajo con datos científicos: un caso de estudio.

PFALTZ, J. L. H., RUSSELL F. ; FRENCH, JAMES C. (1998) Scalable, parallel, scientific databases.

PUENTES VERDIN, JORGE (2006) Introducción a la Visualización Científica.

RAO, B. R. (1994) Object Oriented Database: Technology, Applications, and Products.

RODRÍGUEZ, O. (2008) Data Warehouse: un enfoque industrial.

SAHLING, N. (2002) Computer Science and Visualization.

SILVERIO CASTRO, R. (2002) Procesamiento analítico en línea OLAP.

STONEBRAKER, M. B., P. (1999) Object-Relational DBMSs: Tracking the Next Great Wave.

Page 76: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

68

Anexo

Anexo I. Esquema de BDVar

Page 77: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

69

Anexo II. Tablas generadas para BDVar.

Page 78: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

70

Page 79: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

71

Anexo III. Tabla del comportamiento de concentraciones CO2.

Year Jan. Feb. March April May June July Aug. Sept. Oct. Nov. Dec. Annua

l

1958 -99.99 -99.99 315.71 317.45 317.5 -99.99 315.86 314.93 313.19 -99.99 313.34 314.67 -99.99

1959 315.58 316.47 316.65 317.71 318.29 318.16 316.55 314.8 313.84 313.34 314.81 315.59 315.98

1960 316.43 316.97 317.58 319.03 320.03 319.59 318.18 315.91 314.16 313.83 315 316.19 316.91

1961 316.89 317.7 318.54 319.48 320.58 319.78 318.58 316.79 314.99 315.31 316.1 317.01 317.65

1962 317.94 318.56 319.69 320.58 321.01 320.61 319.61 317.4 316.26 315.42 316.69 317.69 318.45

1963 318.74 319.08 319.86 321.39 322.24 321.47 319.74 317.77 316.21 315.99 317.07 318.36 318.99

1964 319.57 -99.99 -99.99 -99.99 322.23 321.89 320.44 318.7 316.7 316.87 317.68 318.71 -99.99

1965 319.44 320.44 320.89 322.13 322.16 321.87 321.21 318.87 317.81 317.3 318.87 319.42 320.03

1966 320.62 321.59 322.39 323.7 324.07 323.75 322.4 320.37 318.64 318.1 319.79 321.03 321.37

1967 322.33 322.5 323.04 324.42 325 324.09 322.55 320.92 319.26 319.39 320.72 321.96 322.18

1968 322.57 323.15 323.89 325.02 325.57 325.36 324.14 322.11 320.33 320.25 321.32 322.9 323.05

1969 324 324.42 325.64 326.66 327.38 326.7 325.89 323.67 322.38 321.78 322.85 324.12 324.62

1970 325.06 325.98 326.93 328.13 328.07 327.66 326.35 324.69 323.1 323.07 324.01 325.13 325.68

1971 326.17 326.68 327.18 327.78 328.92 328.57 327.37 325.43 323.36 323.56 324.8 326.01 326.32

1972 326.77 327.63 327.75 329.72 330.07 329.09 328.05 326.32 324.84 325.2 326.5 327.55 327.46

1973 328.54 329.56 330.3 331.5 332.48 332.07 330.87 329.31 327.51 327.18 328.16 328.64 329.68

1974 329.35 330.71 331.48 332.65 333.09 332.25 331.18 329.4 327.44 327.37 328.46 329.58 330.25

1975 330.4 331.41 332.04 333.31 333.96 333.59 331.91 330.06 328.56 328.34 329.49 330.76 331.15

1976 331.74 332.56 333.5 334.58 334.87 334.34 333.05 330.94 329.3 328.94 330.31 331.68 332.15

1977 332.92 333.42 334.7 336.07 336.74 336.27 334.93 332.75 331.58 331.16 332.4 333.85 333.9

1978 334.97 335.39 336.64 337.76 338.01 337.89 336.54 334.68 332.76 332.54 333.92 334.95 335.5

1979 336.23 336.76 337.96 338.89 339.47 339.29 337.73 336.09 333.91 333.86 335.29 336.73 336.85

1980 338.01 338.36 340.08 340.77 341.46 341.17 339.56 337.6 335.88 336.01 337.1 338.21 338.69

1981 339.23 340.47 341.38 342.51 342.91 342.25 340.49 338.43 336.69 336.85 338.36 339.61 339.93

1982 340.75 341.61 342.7 343.56 344.13 343.35 342.06 339.82 337.97 337.86 339.26 340.49 341.13

1983 341.37 342.52 343.1 344.94 345.75 345.32 343.99 342.39 339.86 339.99 341.16 342.99 342.78

1984 343.7 344.51 345.28 347.08 347.43 346.79 345.4 343.28 341.07 341.35 342.98 344.22 344.42

1985 344.97 346 347.43 348.35 348.93 348.25 346.56 344.69 343.09 342.8 344.24 345.56 345.9

1986 346.29 346.96 347.86 349.55 350.21 349.54 347.94 345.91 344.86 344.17 345.66 346.9 347.15

1987 348.02 348.47 349.42 350.99 351.84 351.25 349.52 348.1 346.44 346.36 347.81 348.96 348.93

1988 350.43 351.72 352.22 353.59 354.22 353.79 352.39 350.44 348.72 348.88 350.07 351.34 351.48

1989 352.76 353.07 353.68 355.42 355.67 355.13 353.9 351.67 349.8 349.99 351.3 352.53 352.91

Page 80: Capítulo 1: Almacenamiento y Gestión de Datos Científicos

72