UNIVERSIDAD VERACRUZANA FACULTAD DE CONTADURIA Y ADMINISTRACION “Bases de Datos Espacio–Temporales” MONOGRAFIA Para obtener el Título de: Licenciado en Sistemas Computacionales Administrativos Presenta: Viaani Lily Álvarez Prados Asesor: M.R. y T. Alma Delia Otero Escobar Cuerpo Académico: Tecnologías de la Información y las Organizaciones Inteligentes en la Sociedad del Conocimiento Xalapa, Enríquez., Ver. Agosto 2009 INDICE RESUMEN 1 INTRODUCCION 2 CAPITULO I GENERALIDADES DE BASES DE DATOS 6 1.1 HISTORIA 7 1.2 BASE DE DATOS 10 1.2.1 Ventajas del uso de bases de datos 11 1.2.2 Aplicaciones de las bases de datos 12 1.2.3 Abstracción de datos 13 1.3 MODELOS DE BASES DE DATOS 15 1.3.1 Modelo entidad relación 15 1.3.2 Modelo relacional 17 1.3.3 Modelo jerárquico 19 1.3.3.1 Características de la estructura jerárquica 1.3.4 Modelo orientado a objetos 19 21 1.3.4.1 Relaciones 21 1.3.4.2 Integridad de las relaciones 24 1.4 ANTECEDENTES DE LAS BASE DE DATOS ESPACIO-TEMPORALES 25 1.4.1 Bodega de datos 25 1.4.1.1 Características de la bodega de datos 26 1.4.1.2 Ventajas de la bodega de datos 27 1.4.1.3 Desventajas de la bodega de datos 27 1.4.2 Minería de datos 1.4.2.1 Características y objetivos de la minería de datos 27 29 I 1.4.2.2 Ventajas de la minería de datos 30 1.4.2.3 Desventajas de la minería de datos 31 CAPITULO II BASES DE DATOS ESPACIO-TEMPORALES 33 2.1 BASES DE DATOS TEMPORALES 34 2.2 BASES DE DATOS ESPACIALES 35 2.2.1 Tipos de datos 36 2.2.2 Estructura de datos espaciales 37 2.2.3 Definición de objetos espaciales 38 2.2.3.1 Definición de funciones espaciales 39 2.2.3.2 Acceso a los datos espaciales 39 2.2.4 Lenguajes de consultas espaciales 40 2.2.4.1 Implementaciones de consultas espaciales 2.2.5 Administrador de base de datos espaciales 2.2.5.1 Oracle spatial 11g. 2.3 BASES DE DATOS ESPACIO-TEMPORALES 43 44 44 47 2.3.1 Análisis espacio–temporal 50 2.3.2 Lenguajes de consulta espacio-temporales 50 2.3.2.1 SQLST 50 2.3.2.2 El lenguaje de Guting 51 2.3.2.3 Comparación de los dos lenguajes de consulta 51 2.3.2.4 Ejemplos 53 2.3.2.4.1 Consultas 2.3.2.5 Resultados de la comparación 56 64 CAPITULO III HERRAMIENTAS DE SOFTWARE PARA MANIPULAR BDET 3.1 TECNOLOGIAS Y HERRAMIENTAS 66 67 3.1.1 API Java swing 67 3.1.2 Tecnología XML 69 3.1.3 Transformación de documentos XSLT 72 II 3.1.4 Procesador Dom4j 73 3.1.5 Manejador de base de datos PostGresql 74 3.1.5.1 PostGIS 3.1.6 Entorno de desarrollo integrado NetBeans 76 76 CAPITULO IV APLICACIÓN DE LAS BDET: SIG 77 4.1 SISTEMA DE INFORMACION GEOGRAFICA 78 4.1.1 Base de datos geográfica 80 4.1.2 Modelo de datos en un SIG 82 4.1.3 Semántica de la información espacial 86 CONCLUSIONES 89 FUENTES DE INFORMACION 91 GLOSARIO 94 INDICE DE FIGURAS 103 INDICE DE TABLAS 104 III RESUMEN En este trabajo se conoce las bases de datos espacio-temporales las cuales se encargan de guardar objetos espaciales que cambian su tamaño y/o posición a través del tiempo. Además de contar con la capacidad de almacenar otros tipos de datos tales, como imágenes, sonido, texto, video, datos geométricos, entre otros. Para conocer mejor de este tema es necesario contar información específica de las bases de datos (BD) clásicas, por lo que esta monográfica consta de cuatro capítulos, de los cuales en el primero se abarcan las generalidades de las bases de datos, la historia de éstas, sus modelos de datos y algunas de las herramientas de apoyo a las mismas tales como las bodegas y la minería de datos. En el segundo capítulo se abarca las bases de datos espaciales, temporales y espacio-temporales, así como los lenguajes de consulta que son utilizados para llevar a cabo la definición y manipulación de las bases de datos. El tercer capítulo presenta algunas herramientas de software que permiten manipular este tipo de base de datos y por último, en el capitulo cuatro se presenta una de las aplicaciones de las bases de datos espacio-temporales, como es el caso de los sistemas de información geográfica. 1 INTRODUCCION La información con la que cuentan las empresas suele ser muy grande por lo que el acceso a ésta puede llegar a ser complicada. Una herramienta para acceder de manera rápida y sencilla a los datos de una organización, son las bases de datos (BD), a las cuales se puede acceder sin necesidad de ir a lugares dedicados a archivar documentación que en un momento dado llega a ser molesto y que a la fecha, en algunas organizaciones se sigue haciendo. En si, en una BD se tiene una recopilación de datos que pueden ser compartidos por diferentes usuarios. Las bases de datos están diseñadas para administrar grandes cantidades de información y proporcionarla de manera fiable ya que puede haber intento de acceso a los datos de usuarios no autorizados. Las bases de datos se ven apoyadas de herramientas como la bodega de datos o también conocida como datawarehouse que facilita en el apoyo a la toma de decisiones, además de administrar datos de diversos orígenes. Otra de las herramientas por las que las bases de datos se auxilian es la minería de datos la cual colabora en la exploración de información que en algunas ocasiones puede encontrarse almacenada durante muchos años. Debido al avance de la tecnología han surgido otras clases de base de datos, entre las cuales se encuentran las bases de datos temporales que como su nombre lo indica, son las que se encargan del dominio del tiempo de la información en el sistema administrador de las bases de datos; y las espaciales que ofrecen tipos de datos espaciales en sus modelos de datos, y la forma de éstos suelen ser por punto, línea o región, además de permitir describir los objetos 3 espaciales que la forman a través de tres características básicas: atributos, localización y topología. Donde los atributos representan características de los objetos que nos permiten saber qué es lo que son. La localización, representada por la geometría del objeto y su ubicación espacial de acuerdo a un sistema de referencia, permite saber dónde está el objeto y qué espacio ocupa. Por último, la topología definida por medio de las relaciones conceptuales y espaciales entre los objetos, permite mejorar la interpretación semántica del contexto y establecer ciertas jerarquías de elementos a través de sus relaciones. Gracias a la creciente demanda de almacenamiento de información especializada como diversos tipos de información como lo son imágenes, sonidos, textos y videos entre otros, y de los constantes cambios en el mercado y la necesidad de operaciones cada vez más eficientes, hacen que las bases de datos tradicionales no cumplan con las expectativas tanto de clientes y empresas, es por ello que surge la creación de las bases de datos espacio-temporales para solventar tales inconvenientes. Las Bases de Datos Espacio-Temporales buscan dar soporte a aplicaciones como el tráfico de una ciudad, el tráfico aéreo en un aeropuerto o el análisis de fenómenos meteorológicos, donde es importante saber la variación en el tiempo de un objeto representado a través de una geometría. Esto es tratando con objetos que cambian de posición o forma a medida que transcurre el tiempo, estos objetos son adecuados para representar propiedades, personas, animales, entre otros. Existen diversos lenguajes de consulta para este tipo de base de datos pero en esta monografía se presentan dos de dichos lenguajes, estos son, SQLST y Guting los cuales se analizan mediante un conjunto de consultas y de criterios con el fin de evidenciar sus ventajas y desventajas. 4 Ya que las bases de datos espacio-temporales representan una relación entre espacio y tiempo, existen herramientas para la manipulación de software, como API Java swing la cual proporciona un conjunto de componentes para el diseño e implementación de las aplicaciones de escritorio con interfaces gráficas amigables para el usuario; la tecnología XML brinda la funcionalidad de establecer la estructura de los contenidos de los documentos; XSLT permite la transformación de documentos XML a otro formato de archivo por medio de estilos y formatos establecidos en hojas de estilo de éste mismo; otras de las herramientas y tecnologías son Dom4j, PostgreSQL, PostGIS y Netbeans que se abarcan en esta monografía. Éstas bases de datos se caracterizan por contar con información importante en cuanto a tiempo y espacio, una de sus aplicaciones son los Sistemas de Información Geográfica que cuentan con datos espaciales que son datos sin procesar que se distinguen por la presencia de un vinculo gráfico, es decir, un aspecto de estos datos está conectado a un lugar conocido de la tierra, o sea, una referencia geográfica real, esta información se encuentra concentrada en las bases de datos geográficas que son en las que estos sistemas se ven apoyados y que constan de la abstracción del mundo real a una representación simplificada que puede ser interpretada por computadoras. 5 CAPÍTULO I GENERALIDADES DE LAS BASES DE DATOS En este capítulo se da a conocer la historia de las bases de datos, dándonos cuenta que las técnicas de almacenamiento de datos han evolucionado a lo largo de los años, empezando con el desarrollo de las cintas magnéticas hasta el comienzo de la World Wide Web, donde los sistemas de bases de datos tuvieron interfaces Web. Además conoceremos el concepto de base de datos así como sus ventajas, aplicaciones y la forma en que los programadores recuperan los datos eficientemente mediante los niveles de abstracción. Se cuenta con un concepto de modelo de bases de datos y se explican algunos de éstos para conocer la representación de los datos en dichos modelos. También se da una breve explicación de lo que son las bodegas de datos y la minería de datos cada una con sus características, ventajas y desventajas respectivamente. 1.1 HISTORIA El procesamiento de datos impulsa el crecimiento de los computadores, como ocurriera en los primeros días de los computadores comerciales. De hecho, la automatización de las tareas de procesamiento de datos precede a los computadores. Las tarjetas perforadas, inventadas por Hollerith, se usaron en los principios del siglo XX para registrar los datos del censo de los EE. UU., y se usaron sistemas mecánicos para procesar las tarjetas y para tabular los resultados. Las tarjetas perforadas posteriormente se usaron ampliamente como medio para introducir datos en los computadores. 7 Las técnicas del almacenamiento de datos han evolucionado a los largo de los años: Década de 1950 y principios de la década de 1960. Se desarrollaron las cintas magnéticas para el almacenamiento de datos. Las tareas de procesamiento de datos tales como nóminas fueron automatizadas, con los datos almacenados en cintas. El procesamiento de datos consistía en leer datos de una o más cintas y escribir datos en una nueva cinta. Los datos también se podían introducir desde paquetes de tarjetas perforadas e impresos en impresoras. Las cintas solo se podían leer secuencialmente, y los tamaños de datos eran mucho mayores que la memoria principal; así los programas de procesamiento de datos tenían que procesar los datos según un determinado orden, leyendo y mezclando datos de cintas y paquetes de tarjetas perforadas. Finales de la década de 1960 y la década de 1970. El amplio uso de los discos fijos a finales de la década de 1960 cambió en gran medida el escenario del procesamiento de datos, ya que los discos fijos permitieron el acceso directo a datos. La ubicación de los datos en disco no era importante, ya que a cualquier posición del disco se podía acceder en sólo decenas de milisegundo. Los datos se liberaron de la dominación de la secuencialidad. Con los discos pudieron desarrollarse las bases de datos de red y jerárquicas, que permitieron que las estructuras de datos tales como listas y árboles pudieran almacenarse en disco. Los programadores pudieron construir y manipular estas estructuras de datos. Un artículo de definió el modelo relacional y formas no procedimentales de consultar los datos en el modelo relacional, y nacieron las bases de datos relacionales. La simplicidad del mundo relacional y la posibilidad de ocultar completamente los detalles de implementación al programador fueron atractivas. Década de 1980. Aunque académicamente, el modelo relacional no se usó inicialmente en la práctica debido a sus inconvenientes por el rendimiento; las bases de datos relacionales no pudieron competir con el rendimiento de 8 las bases de datos de red y jerárquicas existentes. Esta situación cambió con System R, un proyecto innovador en IBM Research que desarrolló técnicas para la construcción de un sistema de bases de datos relacionales eficiente. Los primeros sistemas de bases de datos relacionales, jugaron un importante papel en el desarrollo de técnicas para el procesamiento eficiente de consultas. En los principios de la década de 1980 las bases de datos relacionales llegaron a competir con los sistemas de bases de datos jerárquicas y de red incluso en el área de rendimiento. Las bases de datos relacionales fueron tan sencillas de usar que finalmente reemplazaron a las bases de datos jerárquicas y de red. Desde su escalada en el dominio de la década de 1980, el modelo relacional ha conseguido el reinado entre todos los modelos de datos. La década de 1980 también fue testigo de una gran investigación en las bases de datos paralelas y distribuidas, así como del trabajo inicial en las bases de datos orientadas a objetos. Principios de la década de 1990. El lenguaje SQL se diseño fundamentalmente para las aplicaciones de ayuda a la toma de decisiones, que son intensivas en consultas, mientras que el objetivo principal de las bases de datos en la década de 1980 fue las aplicaciones de procesamiento de transacciones, que son intensivas en actualizaciones. La ayuda a la toma de decisiones y las consultas reemergieron como una importante área de aplicación para las bases de datos. Finales de la década de 1990. El principal acontecimiento fue el crecimiento del World Wide Web. Las bases de datos se implementaron mucho más extensivamente que nunca antes. Los sistemas de bases de datos tienen ahora soporte para tasas de transacciones muy altas, así como muy alta fiabilidad y disponibilidad 24*7 (24 horas al día, 7 días a la semana). Los sistemas de bases de datos también tuvieron interfaces Web a los datos. [Silberschatz A., Korth H., Sudarshan S. (2002)]. 9 1.2 BASE DE DATOS. En 1975 se decía que una base de datos era una colección de datos interrelacionados almacenados en conjunto sin redundancias perjudiciales o innecesarias; cuya finalidad es servir a una aplicación o más, de la mejor manera posible; los datos son almacenados de modo que resulten independientes de los programas que los usan; se emplean métodos bien determinados para incluir nuevos datos y para modificar o extraer los datos almacenados. Pero dicho concepto se ha ido cambiando y configurándose a lo largo del tiempo, en la actualidad se puede definir la base de datos como “Colección o deposito de datos integrados, almacenados en soporte secundario (no volátil) y con redundancia controlada. Los datos, que han de ser compartidos por diferentes usuarios y aplicaciones, deben mantenerse independientes de ellos, y su definición (estructura de la base de datos) única y almacenada junto con los datos, se ha de apoyar en un modelo de datos, el cual ha de permitir captar las interrelaciones y restricciones existentes en el mundo real. Los procedimientos de actualización y recuperación, comunes y bien determinados, facilitarán la seguridad del conjuntos de datos” [Castaño M., Piattini M.,(1999)] Un Sistema Gestor de Bases de Datos (SGBD) consiste en una colección de datos interrelacionados y un conjunto de programas para acceder a dichos datos. La colección de datos, normalmente denominada base de datos, contiene información relevante para una empresa. El objetivo principal de un SGBD es proporcionar una forma de almacenar y recuperar la información de una base de datos de manera que sea tanto práctica como eficiente. Los sistemas de bases datos se diseñan para gestionar grandes cantidades de información. La gestión de los datos implica tanto la definición de estructuras para almacenar la información como la provisión de mecanismos para la manipulación de la información. Además los sistemas de bases de datos deben proporcionar la fiabilidad de la información almacenada, a pesar de las caídas del sistema o los intentos de acceso sin autorización. Si los datos van a ser 10 compartidos entre diversos usuarios, el sistema debe evitar posibles resultados extraños. [Silberschatz A. (2002)] De acuerdo a Sergio Rozic (2004) “Una base de datos es el lugar donde se guardan los datos en reposo y al cual acceden las diferentes aplicaciones (sistemas o programas) de una organización dada” Las operaciones de búsquedas en una base de datos requieren de algún soporte y organización especial a nivel físico. En las bases de datos clásicas la organización de la información se basa en el concepto de búsqueda exacta sobre datos estructurados. Una característica importante de las bases de datos es que capturan sólo un estado de la realidad modelizada, usualmente el más reciente. Por medio de las transacciones, la base de datos evoluciona de un estado al siguiente descartando el estado previo. [Pascal A., Gutiérrez G., Herrera N. (s.f)] 1.2.1 VENTAJAS DEL USO DE BASES DE DATOS Algunas de las principales ventajas de utilizar base de datos para la persistencia de los datos son: Normalizar los datos: Es una metodología que permite minimizar entre otras cosas la redundancia de datos, y agiliza y garantiza la actualización de éstos. Evitar redundancias de datos: Como política de las bases de datos, estos se tratan de guardar en un único lugar y cuando existe la necesidad de acceder a ellos, se hace por medio de relaciones entre los mismos. Evitar inconsistencias de datos: Dado que las bases de datos utilizan transacciones se puede garantizar prácticamente la inexistencia de inconsistencias de datos. Garantizar la integridad de los datos: Como se evita la redundancia de datos y la inconsistencia y se manejan transacciones, la integridad está garantizada. La información obtenida de la base de datos es correcta en todo momento. 11 Garantizar la seguridad de los datos: Debido a que los accesos a la base de datos tanto para usuarios como para aplicaciones están dados por medio de permisos, si estos últimos están bien definidos nadie podrá ingresar a ningún lugar que no le esté permitido ni acceder a un conjunto de datos que no le esté permitido. Compartir los datos: Dado que todos los datos se almacenan en un mismo lugar lógico estos se pueden compartir sin problema entre distintos usuarios y aplicaciones. Facilidad de modificar los datos: Dado que los datos se guardan en un único lugar es más fácil poder realizar modificaciones sobre ellos. [Rozic S., (2004)] 1.2.2 APLICACIONES DE LAS BASES DE DATOS Las siguientes son algunas de las aplicaciones más representativas de las bases de datos: Banca: Para información de los clientes, cuentas y préstamos, y transacciones bancarias. Líneas aéreas: Para reservas e información de planificación. Éstas fueron de los primeros en usar las bases de datos de forma distribuida geográficamente (los terminales situados en todo el mundo accedían al sistema de bases de datos centralizado a través de las líneas telefónicas y otras redes de datos) Universidades: Para información de los estudiantes, matrículas de las asignaturas y cursos. Transacciones de tarjetas de crédito: Para compras con tarjeta de crédito y generación mensual de extractos. Telecomunicaciones: Para guardar un registro de las llamadas realizadas, generación mensual de facturas, manteniendo el saldo de 12 las tarjetas telefónicas de prepago y para almacenar información sobre las redes de comunicaciones. Finanzas: Para almacenar información sobre grandes empresas, ventas y compras de documentos formales financieros, como bolsa y bonos. Ventas: Para información de clientes, productos y compras. Producción: Para la gestión de la cadena de producción y para el seguimiento de la producción de elementos en las factorías, inventarios de elementos en almacenes y pedidos de elementos. Recursos Humanos: Para información sobre los empleados, salarios, impuestos y beneficios, y para la generación de las nóminas. [Silberschatz A. (2002)] 1.2.3 ABSTRACCIÓN DE DATOS Para que el sistema sea útil debe recuperar los datos eficientemente. Esto ha conducido al diseño de estructuras de datos complejas para la representación de los datos en la base de datos. Debido a que muchos usuarios de sistemas de bases de datos no están familiarizados con computadores, los desarrolladores esconden la complejidad a los usuarios a través de varios niveles de abstracción para simplificar la interacción de los usuarios con el sistema: Nivel Físico: El nivel más bajo de abstracción describe cómo se almacenan realmente los datos. En el nivel físico se describen en detalles las estructuras de datos complejas de bajo nivel. Nivel Lógico: El siguiente nivel más alto de abstracción describe qué datos se almacenan en la base de datos y qué relaciones existen entre esos datos. La base de datos completa se describe así en términos de un número pequeño de estructuras relativamente simples. Aunque la implementación de estructuras simples en el nivel lógico puede involucrar estructuras complejas del nivel físico, los usuarios del nivel lógico no necesitan preocuparse de esa complejidad. Los administradores de bases 13 de datos, que deben decidir la información que se mantiene en la base de datos, usan el nivel lógico de abstracción. Nivel de Vistas: El nivel más alto de abstracción describe solo parte de la base de datos completa. A pesar del uso de estructuras más simples en el nivel lógico, queda algo de complejidad, debido a la variedad de información almacenada en una gran base de datos. Algunos usuarios del sistema de base de datos no necesitan toda esta información. En su lugar, tales usuarios necesitan acceder solo a una parte de la base de datos. Para que su interacción con el sistema se simplifique, se define la abstracción del nivel de vistas. El sistema puede proporcionar muchas vistas para la misma base de datos. La figura 1.1 muestra la relación entre los tres niveles de abstracción. [Silberschatz A. (2002)] NIVEL DE VISTAS VISTA 1 VISTA 2 ……. VISTA n NIVEL LOGICO NIVEL FISICO Figura 1.1. Los tres niveles de abstracción de datos. Actualmente las bases de datos han incluido la capacidad de almacenar otros tipos de datos tales, como imágenes, sonido, texto, video, datos geométricos, entre otros. La problemática de almacenamiento y búsqueda en estos tipos de base de datos difiere de las que se presentan en las bases de datos clásicas. En primer lugar los datos generalmente son no estructurados, esto significa que es imposible organizarlos en tuplas compuestas por atributos. En segundo lugar, aún cuando tal estructuración fuera posible, la búsqueda exacta 14 carece de interés en este ámbito. Y en tercer lugar, en muchas aplicaciones resulta de interés mantener todos los estados de las bases de datos y no sólo el más reciente; más aún, hasta puede surgir la necesidad de predecir un estado futuro de la base. Es en este contexto donde surgen las bases de datos espacio–temporales como nuevos modelos de bases de datos capaces de cubrir eficaz y eficientemente las necesidades de almacenamiento y búsqueda de estas nuevas aplicaciones. [Pascal A. (s.f.)] 1.3 MODELOS DE BASES DE DATOS Bajo la estructura de la base de datos se encuentra el modelo de datos: una colección de herramientas conceptuales para describir los datos, las relaciones, la semántica y las restricciones de consistencia. A continuación se describen algunos de los modelos de datos. 1.3.1 MODELO ENTIDAD RELACION El modelo de datos entidad – relación (E-R) está basado en una percepción del mundo real que consta de una colección de objetos básicos, llamados entidades y de relaciones entre estos objetos. Una entidad es una <cosa> u <objeto> en el mundo real que es distinguible de otros objetos. Por ejemplo, cada persona es una entidad, y las cuentas bancarias pueden ser consideradas entidades. Las entidades se describen en una base de datos mediante un conjunto de atributos. Por ejemplo, los atributos número-cuenta y saldo describen una cuenta particular en un banco y pueden ser atributos del conjunto entidades cuenta. Similarmente, los atributos nombre-cliente, calle-cliente y ciudad-cliente pueden describir una entidad cliente. Un atributo extra, id-cliente, se usa para identificar específicamente a los clientes (dado que puede ser posible que haya dos clientes con el mismo nombre, dirección y ciudad). Se debe asignar un identificador único de cliente a cada cliente. 15 Una relación es una asociación entre varias entidades. Por ejemplo, una relación impositor asocia un cliente con cada cuenta que tiene. El conjunto de todas las entidades del mismo tipo, y el conjunto de todas las relaciones del mismo tipo, se denominan respectivamente conjunto de entidades y conjunto de relaciones. La estructura lógica general de una base de datos se puede expresar gráficamente mediante el diagrama E-R, que consta de los siguientes componentes: Rectángulos, que representan conjunto de entidades. Elipses, que representan atributos. Rombos, que representan relaciones entre conjunto de entidades. Líneas, que unen los atributos con los conjuntos de entidades y los conjuntos de entidades con las relaciones. Cada componente se etiqueta con la entidad o relación que representa. Como ilustración, considérese parte de una base de datos de un sistema bancario consistente en clientes y cuentas que tienen esos clientes. En la figura 1.2 se muestra el diagrama E-R correspondiente. nombre-cliente Número de cuenta Calle-cliente ciudad-cliente Id-cliente cliente impositor saldo cuenta Figura 1.2 Ejemplo de diagrama E-R El diagrama E-R indica que hay dos conjuntos de entidades cliente y cuenta, con los atributos descritos anteriormente. El diagrama también muestra la relación impositor entre cliente y cuenta. 16 Además de las entidades y relaciones, el modelo E-R representa ciertas restricciones que los contenidos de la base de datos deben cumplir. Una restricción importante es la correspondencia de cardinalidades, que expresa el número de entidades con las que otra entidad se puede asociar a través de un conjunto de relaciones. Por ejemplo, si cada cuenta puede pertenecer sólo a un cliente, el modelo puede expresar esa restricción. El modelo E-R se utiliza habitualmente en el proceso de diseño de bases de datos. 1.3.2 MODELO RELACIONAL. En el modelo relacional se utiliza un grupo de tablas para representar los datos y las relaciones entre ellos. Cada tabla está compuesta por varias columnas, y cada columna tiene un nombre único. En la figura 1.3 se presenta un ejemplo de base de datos relacional consistente en tres tablas: la primera muestra los clientes de un banco, la segunda, cuentas, y la tercera, las cuentas que pertenecen a cada cliente. La tabla cliente, muestra, por ejemplo, que el cliente cuyo identificador es 19.283.746 se llama González y vive en la calle Arenal sita en La Granja. La segunda tabla, cuenta, muestra que las cuentas C-101 tienen un saldo de $500 y la C-201 un saldo de $900 respectivamente. La tercera tabla muestra las cuentas que pertenecen a cada cliente. Por ejemplo, la cuenta C-101 pertenece al cliente cuyo identificador es 19.283.746 (González) y los clientes 19.283.746 (González) y 01.928.374 (Gómez) comparten el número de cuenta C-201(pueden compartir un negocio). 17 Id- cliente Nombre-cliente Calle-cliente Ciudad-cliente 19.283.746 González Arenal La Granja 01.928.374 Gómez Carretas Cerceda 67.789.901 López Mayor Peguerinos 18.273.609 Abril Preciados Valsaín 32.112.312 Santos Mayor Peguerinos 33.666.999 Rupérez Ramblas León 01.928.374 Gómez Carretas Cerceda (a) La tabla cliente Número-cuenta Saldo Id-cliente Número-cuenta C-101 500 19.283.746 C-101 C-215 700 19.283.746 C-201 C-102 400 01.928.374 C-215 C-305 350 67.789.901 C-102 C-201 900 18.273.609 C-305 C-217 750 32.112.312 C-217 C-222 700 33.666.999 C-222 01.928.374 C-201 (b) La tabla cuenta (c) La tabla impositor Figura 1.3. Ejemplo de base de datos relacional. El modelo relacional es un ejemplo de un modelo basado en registros. Los modelos basados en registros se denominan así porque la base de datos se estructura en registros de formato fijo de varios tipos. Cada tabla contiene registros de un tipo particular. Cada tipo de registro define un número fijo de campos, o atributos. Las columnas de la tabla corresponden a los atributos del tipo de registro. No es difícil ver cómo se pueden almacenar las tablas en archivos. Por ejemplo, un carácter especial (como una coma) se puede usar para delimitar los diferentes atributos de un registro, y otro carácter especial (como un carácter de nueva línea) se puede usar para delimitar registros. El modelo relacional oculta 18 tales detalles de implementación de bajo nivel a los desarrolladores de bases de datos y usuarios. El modelo de datos relacional es el modelo de datos más ampliamente usado, y una amplia mayoría de sistemas de bases de datos actuales se basan en el modelo relacional. El modelo relacional se encuentra a un nivel de abstracción inferior al modelo de datos E-R. Los diseños de bases de datos a menudo se realizan en el modelo E-R, y después se traducen al modelo relacional. [Silberschatz A. (2002)] 1.3.3 MODELO JERARQUICO La implementación del modelo jerárquico en los productos se lleva a cabo en base a punteros; estructura física (organización y tipo de punteros) que varía según los productos, e incluso un mismo producto proporciona distintas organizaciones físicas a fin de que el usuario pueda conseguir una mayor eficiencia en el diseño físico de la base de datos. 1.3.3.1 CARACTERISTICAS DE LA ESTRUCTURA JERARQUICA En el modelo de datos jerárquico, el esquema es una estructura compuesta de nodos, que representan las entidades, enlazados por arcos, que representan las asociaciones o interrelaciones entre dichas entidades. La estructura del modelo de datos jerárquico es un caso particular de la del modelo de red, con fuertes restricciones adicionales derivadas de que las asociaciones del modelo jerárquico deben formar un árbol ordenado, es decir, un árbol en el que el orden de los nodos es importante. Una estructura jerárquica, cuya representación se muestra en la figura 1.4, tiene las siguientes características: El árbol se organiza en un conjunto de niveles. 19 El nodo raíz, el más alto de la jerarquía (nodo A de la figura 1.4), se corresponde con el nivel 0. Los arcos representan las asociaciones jerárquicas entre dos entidades y no tienen nombre, ya que no es necesario porque entre dos conjuntos de datos sólo puede haber una interrelación. Mientras que un nodo de nivel superior (padre) puede tener un número ilimitado de nodos de nivel inferior (hijos), al nodo del nivel inferior sólo le puede corresponder un único nodo de nivel superior. Todo nodo, a excepción del nodo raíz, ha de tener obligatoriamente un padre. Se llaman hojas los nodos que no tienen descendientes (en la figura 1.4 las hojas están marcadas con *) Se llama altura al número de niveles de la estructura jerárquica. Se denomina momento al número de nodos. Sólo están permitidas las interrelaciones 1:1 o 1:N. Cada nodo no terminal y sus descendientes forman un subárbol, de forma que un árbol es una estructura recursiva. Nivel 0 A Nivel 1 Nivel 2 B C E* F D* Nivel 3 G H* I* Altura 4 Momento 9 Recorrido, A, B, C, D, E, F, G, H, I. Figura 1.4 Estructura arborescente a varios niveles. 20 El árbol, en este modelo, se recorre en preorden; es decir, raíz, subárbol izquierdo y subárbol derecho. [Castaño, M. (1999)]. 1.3.4 MODELO ORIENTADO A OBJETOS El modelo de datos orientado a objetos es una extensión de la muestra de programación orientado a objetos. Los objetos entidad que se utilizan en los programas orientados a objetos son semejantes a las entidades que se utilizan en las bases de datos orientadas a objetos puras, pero con una gran diferencia: los objetos del programa desaparecen cuando el programa termina su ejecución, mientras que los objetos de la base de datos permanecen. A esto se le denomina persistencia. 1.3.4.1 RELACIONES Las bases de datos relacionales representan las relaciones mediante las claves ajenas. No tienen estructuras de datos que formen parte de la base de datos y que representen estos enlaces entre tablas. Las relaciones se utilizan para hacer concatenaciones (join) de tablas. Por el contrario, las bases de datos orientadas a objetos implementan sus relaciones incluyendo en cada objeto los identificadores de los objetos con los que se relaciona. Un identificador de objeto es un atributo interno que posee cada objeto. Ni los programadores, ni los usuarios que realizan consultas de forma interactiva, ven o manipulan estos identificadores directamente. Los identificadores de los objetos los asigna el SGBD y es él el único que los utiliza. El identificador puede ser un valor arbitrario o puede incluir la información necesaria para localizar el objeto en el fichero donde se almacena la base de datos. Por ejemplo, el identificador puede contener el número de la página del fichero donde se encuentra almacenado el objeto, junto con el desplazamiento desde el principio de la página. Hay dos aspectos importantes a destacar sobre este método de representar las relaciones entre datos: 21 Para que el mecanismo funcione, el identificador del objeto no debe cambiar mientras éste forme parte de la base de datos. Las únicas relaciones que se pueden utilizar para consultar la base de datos son aquellas que se han predefinido almacenando en atributos los identificadores de los objetos relacionados. Por lo tanto, una base de datos orientada a objetos pura es navegacional, como los modelos prerrelacionales (el modelo jerárquico y el modelo de red). De este modo se limita la flexibilidad del programador/usuario a aquellas relaciones predefinidas, pero los accesos que siguen estas relaciones presentan mejores prestaciones que en las bases de datos relacionales porque es más rápido seguir los identificadores de los objetos que hacer operaciones de concatenación (join). El modelo orientado a objetos permite los atributos multivaluados, agregaciones a las que se denomina conjuntos (sets) o bolsas (bags). Para crear una relación de uno a muchos, se define un atributo en la parte del uno que será de la clase del objeto con el que se relaciona. Este atributo contendrá el identificador de objeto del padre. La clase del objeto padre contendrá un atributo que almacenará un conjunto de valores: los identificadores de los objetos hijo con los que se relaciona. Cuando el SGBD ve que un atributo tiene como tipo de datos una clase, ya sabe que el atributo contendrá un identificador de objeto. Las relaciones de muchos a muchos se pueden representar directamente en las bases de datos orientadas a objetos, sin necesidad de crear entidades intermedias. Para representar la relación, cada clase que participa en ella define un atributo que contendrá un conjunto de valores de la otra clase con la que se relacionará. Aunque el hecho de poder representar relaciones de muchos a muchos parece aportar muchas ventajas, hay que tener mucho cuidado cuando se utilizan. En primer lugar, si la relación tiene datos, será necesario crear una entidad intermedia que contenga estos datos. Por ejemplo, en la relación de los artículos con los proveedores, en donde cada proveedor puede tener un precio distinto para un mismo artículo. En este caso, la relación de muchos a muchos se 22 sustituye por dos relaciones de uno a muchos, como se haría en una base de datos relacional. En segundo lugar, se puede diseñar una base de datos que contiene relaciones de muchos a muchos en donde o bien se pierde información, o bien se hace imposible determinar las relaciones con precisión. También en estos casos la solución es incluir una entidad intermedia que represente la relación. Ya que el modelo orientado a objetos soporta la herencia, una base de datos orientada a objetos también puede utilizar la relación “es un” entre objetos. Por ejemplo, en una base de datos para un departamento de recursos humanos habrá una clase Empleado con diversos atributos: nombre, dirección, número de la seguridad social, fecha de contrato y departamento en el que trabaja. Sin embargo, para registrar el modo de pago de cada empleado hay un dilema. No a todos los empleados se les paga del mismo modo: a algunos se les paga por horas, mientras que otros tienen un salario mensual. La clase de los empleados que trabajan por horas necesita unos atributos distintos que la clase de los otros empleados. En una base de datos orientada a objetos se deben crear las dos subclases de empleados. Aunque el SGBD nunca creará objetos de la clase Empleado, su presencia en el diseñó clarifica el diseño lógico de la base de datos y ayuda a los programadores de aplicaciones permitiéndoles escribir sólo una vez los métodos que tienen en común las dos subclases (serán los métodos que se sitúan en la clase Empleado). En teoría, una base de datos orientada a objetos debe soportar dos tipos de herencia: la relación “es un” y la relación “extiende”. La relación “es un”, que también se conoce como generalización–especialización, crea una jerarquía donde las subclases son tipos específicos de las superclases. Con la relación “extiende”, sin embargo, una clase expande su superclase en lugar de estrecharla en un tipo más específico. Por ejemplo, en la jerarquía de la clase Empleado, al igual que son necesarias clases para los empleados que realizan cada trabajo específico, hace falta guardar información adicional sobre los directores, que son empleados pero que también tienen unas características específicas. La base de datos incluirá una clase Director con un atributo para los empleados a los que 23 dirige. En este sentido un director no es un empleado más específico sino un empleado con información adicional. Una de las cosas que es difícil de manejar en las bases de datos relacionales es la idea de las partes de un todo, como en una base de datos de fabricación, en la que hace falta saber qué piezas y qué componentes se utilizan para fabricar un determinado producto. Sin embargo, una base de datos orientada a objetos puede aprovechar la relación denominada “todo–parte” en la que los objetos de una clase se relacionan con objetos de otras clases que forman parte de él. En el caso de la base de datos de fabricación, la clase Producto se relacionará con las clases Pieza y Componente utilizando una relación “todo– parte”. Este tipo de relación es una relación de muchos a muchos con un significado especial. Un producto puede estar hecho de muchas piezas y muchos componentes. Además, una misma pieza o un mismo componente se puede utilizar para fabricar distintos productos. El identificar esta relación como “todo– parte” permite que el diseño sea más fácil de entender. 1.3.4.2 INTEGRIDAD DE LAS RELACIONES Para que las relaciones funcionen en una base de datos orientada a objetos pura, los identificadores de los objetos deben corresponderse en ambos extremos de la relación. Por ejemplo, si los técnicos de una empresa de control de calidad se deben relacionar con las obras de construcción que supervisan, debe haber algún modo de garantizar que, cuando un identificador de un objeto Obra se incluye en un objeto Técnico, el identificador de este mismo objeto Técnico se debe incluir en el objeto Obra anterior. Este tipo de integridad de relaciones, que es de algún modo análogo a la integridad referencial en las bases de datos relacionales, se gestiona especificando relaciones inversas. La clase Técnico tiene un atributo de tipo conjunto llamado supervisa. Del mismo modo, la clase Obra tiene un atributo llamado es_supervisada. Para garantizar la integridad de esta relación, un SGBD orientado a objetos puro deberá permitir que el diseñador de la base de datos pueda especificar dónde debe aparecer el identificador del objeto inverso, como por ejemplo: 24 relationship set<Obra> supervisa inverse Obra::es_supervisada en la clase Técnico y: relationship Técnico es_supervisada inverse Técnico::supervisa en la clase Obra. Figura 1.5 Código de ejemplo de modelo de datos orientado a objetos Siempre que un usuario o un programa de aplicación inserta o elimina un identificador de objeto de la relación supervisa en un objeto Técnico, el SGBD actualizará automáticamente la relación es supervisada en el objeto Obra relacionado. Cuando se hace una modificación en el objeto Obra, el SGBD lo propagará automáticamente al objeto Técnico. Del mismo modo que en las bases de datos relacionales es el diseñador de la base de datos el que debe especificar las reglas de integridad referencial, en las bases de datos orientadas a objetos es también el diseñador el que debe especificar las relaciones inversas cuando crea el esquema de la base de datos. [Marqúes, M (2002)]. 1.4 ANTECEDENTES DE LAS BASES DE DATOS ESPACIO-TEMPORALES 1.4.1 BODEGA DE DATOS Se dice que una Bodegas de Datos, también conocida como Datawarehouse, es la construcción de grandes repositorios integrados de datos que pueden ser generados internamente o recibidos de fuentes externas, organizados de tal manera que facilitan el proceso de toma de decisiones. Se han construido repositorios más pequeños, rápidos de implementar y fáciles de usar conocidos como Almacenes de Datos (Data Marts) que son organizados para aplicaciones específicas almacenando los datos de un área en especial. 25 Además son consideradas como la solución integral y oportuna para desarrollar las estrategias de negocios. Al mismo tiempo es una técnica para consolidar y administrar datos de diversas fuentes con el propósito de responder preguntas de negocios y tomar decisiones. En realidad existen muchas de definiciones de Bodegas de Datos o Datawarehouse, pero la más conocida propuesta fue en 1992, por Inmon (considerado el padre de las Bases de Datos) donde dijo que “un Datawarehouse es una colección de datos orientados a temas, integrados, no – volátiles y variantes en el tiempo, organizados para soportar necesidades empresariales”. Sin embargo, en 1993, Susan Osterfeldt publicó una nueva definición de Datawarehouse: “Yo considero a DW como algo que provee dos beneficios empresariales reales: Integración y Acceso de Datos. DW elimina una gran cantidad de datos inútiles y no deseados, como también el procesamiento desde el ambiente operacional clásico”. 1.4.1.1 CARACTERISTICAS DE LA BODEGA DE DATOS Las Bodegas de Datos se caracterizan por ser: Integradas: porque consolidan y centralizan datos derivados de toda la organización. Orientadas a un tema particular: ya que los datos que contienen, están organizados por temas, totalizados y optimizados para dar respuestas a preguntas de diversas áreas funcionales de la organización. Variantes en el tiempo: porque contrario a las Bases de Datos operacionales que se centran en los datos actuales, las Bodegas de Datos representan el flujo de información a través del tiempo. No volátiles: porque una vez que los datos son almacenados, estos nunca son removidos, ya que representan la historia de la organización. [Luque, A. (2006)]. Una Bodega de Datos se modela generalmente de forma multidimensional. Esta organización de la información facilita el análisis de los datos y la concepción 26 de las consultas. El modelo multidimensional como su nombre lo sugiere, consiste de un conjunto de dimensiones que son asociadas a un fenómeno medible de interés para una organización, dicho fenómeno es denominado hecho; las dimensiones han sido tratadas de forma textual (alfanumérica) y las medidas de un hecho de forma numérica. [Moreno, F y Arango, F. (2007)]. 1.4.1.2 VENTAJAS DE LA BODEGA DE DATOS Entre las ventajas de las bodegas de datos se encuentran: El usuario final, mejora el acceso a una amplia variedad de datos. Visualización de datos multidimensional. La toma de decisiones de negocios pueden obtener diversos tipos de informes sobre la evolución. Esto puede ser útil para futuras inversiones. Aumenta la consistencia de los datos. Aumenta la productividad y reduce los costos de computación. Combinar datos de diferentes fuentes, en un solo lugar. 1.4.1.3 DESVENTAJAS DE LA BODEGA DE DATOS. Algunas de las desventajas de las bodegas de datos son: Extracción, limpieza y carga de datos puede ser mucho tiempo. La seguridad Proporcionar capacitación de los usuarios finales. [Ghislaine, N. (2006)]. 1.4.2 MINERIA DE DATOS Desde un punto de vista académico el término data mining es una etapa dentro de un proceso mayor, llamado extracción de conocimiento en bases de datos, en el entorno comercial. Lo que en verdad hace la minería de datos es reunir las ventajas de varias áreas como la Estadística, la Inteligencia Artificial, la Computación Gráfica, las Bases de Datos y el Procesamiento Masivo, principalmente usando como materia prima las bases de datos. Una definición tradicional es la siguiente: 27 Un proceso no trivial de identificación válida, novedosa, potencialmente útil y entendible de patrones comprensibles que se encuentran ocultos en los datos. Desde el punto de vista empresarial, lo definimos como: La integración de un conjunto de áreas que tienen como propósito la identificación de un conocimiento obtenido a partir de las bases de datos que brinden ayuda hacia la toma de decisión. La idea de minería de datos no es nueva. Ya desde los años sesenta los estadísticos manejaban términos como data fishing, data mining o data archeology con la idea de encontrar correlaciones sin una hipótesis previa en bases de datos con ruido. A finales de los años ochenta sólo existían un par de empresas dedicadas a esta tecnología; en 2002 existen más de 100 empresas en el mundo que ofrecen alrededor de 300 soluciones. Las listas de discusión sobre este tema las forman investigadores de más de ochenta países. Esta tecnología ha sido un buen punto de encuentro entre personas pertenecientes al ámbito académico y al de los negocios. La minería de datos es una tecnología compuesta por etapas que integra varias áreas y que no se debe confundir con un gran software. Durante el desarrollo de un proyecto se usan diferentes aplicaciones software en cada etapa que pueden ser estadísticas, de visualización de datos o de inteligencia artificial, principalmente. Actualmente existen aplicaciones o herramientas comerciales de minería de datos muy poderosas que contienen un sin fin de utilerías que facilitan el desarrollo de un proyecto. Sin embargo, casi siempre acaban complementándose con otra herramienta. Las técnicas de la minería de datos son el resultado de un largo proceso de investigación y desarrollo de productos. Esta evolución comenzó cuando los datos de negocios fueron almacenados por primera vez en computadoras, y continuó con mejoras en el acceso a los datos, y más recientemente con tecnologías generadas para permitir a los usuarios navegar a través de los datos en tiempo real. Minería de datos toma este proceso de evolución más allá del acceso y navegación de los datos, hacia la entrega de información prospectiva y proactiva. 28 En la evolución desde los datos de negocios a información de negocios, cada nuevo paso se basa en el previo. Por ejemplo, el acceso a datos dinámicos es crítico para las aplicaciones de navegación de datos, y la habilidad para almacenar grandes bases de datos es crítica para la minería de datos. Los componentes esenciales de la tecnología de Minería de datos han estado bajo desarrollo por décadas, en áreas de investigación como estadísticas, inteligencia artificial y aprendizaje de máquinas. Hoy, la madurez de estas técnicas, junto con los motores de bases de datos relacionales, hicieron que estas tecnologías fueran prácticas para los entornos de datawarehouse actuales. Varias herramientas de la minería de datos actualmente operan fuera del datawarehouse, requiriendo pasos extras para extraer, importar y analizar los datos. Además, cuando nuevos conceptos requieren implementación operacional, la integración con el datawarehouse simplifica la aplicación de los resultados desde la minería de datos. El Datawarehouse analítico resultante puede ser aplicado para mejorar procesos de negocios en toda la organización, en áreas tales como manejo de campañas promocionales, detección de fraudes, lanzamiento de nuevos productos, etc. El punto de inicio ideal es un datawarehouse que contenga una combinación de datos de seguimiento interno de todos los clientes junto con datos externos de mercado acerca de la actividad de los competidores. Este datawarehouse puede ser implementado en una variedad de sistemas de bases relacionales y debe ser optimizado para un acceso a los datos flexible y rápido. 1.4.2.1 CARACTERISTICAS Y OBJETIVOS DE LA MINERIA DE DATOS Explorar los datos que se encuentran en las profundidades de las bases de datos, como almacenes de datos, que algunas veces contienen información almacenada durante varios años. El entorno de la minería de datos suele tener una arquitectura clienteservidor. 29 Las herramientas de minería de datos ayudan a extraer el mineral de la información enterrado en archivos corporativos o en registros públicos, archivados. El minero es, muchas veces el usuario final con poca o ninguna habilidad de programación, facultado por poderosas herramientas indagatorias para efectuar preguntas adecuadas y obtener rápidamente respuestas. Hurgar y sacudir a menudo implica el descubrimiento de resultados valiosos e inesperados. Las herramientas de la minería de datos se combinan fácilmente y pueden analizarse y procesarse rápidamente. [Vallejos, S. (2006)]. 1.4.2.2 VENTAJAS DE LA MINERIA DE DATOS A continuación se mencionan algunas de las ventajas de la minería de datos: Los modelos son fáciles de entender: Personas sin una importante experiencia en estadísticas (como un analista financiero o ejecutivos en general) pueden interpretar el modelo y compararlo con sus propias ideas; recordemos que en la organización de hoy, son los mismos ejecutivos los que deben “meter las manos” a las bases de datos para obtener la información que necesitan. Así, el usuario gana más conocimientos sobre el comportamiento de los clientes y puede (y debe) usar esta ventaja para optimizar el proceso de negocios de la organización. Enormes bases de datos pueden ser analizadas: Estas Bases de datos pueden ser enormes tanto en largo como en ancho. Por ejemplo, para cada cliente se puede tener cientos de atributos que contienen información detallada; y además tener miles de registros de clientes. La minería de datos descubre información que no se esperaba obtener: Como muchos modelos diferentes son validados, algunos resultados inesperados tienden a aparecer. En muchos estudios, se ha descubierto que combinaciones particulares de factores entregan efectos inesperados que entregan valor a la compañía. 30 Los modelos son confiables: El modelo es probado y comprobado usando técnicas estadísticas antes de ser usado, luego las predicciones que se obtienen por el modelo son válidas y confiables. Los modelos se construyen de manera rápida: La minería de datos permite construir y generar modelos en sólo uno minutos u horas. El modelado se torna mucho más fácil puesto que muchos algoritmos son probados y sólo el mejor modelo es entregado al usuario. [Suherman, A. (s.f.)]. 1.4.2.3 DESVENTAJAS DE LA MINERIA DE DATOS Estas son algunas de las desventajas de la minería de datos: Problemas de privacidad. La privacidad personal ha sido siempre una de las principales preocupaciones en este país. En los últimos años, con el uso generalizado de Internet, las preocupaciones acerca de la privacidad han incrementado enormemente. Debido a la privacidad, algunas personas no compran en Internet. Tienen miedo de que alguien pueda tener acceso a su información personal y, a continuación, utilizar esa información en una forma poco ética, por lo que causa daño. Cuestiones de seguridad. Aunque las empresas tienen una gran cantidad de información personal disponible en línea acerca de nosotros, no tienen suficiente en los sistemas de seguridad para proteger esa información. Uno de los casos se presento en la compañía Ford Motor de crédito, deberá informar a 13.000 de los consumidores que su información personal incluyendo número de Seguro Social, dirección, número de cuenta y el historial de pagos se accede por los hackers que irrumpieron en una base de datos pertenecientes a la presentación de informes de crédito. Esta incidencia se ilustra que las empresas están dispuestas a revelar y compartir su información personal, pero no son el cuidado de la información correctamente. Con tanta información personal disponible, el robo de identidad puede convertirse en un verdadero problema. Uso indebido de la información / información inexacta. Obtener tendencias a través de minería de datos destinados a ser utilizados para fines de mercadotecnia o para algún otro fin ético, puede ser usurpada. Las empresas contrarias a la ética 31 o la gente pueden utilizarse la información obtenida a través de minería de datos para aprovechar de las personas vulnerables o discriminadas en contra de un determinado grupo de personas. Además, la técnica de minería de datos no es un 100 por ciento exacta, por lo tanto, ocurren errores que pueden tener graves consecuencias. [Suherman, A. (s.f.)]. 32 CAPÍTULO II: BASE DE DATOS ESPACIO-TEMPORALES En este capítulo se explican lo que son las bases de datos temporales y espaciales, así como los tipos de datos de estas últimas y su estructura, además de conocer los lenguajes de consulta y su administrador. También se hace una comparación entre los lenguajes de consulta espacio-temporales SQLST y Guting mediante un ejemplo del uso de los mismos, esto, una vez que se ha comprendido el análisis de este tipo de bases de datos para así llegar a un resultado de dicha comparación. 2.1 BASES DE DATOS TEMPORALES Estas Bases de Datos soportan algún tipo de dominio de tiempo manejado internamente por el sistema administrador de la base de datos. Existen tres clases de Bases de Datos Temporales en función de la forma en que manejan el tiempo: De forma transaccional (transaction time): registran el tiempo de acuerdo al momento en que se almacena un hecho, es decir, en el orden en que se procesan las transacciones. Este registro no necesariamente coincide con el tiempo real en que se produjeron los eventos, mas bien, es acorde al tiempo en que la base tomó conocimiento del evento. Estas bases de datos no permiten modificar el pasado. De tiempo vigente o válido (valid time): soportan el tiempo en que el hecho ocurrió en la realidad, que puede no coincidir con el momento de su registro. El orden de ocurrencia de los eventos puede diferir del orden de su registro. Este sistema permite realizar correcciones sobre los datos registrados, es decir que los estados anteriores se pueden modificar, en dicho caso, solo se mantiene la última versión de cada estado. Bitemporales: integran la dimensión transaccional y la dimensión vigente, a través del versionado de los estados, es decir, cada estado se puede modificar para actualizar el conocimiento de la realidad pasada, presente o futura, pero esas 34 modificaciones se realizan generando nuevas versiones de los mismos estados. [Pascal A. (s.f.)] 2.2 BASES DE DATOS ESPACIALES Las Bases de Datos Espaciales o Multidimensionales ofrecen tipos de datos espaciales en su modelo de datos y un lenguaje de consulta para manipularlos. En un sistema informático estos datos espaciales se representan por puntos, líneas, polígonos, regiones, etc., que se les conoce con el nombre de objetos espaciales. Para responder a consultas relacionadas con propiedades espaciales, se implementan algoritmos eficientes sobre índices espaciales creados a partir de esos objetos. [Pascal A. (s.f.)] Los datos espaciales son muy particulares ya que cuentan con las siguientes propiedades: Tienen una estructura compleja. Un dato espacial puede estar compuesto de un sólo punto o de varios cientos de polígonos arbitrariamente distribuidos en el espacio y, por lo tanto, no se pueden almacenar en una sola tupla. Las bases de datos espaciales tienden a ser muy grandes. Un ejemplo de esto es un mapa geográfico puede ocupar varios gigabytes de almacenamiento. No existe un álgebra estándar definida sobre los datos espaciales y, por lo tanto, no existe un conjunto de operadores estandarizados. El conjunto de operadores es altamente dependiente del dominio de la aplicación, aunque algunos operadores son más comunes que otros. La mayoría de los operadores no son cerrados. La intersección de dos polígonos, por ejemplo, no necesariamente entrega como resultado otro polígono. Esta propiedad es particularmente relevante cuando se quieren componer operadores tal como se hace con los operadores relacionales. El costo computacional de implementar los operadores espaciales es mucho mayor que los operadores relacionales. 35 2.2.1 TIPOS DE DATOS Uno de los principales problemas de los tipos de datos espaciales es que es difícil definir un conjunto de operadores (relaciones) lo suficientemente general para cubrir todas las aplicaciones. Es decir, los operadores espaciales son altamente dependientes de la aplicación. Sin embargo, es posible definir algunos operadores espaciales (por ejemplo la intersección) que son más comunes que otros. Un objeto o en una base de datos espacial se define, normalmente, mediante varios atributos no-espaciales y un atributo espacial de algún tipo. Para modelar los atributos espaciales de los objetos se utilizan tres abstracciones fundamentales y que son punto, línea y región o polígono (ver figura 2.1). Un punto representa (el aspecto geométrico) un objeto para el cual sólo interesa su posición en el espacio. Algunos objetos puntos son hospitales, edificios, estaciones de trenes, etc. Una línea es una abstracción que se utiliza para modelar objetos tales como ríos, líneas de trenes, carreteras, líneas telefónicas, etc. Finalmente, una región permite modelar objetos con cobertura espacial (spatial extent). Por ejemplo, países, predios agrícolas, etc. Figura 2.1 Tres tipos de datos espaciales: punto, línea y región. Existen varios tipos de operaciones sobre objetos espaciales siendo las más comunes las topológicas, métricas (atributos), y de localización. (Gutiérrez, G. (2007)]. Las operaciones topológicas, establecen relaciones entre objetos espaciales las cuales se mantienen ante operaciones de rotación y traslación. 36 Las operaciones o relaciones métricas permiten obtener atributos numéricos de un objeto espacial o valores entre ellos que los relacionan. Por ejemplo, el área de una región, la longitud de una línea o la distancia entre dos puntos o entre una línea y un punto. Las relaciones de orientación pueden ser básicamente de dos tipos: absoluta o relativa a un objeto. Las relaciones del primer tipo se definen en el contexto de un sistema de referencia global. Algunas de estas relaciones son: norte, sur, este, oeste, sur-este, sur-oeste, etc. Las relaciones en el segundo caso (relativa a un objeto), se definen en base a un objeto dado. Por ejemplo izquierda, derecha, arriba, abajo, etc. [Gutiérrez, G. (2007)]. 2.2.2 ESTRUCTURA DE DATOS ESPACIALES Datos Espaciales es el término utilizado para describir los datos que pertenecen al espacio ocupado por los objetos en las Bases de Datos. Los datos espaciales consisten del conjunto de objetos espaciales construidos con: puntos, líneas, regiones, rectángulos, superficies, volúmenes, etc. Algunos ejemplos pueden ser las ciudades, ríos, estados, etc. Dicho espacio puede ser discreto o continuo, limitado o no, si el espacio se considera limitado normalmente se aplica en un rango de 70 * 106mts. Así mismo los datos espaciales pueden contener datos no espaciales como el nombre de ciudad, sus habitantes, etc. Las consultas que pueden ser hechas sobre este tipo de datos suelen involucrar relaciones entre los objetos, dadas por su ubicación u ocupación en el espacio, lo cual indica que la consulta es espacial. Para responder consultas espaciales se utilizan los métodos espaciales de indexación, como ejemplo, encontrar todas las ciudades dentro de una región. Los métodos se clasifican como de puntos multidimensionales (MAPM) y espaciales (MAE). [Besembel, I. (2004)]. 37 2.2.3 DEFINICION DE OBJETOS ESPACIALES Los motores de bases de datos espaciales (SDBMS), como Oracle Spatial y PostGIS, adoptan el estándar para la definición de objetos espaciales del OpenGIS: OpenGIS: Simple Features Specification for SQL. El modelo conceptual de los objetos espaciales está formado por tres tablas: GEOMETRY_COLUMN, FEATURE_TABLE, SPATIAL_REF_SYS. Como se muestra en la tabla 2.1 GEOMETRY_COLUMNS SPATIAL_REF_SYS F_TABLE_CATALOG SRID F_TABLE_SCHEMA AUTH_NAME F_TABLE_NAME SRTEXT F_GEOMETRY_COLUMN PROJ4TEXT COORD_DIMENSION FEATURE_TABLE <ATRIBUTOS> GID (Geometry column) <ATRIBUTOS> SRID TYPE Tabla 2.1 Modelo conceptual de objetos espaciales. A través de estas tablas se puede conocer: El nombre de la tabla donde se encuentra el elemento espacial (F_TABLE_NAME) El nombre del atributo que define la geometría (F_GEOMETRY_COLUMN) Tipo de Geometría (TYPE): point, linestring, polygon, multipoint, multilinestring, multipolygon, geometrycollection. Las coordenadas que definen el elemento espacial almacenadas en la columna geométrica (GID) usando el estándar Well-known text (WKT) Sistema de referencia espacial (SRID). La dimensión espacial (COORD_DIMENSION). 38 2.2.3.1 DEFINICION DE FUNCIONES ESPACIALES El estándar para la implementación de objetos espaciales del OpenGIS define tres categorías de funciones: (1) básicas, (2) consulta de relación espacial y (3) análisis. Como se muestra en la tabla 2.2. TIPO FUNCION POSTGIS 1 Tipo de Geometría Geometrytype (geometry):string 1 Dimensión Dimension (geometry): integer 1 Sistema de Referencia Srid (geometry): integer 1 Geometría en formato WKT Astext (geometry): text 2 Disjuntos Disjoint (geomtry, geometry): bool 2 Intersección Intersects (geometry, geometry): bool 2 Adyacencia Touches (geometry, geometry): bool 3 Intersección Intersection (geometry, geometry): geometry 3 Unión Geomunion (geometry, geometry): geometry 3 Buffer Buffer (geometry, float8[int ,4]): geometry Tabla 2.2 Estándar para la implementación de objetos espaciales 2.2.3.2 ACCESO A LOS DATOS ESPACIALES El acceso a los datos espaciales a través de lenguaje SQL está limitado a un grupo reducido de usuarios. Existen numerosas alternativas de software libre (OpenSource) que incorporan capacidades de conexión con bases de datos espaciales y en especial con PostGIS. Sistemas de información geográfica de escritorio: GvSIG, Quantum-GIS Sistemas servidores de datos: MapServer, GeoServer Paquetes de librerías 39 Algunos de estos software permiten recuperar datos espaciales desde un repositorio de datos espaciales para convertirlo en un Shape y vise versa. [Gutiérrez, M (s.f.)] 2.2.4 LENGUAJES DE CONSULTAS ESPACIALES Los lenguajes visuales de consultas espaciales se distinguen por la utilidad que les brindan a los usuarios, destacando el uso de representaciones o íconos metafóricos, permitiendo una facilidad y amigabilidad a las aplicaciones computacionales, por ejemplo para las consultas espaciales. Las indicaciones para este tipo de lenguajes de consultas son los siguientes: La implementación de las representaciones gráficas, los diálogos que utilizan dispositivos de selección, leyendas y variantes de presentación gráfica como por ejemplo los colores, patrones, y símbolos. La utilidad de SQL para las bases de datos espaciales como lo demuestra GEOQL en cuya estructura se indica y añade el concepto de geometría en términos de los límites de líneas de objetos espaciales, operadores espaciales entre objetos geográficos. Un ejemplo de lenguaje de este tipo es GPL (Graphical Presentation Language) que se encarga de mostrar un despliegue que maneja la información acerca de la elaboración de consultas y las secciones que constan la estructura de este lenguaje son las siguientes: 1.-Modo de despliegue: se encarga de proporcionar los resultados de las consultas en un dibujo sencillo. 2.-Variables visuales: estas variables son los colores, patrones y símbolos que permiten especificar la presentación gráfica de los objetos espaciales. 3.-Escala y Ventana: se refieren a la proporción o área donde la presentación gráfica será desplegada. 40 4.-Contexto: es la interpretación de una representación gráfica con base al ambiente que se tenga. 5.-Contenido: es la combinación lógica de las consultas que se elaboren y pueden ser mostradas en un dibujo sencillo, como consecuencia se tendrá un mecanismo de control y quien asume la función de control es el usuario porque examina lo que se demuestra la combinación mencionada. Otros aspectos son los sistemas de bases de datos espaciales y no espaciales denominado SAND (Spatial and Nonspatial Database) la finalidad de éstos es separar el almacenamiento de esos tipos de datos. Las características de éste son las siguientes: Estrategias: éstas extienden el enfoque no espacial para efectuar operaciones espaciales. Evaluaciones: se refiere al orden de las operaciones espaciales, escogiendo primero entre el desempeño de los datos espacial y no espacial, es decir, al utilizar índices en ambos tipos de datos y segundo al ejecutar las operaciones espaciales mientras se accesa a los datos. Además el enlace entre los datos espaciales y no espaciales es bidireccional. Indican unión como sigue: La estructura de un dato espacial es asociada con cada atributo no espacial en un esquema que se utilice para guardar todas las instancias de los datos de los atributos espaciales de acuerdo a un conjunto de objetos homogéneos. Esta estructura sirve como un índice para los objetos espaciales y es un ambiente para la ejecución de las relaciones espaciales. Los enlaces son denominados como ‘forward’ y ‘backward’, el primero se usa para recuperar la información espacial de un objeto con respecto a la información no espacial de un objeto y el segundo obtiene la información no espacial de un objeto que está almacenado en una tupla, éste es mediante el identificador (id) de la tupla, la representación para estos enlaces se muestran en las figuras 2.2. y 2.3 41 Nonspatial attributes Spatial data structure region1 non_spatial data region1 region2 non_spatial data region2 region2 non_spatial data region2 region3 non_spatial data region3 region4 non_spatial data region4 Figura 2.2 Enlace ‘forward’ para la relación de regiones Nonspatial attributes Spatial data structure region1 non_spatial data region2 non_spatial data region1 region2 region2 non_spatial data region2 region3 non_spatial data region3 region4 non_spatial data region4 Figura 2.3 Enlace ‘backward’ para la relación de regiones 42 GEOQL utiliza operadores espaciales y trabaja con un sistema de administración de base de datos basado en SQL, la relación espacial es únicamente a un atributo espacial, considera datos espaciales y no espaciales. Las consultas se efectúan en cuatro etapas: 1.-Transformación lógica para eliminar limitantes redundantes y construir un árbol de consultas de modo que los índices espaciales sean utilizados. 2.-Descomponer las particiones del árbol para que las subconsultas espaciales y no espaciales sean elaboradas. 3.-Ejecución de alguna de las subconsultas anteriores. 4.-Con base a una subconsulta espacial, ésta es llevada a cabo por un procesador espacial auxiliar y que forma parte de el DBMS extendido y almacena los atributos espaciales. GRAL este es un sistema de bases de datos con tipos de datos geométricos y un lenguaje de consultas geométricas denominado geo-algebra relacional que efectúa el proceso de transformación y traducción de expresiones algebraicas, el formalismo empleado es distinto al Modelo de 9 intersecciones, facilitan la inclusión de nuevos tipos de datos espaciales y operaciones. Los datos que se ocupan para las consultas son espaciales y no espaciales, la manera para usarlos es la siguiente: La estructura de datos espaciales es un filtro que produce un conjunto de objetos y con la estructura de datos no espaciales es posible refinar la descripción de los objetos y posteriormente producir el resultado. 2.2.4.1 IMPLEMENTACIONES DE CONSULTAS ESPACIALES Un objeto espacio-temporal se representa por un identificador de tipo de objeto geométrico (punto, línea, polígono), un conjunto de atributos y una lista que indica los estados por los que puede pasar un objeto. Los atributos pueden cambiar en los diferentes estados de un objeto y permiten dar una semántica a los objetos geométricos. La descripción del objeto geométrico indica también su 43 localización y representa su dinámica (la movilidad de un objeto). La localización temporal está representada en la lista de estados. Algunos objetos espaciotemporales con un valor llamado ‘que no cambia’ son las capas geológicas, porque no cambia en tiempo, sin embargo pudiera ocurrir para cualquier validez temporal permanente. Es decir, por las variaciones que éstas en un momento dado sufren. Este modelo permite también que los atributos que describan a un objeto sean multivaluados. Las consultas espacio-temporales se pueden efectuar tomando adicionalmente la representación temporal basada en intervalos. En los intervalos se pueden representar cambios en los atributos que describen un objeto. Un ejemplo de consulta que se puede realizar consiste en identificar el estado de una carretera inundada y el tiempo que un vehículo llegará a esa zona inundada. Los conductores de los vehículos pueden tomar decisiones en cuanto detenerse o dar marcha atrás y buscar alguna opción. Para el modelo topológico se usan cuatro elementos geométricos como tipos de datos elementales de la parte geométrica, los cuales son: punto, línea, superficie y volumen. La posición y forma de los elementos geométricos están descritas por vectores. [Gutiérrez, M (s.f.)] 2.2.5 ADMINISTRACION DE BASE DE DATOS ESPACIALES 2.2.5.1 ORACLE SPATIAL 11G Oracle ofrece la plataforma líder del sector para la administración de bases de datos espaciales. Oracle Spatial 11g incluye soporte nativo en Oracle Database 11g para todo tipo de datos y modelos geoespaciales, incluso los datos de vectores y raster, y modelos para topología y redes, cubriendo así las necesidades de los sistemas geoespaciales avanzados, como la administración de suelos, servicios y la seguridad interna/de defensa. Con 11g, Oracle Spatial es verdaderamente una plataforma completa para la administración de datos 44 geoespaciales– con soporte de los datos 3D que se encuentran en aplicaciones como la planificación urbana, la seguridad interna, y sistemas para producción de mapas basados, así como soporte de servicios web geoespaciales para una plataforma segura y sólida de la arquitectura orientada a servicios. El soporte espacial nativo y abierto de Oracle elimina el costo de sistemas separados, de propiedad, y es respaldado por todos los proveedores geoespaciales líderes. Solo Oracle ofrece seguridad, desempeño, escalabilidad y capacidad de administración líderes para los activos espaciales críticos almacenados en los tipos nativos de Oracle. Oracle brinda la plataforma de base de datos espacial más avanzada para implementaciones de tipo empresarial. Este informe destaca las características de Oracle Spatial, e incluye las nuevas características de 11g. Oracle Spatial 11g, una opción de Oracle Database Enterprise Edition, extiende Locator, y ofrece una base sólida para aplicaciones geoespaciales complejas que requieren más análisis y procesamiento espacial en Oracle Database. Oracle Spatial 11g es una plataforma completa para la administración de datos geoespaciales que tiene como fin cumplir con los requerimientos de cualquier sistema de información espacial o geoespacial. Soporta los principales tipos y modelos de datos espaciales, y supera los desafiantes requerimientos críticos para los negocios del sector público, defensa, logística, exploración de energía y ámbitos geográficos de negocio, y áreas como las ciencias biológicas. Las características de Oracle Spatial incluyen: • Avanzado sistema para referencias lineales • Más de 400 funciones espaciales como centroides y agregados (por ejemplo uniones y agregados definidos por usuarios) • Tipos de datos GeoRaster que administran nativamente imágenes raster georeferenciadas (por ejemplo: imágenes satelitales, datos en grid) de Oracle Database 11g • Soporte de más formatos de archivo para la carga y exportación, más metadatos y tipos de datos (nuevo en 11g) • Mejor facilidad de uso, confiabilidad y capacidad de administración (nuevo en 11g) 45 • Un modelo de datos para almacenar y analizar la estructura de red (gráfico) • Carga a pedido para redes espaciales muy grandes (nuevo en 11g) • Características avanzadas de análisis y modelos, como el manejo de base de datos por parte de los usuarios o atributos específicos de aplicaciones, soporte aritmético de procesos, planificación de duración (nuevo en 11g) • Un modelo o esquema de datos para almacenar y actualizar persistentemente la topología • Funciones analíticas espaciales • Soporte de tipos de datos de 3 dimensiones para modelos de ciudades y terrenos, y mundo virtual, soporte de producción de mapas. • Soporte de servicios web espaciales (WFS 1.0, WFS-T 1.0, CSW 2.0, OpenLS 1.1, seguridad de servicios web) (nuevo en 11g) • API Java espacial. Oracle Spatial se integra directamente con los proveedores de tecnología líderes para servicios de localización, mapeo y geoespacio. Debido a que los tipos de datos espaciales de Oracle son compatibles con los estándares abiertos, Oracle puede servir como repositorio central e interoperable de datos geoespaciales para proporcionar datos a cualquier aplicación. Los datos espaciales pueden compartirse más fácilmente entre los departamentos y las organizaciones, y en toda la empresa, de manera que usted pueda obtener un mayor retorno de los activos de datos espaciales y aún así reducir los costos. Para sus activos de datos espaciales críticos, solo Oracle puede brindar la seguridad, escalabilidad y el desempeño de la base de datos líder en la industria, para administrar datos multiterabyte y brindar servicios a comunidades con escenas o miles de usuarios. Únicamente utilizando el tipo de dato espacial nativo de Oracle se pueden aprovechar estas características: • Soporte de particionamiento para índices espaciales 46 • Consultas espaciales paralelas •Replicación (algunas características disponibles únicamente con Enterprise Edition) • Seguridad espacial de múltiples niveles. [Ihm, J. (2007)]. 2.3 BASES DE DATOS ESPACIO-TEMPORALES Las Bases de Datos que guardan objetos espaciales que cambian su tamaño y/o posición a través del tiempo se llaman Bases de Datos EspacioTemporales (BDET). Se requiere que una BDET sea capaz de representar modelos muy cercanos al mundo real, con todo el dinamismo que él implica, y administrar objetos que, básicamente, cambian su ubicación y/o forma a través del tiempo. Un aspecto importante de los movimientos de los objetos, es el escenario en el que éstos ocurren. Para categorizar varios enfoques de indexado se han usado tres escenarios diferentes: 1.- Movimiento sin restricciones: es aquel donde los objetos se mueven libremente dentro de la región en la que se encuentran. 2.- Movimiento restringido: en este escenario el movimiento de los objetos se encuentra restringido por elementos denominados infraestructuras, las cuales representan áreas “apagadas” para el movimiento y, de esta manera, no existen trayectorias donde hay este tipo de elementos. Se debe tener en cuenta que sobre estas áreas no es posible rutear objetos permitiendo movimientos en el resto del escenario. 3.- Movimiento restringido a redes: al tener una red predefinida, los objetos que se mueven en ella tienden a seguir los diferentes caminos que la misma presenta. [Giraudi D, Peñalver G. y Retamal G. (s.f)] La información geográfica se utiliza cada vez mas como apoyo en diferentes tipos de aplicaciones y en distintos niveles organizativos (operativo, táctico y estratégico), pero las necesidades de los usuarios en relación al uso de la información geográfica son mucho más complejas. Estas necesidades están 47 representadas en el tiempo y el espacio, es decir se trata de la explotación de Bases de Datos Espacio–Temporales. Las Bases de Datos Espacio-Temporales están compuestas de objetos espaciales que cambian su posición y/o forma a lo largo del tiempo. El objetivo es modelar y representar la naturaleza dinámica de las aplicaciones en el mundo real. Algunos ejemplos de estas aplicaciones se pueden encontrar en el ámbito del transporte, medioambiental y en aplicaciones multimedia. [Gutiérrez, M (s.f.)] Existe un marco conceptual para la representación del análisis espacio– temporal. Esta estructura está compuesta de tres dominios: el dominio semántico (descriptivo), el dominio temporal y el dominio espacial. Las relaciones entre los tres dominios establecen todas las posibilidades asociadas que permiten definir las consultas en información geográfica. Las consultas descriptivas (dominio semántico) corresponden a las consultas que se realizan habitualmente con los sistemas de gestión de datos tradicionales. Por ejemplo, basta con efectuar las consultas sobre los atributos descriptivos (para una ciudad: el nombre, la población, el condado, la actividad económica, etc) para obtener la información descriptiva requerida. Las consultas espaciales (dominio espacial) se refieren a la medida de las dimensiones de una entidad geométrica (longitud, área, volumen) o entre las entidades geométricas (distancia, dirección). También se trata de la determinación de la presencia o ausencia de relaciones espaciales que existe entre las entidades geométricas (división, intersección). Las consultas temporales (dominio temporal) se refieren a la medida de todas las dimensiones temporales de un objeto (duración), estas consultas también definen la ausencia o la presencia de relaciones temporales que existe entre los objetos. [Cely W., y Bedard Y., (s.f.)] Las Bases de Datos Espacio-Temporales integran características de las bases de datos espaciales o multidimensionales, con características de las bases 48 de datos temporales, para permitir de manera eficiente consultas que involucran ambos aspectos. Una aplicación común por este modelo es la que realiza el seguimiento de objetos en movimientos que reporten su ubicación mediante dispositivos GPS. En otras aplicaciones, en lugar de cambiar de ubicación los objetos pueden cambiar de forma e incluso de identidad. Los sistemas de Bases de Datos Espacio–Temporales mantienen datos sobre el pasado y el presente y pueden, en algunos casos, realizar predicciones sobre el futuro. Las consultas típicas son de dos clases: time slice queries y time interval (o windows queries). Las primeras consultas se realizan sobre un momento dado, como por ejemplo “buscar todos los objetos que estén en un área en un instante determinado”, mientras que las segundas, consultan un intervalo de tiempo, “buscar todos los objetos que crucen un área entre el momento T1 y el momento T2” algunas consultas sólo tienen sentido sobre el pasado, otras sólo sobre el presente, otras sobre el futuro y otras sobre cualquiera de los tres. Los métodos de acceso en bases de datos espacio-temporales se pueden clasificar en tres grupos, de acuerdo al tipo de consulta hacia el cual están orientados: Recuperación de información histórica: estos métodos permiten responder a las consultas time slice query y interval query sobre el pasado. Recuperación de trayectoria: en este caso se requiere mantener la trayectoria que siguen objetos en movimiento. Predicción de localización: estos métodos permiten calcular la posición futura de los objetos, en base a su posición actual y su patrón de movimiento. Otra clasificación de los métodos de acceso es según la estrategia de implementación que utilizan: Métodos que tratan el tiempo como otra dimensión. Métodos que incorporan información sobre el tiempo en el índice Métodos que utilizan superposición (overlapping) de la estructura, para representar la secuencia de estados en función del tiempo. [Pascal A. (s.f.)] 49 2.3.1 ANALISIS ESPACIO–TEMPORAL Las consultas espacio–temporales utilizan las propiedades temporales y espaciales de un objeto así como relaciones temporales y espaciales a partir de las primitivas (temporales y geométricas) de los objetos. Podemos clasificar el análisis espacio–temporal según el nivel de detalle de los datos geográficos (detallados vs. agregados), el nivel de complejidad (uní-temático vs multi-temático) y el alcance temporal de los datos (uní- época vs. multi-época). Algunos ejemplos de estos análisis son: Análisis de los distintos tipos de accidentes en función de su posición en la red de carreteras, el estado de la calzada, el tipo de pavimentación, etc. Análisis de las estadísticas de los estudiantes según su origen, ultimo titulo, fecha de inscripción, etc. Análisis de investigación y rescate de náufragos según la posición, las características de las embarcaciones, las condiciones climáticas, etc. Análisis del resultado de los atletas de velocidad en función su posición, trayectoria, condición de tiempo, técnica, velocidad, etc. [Cely, W y Bedard, Y. (s.f.)] 2.3.2 LENGUAJES DE CONSULTA ESPACIO-TEMPORALES 2.3.2.1 SQLST SQLST es un lenguaje para el manejo de información espacio-temporal. Es una extensión minimalista del SQL estándar, ya que preserva su estructura y sólo añade tipos de datos temporales (DAY), espaciales (POINT,LINE y REGION) y operadores (ÁREA, OVERLAP, MOVING_DISTANCE). SQLST es una extensión de SQL, un lenguaje de consulta para el manejo de información temporal. El tiempo se representa discretamente, así los cambios de las geometrías, ya sea en forma o posición, son discretos. 50 2.3.2.2 EL LENGUAJE DE GUTING Se ha propuesto un lenguaje de consulta para el manejo de objetos móviles (se soportan cambios continuos de las geometrías, ya sea en forma o posición). Además de tipos de datos móviles como MBOOL, MINTEGER,MPOINT, MLINE y MREGION, que combinan los tipos de datos primitivos (BOOLEAN, INTEGER) o espaciales (POINT, LINE y REGION) con información temporal. El lenguaje es de tipo SQL, aunque presenta un carácter procedural ya que posee construcciones como la asignación de variables. 2.3.2.3 COMPARACION DE LOS DOS LENGUAJES DE CONSULTA Las bases de datos espacio-temporales tratan con objetos que cambian de posición o forma a medida que transcurre el tiempo. Estos objetos son adecuados para representar y registrar la evolución de planetas, propiedades urbanas, personas, animales, autos, barcos, aviones, huracanes, tumores, glaciares, entre otros. Se han propuesto diversos lenguajes de consulta para este tipo de bases de datos, por ejemplo SQLST, el de Guting, el de Chomicki y STQL. Solo se analizaran los dos primeros mediante un conjunto de consultas y de criterios con el fin de evidenciar sus ventajas y desventajas. Para comparar ambos lenguajes se considera una siguiente lista de criterios. Sin embargo, tal lista es necesariamente controversial, ya que algunos criterios son vagos o no exactamente medibles; además, algunos son complementarios y otros pueden estar en conflicto. Expresividad (expressiveness): se refiere a si el lenguaje ofrece operaciones “poderosas”, es decir, que realicen procesos complejos y que por lo tanto generan consultas concisas. Verbosidad (writability): trata de qué tan rápido, conciso y claramente se pueden expresar los procesos deseados en el lenguaje. “El lenguaje debe ofrecer un conjunto de abstracciones y construcciones que estén apropiadamente adaptadas a las habilidades mentales, hábitos y limitaciones del usuario” 51 Legibilidad (readability): alude a qué tan fácil es comprender el significado de una consulta escrita en el lenguaje. Se debe considerar si el lenguaje se acerca al lenguaje natural, si la consulta fue escrita en un lenguaje no diseñado para un propósito determinado (por ejemplo, programar operaciones matriciales en SQL). Además, hay aspectos que no dependen del lenguaje sino del programador: su grado de conocimiento del lenguaje y la posibilidad de escribir mal en un lenguaje. Cierre (closure): se cumple cuando todas las operaciones retornan un elemento propio del modelo de datos que soporta al lenguaje. Por ejemplo, el álgebra relacional es cerrada porque todas sus operaciones retornan y trabajan con relaciones. Este aspecto facilita la escritura de expresiones anidadas y evita funciones de conversión (casting) y comportamientos inesperados. Seguridad (safety): implica que toda consulta retorna una cantidad finita de resultados. Este criterio se relaciona con la confiabilidad (reliability): estrictamente una consulta debe hacer sólo lo que se le pide y no generar comportamientos inesperados ni ambigüedades. Los resultados han de ser correctos de acuerdo con la información disponible y las condiciones impuestas por el programador. Simplicidad (simplicity): se refiere a que las construcciones y la sintaxis del lenguaje deben ser fáciles de entender y no haber ambigüedades. Este criterio se relaciona con la uniformidad (uniformity): las construcciones similares del lenguaje exigen escribirse en forma similar. La simplicidad también se afecta por el número de construcciones esenciales que tiene un lenguaje y por el número de las que posee la misma función, lo que podría confundir a pesar de su utilidad. Por ejemplo, la condición de una reunión (join) en SQL se puede escribir usando las cláusulas INNER JOIN o WHERE. Portabilidad (portability): se refiere a qué tan independiente es el lenguaje de un producto (Oracle, SQL Server, DB2), es decir, el lenguaje se debe poder implantar en cualquier sistema de gestión de bases de datos (SGBD) y carecer de aspectos propietarios. 52 2.3.2.4 EJEMPLOS A continuación se exhibe un caso ejemplo con cuatro consultas en ambos lenguajes. Considérese un escenario de incendios forestales. Se maneja información sobre bosques, incendios y bomberos. Sean las relaciones bosque, incendio y bombero. Una muestra de datos se despliega en las Tablas 2.3, 2.4 y 2.5 para SQLST y en las tablas 2.6, y 2.7 para el lenguaje de Guting. En SQLST: -CREATE TABLE bosque (nombre CHAR (30), territorio REGION) BOSQUE NOMBRE TERRITORIO Verde Santa Elena Tabla 2.3 Muestra de datos de la relación bosque para SQLST y para el lenguaje de Guting -CREATE TABLE incendio (nombre CHAR (30), extensión REGIÓN, día DAY) En la Tabla 2.4 se muestra el valor del área de cada incendio (en km2). Este valor, aunque no es un atributo de la relación bosque, se puede obtener por medio de la función AREA de SQLST. 53 INCENDIO NOMBRE GRAN L GRAN L GRAN L GRAN L AZUL AZUL EXTENSION DIA (Área: 315) 5/7/06 (Área: 503) 6/7/06 7/7/06 (Área: 503) 7/7/06 (Área: 114) 24/3/06 (Área: 710) 25/3/06 (Área: 480) Tabla 2.4. Muestra de datos de la relación incendio para SQLST -CREATE TABLE bombero (nombre CHAR(30), ubicación POINT, día DAY) El atributo ubicación representa la localización puntual del bombero durante un día en el plano bidimensional. Dichos puntos se representan con letras en la Tabla 2.5 para facilitar su referencia posterior. BOMBERO NOMBRE UBICACIÓN DIA T. Montoya A (31,52) 4/7/06 T. Montoya B (40,47) 6/7/06 T. Montoya C (34, 24) 7/7/06 J. Vélez D (21,75) 6/8/07 J. Vélez E (30, 66) 7/8/07 J. Vélez F (34, 41) 9/8/07 Tabla 2.5. Muestra de datos de la relación bombero para SQLST 54 En el lenguaje de Guting: -Bosque (nombre: STRING, territorio: REGION) La muestra de datos de la relación bosque es la misma que la de la Tabla 2.3 -Incendio (nombre: STRING, extensión: MREGION) -Bombero (nombre: STRING, ubicación: MPOINT) INCENDIO NOMBRE EXTENSION {(5/7/06, ), (6/7/06, ), GRAN L (7/7/06, AZUL ), (7/7/06, {(24/3/07 , ) , (25/3/07 , )} )} Tabla 2.6. Muestra de datos de la relación incendio para el lenguaje de Guting BOMBERO NOMBRE UBICACIÓN T. Montoya {( 4/7/06, A ), (6/7/06 , B ), (7/7/06 , C )} J. Vélez {( 6/8/07, D ), (7/8/07, E ), (9/8/07, F )} Tabla 2.7. Muestra de datos de la relación bombero para el lenguaje de Guting En la Tabla 2.7 se representa la ubicación puntual de cada bombero mediante letras. Sus coordenadas son las mismas de las de la Tabla 2.5. 55 2.3.2.4.1 CONSULTAS A partir de las tablas de la sección anterior se plantean las siguientes consultas; se resuelven primero en SQLST y luego en el lenguaje de Guting. Consulta 1: ¿Cuándo y dónde alcanzó el incendio “Gran L” su máxima extensión? Consulta 2: ¿Cuándo y dónde se expandieron los incendios más de 500 km2? Consulta 3: ¿Cuánto tiempo estuvo el bombero “T. Montoya” dentro del incendio “Gran L” y cuánta distancia recorrió dentro del mismo? Consulta 4: Determinar el momento y el lugar donde se inició el incendio “Gran L”. Consulta 1. SQL ST SELECT F1.día, F2.extensión, AREA(F1.extensión) FROM incendio AS F1 F2 WHERE F1.nombre =”Gran L” AND F2.nombre = ”Gran L” AND F1.día = F2.día GROUP BY F1.día HAVING AREA (F1.extensión) = (SELECT MAX(AREA(extensión)) FROM incendio WHERE nombre =”Gran L”) Nótese que el atributo F2.extensión aparece en la cláusula SELECT pero no en la cláusula GROUP BY. Esto es válido porque el atributo de agrupamiento F1.día lo determina funcionalmente. Por otra parte, en la cláusula HAVING aparece la función ÁREA, que no es una función de grupo, lo que es inválido en un lenguaje tipo SQL. En la cláusula FROM se reúne la relación incendio consigo misma (selfjoin). En la cláusula WHERE se eliminan las tuplas que no tienen la misma fecha en el atributo día y las que no tienen el valor “Gran L” en el atributo nombre (SQLST y el lenguaje de Guting usan comillas dobles para las cadenas de caracteres, a 56 diferencia de SQL, que utiliza comillas simples). El resultado de la consulta se muestra en la Tabla 2.8. F1.día F2.extension AREA 6/7/06 503 7/7/06 503 Tabla 2.8. Resultado de la consulta 1 en SQLST Guting: i) LET GranL = ELEMENT(SELECT extensión FROM incendio WHERE nombre = "Gran L"); ii) LET max_area = INITIAL(ATMAX(AREA(GranL))); iii) ATINSTANT(GranL, INST(max_area)); VAL(max_area) La consulta se compone de tres partes. En la primera, la función ELEMENT convierte el resultado en un valor atómico y lo asigna a la variable Gran L mediante el operador LET; por lo tanto, la variable Gran L contiene el atributo extension, de tipo MREGION, del incendio “Gran L”. ELEMENT sólo se puede usar en una consulta que devuelva una tupla y un atributo. El contenido de Gran L se muestra en la figura 2.4 {(5/7/06, (7/7/06, ), (6/7/06, ), (7/7/06, ), )} Figura 2.4. Contenido de Gran L En la segunda parte se busca la mayor área en Gran L. Si hay empates en el valor máximo, se escoge el de fecha más antigua usando la función INITIAL. El 57 resultado se asigna a la variable max_area. La consulta 1 presentada en SQLST, en contraste, retorna todos los casos (empates) en los que el área fue la máxima (véase la Tabla 2.8). En la tercera parte se retornan los resultados: -ATINSTANT(GranL, INST(max_area)): retorna el día en que el área del incendio fue máxima. Se retorna el 6/7/06 (aunque el 7/7/06 también se alcanzó el área máxima). -VAL(max_area): retorna el valor (área) de max_area (503 km2). El resultado de la consulta se muestra en la Tabla 2.9. ATINSTANT VAL 6/7/06 503 Tabla 2.9. Resultado de la consulta 1 en el lenguaje de Guting. Consulta 2. SQL ST SELECT F1.día, F2.extensión FROM incendio AS F1 F2 WHERE F1.día = F2.día AND F1.nombre = F2.nombre GROUP BY F1.día, F2.extensión, F1.nombre HAVING AREA(F1.extensión) > 500 De nuevo se efectúa un self-join de la relación incendio. La cláusula WHERE elimina las tuplas que no cumplen la condición F1.día =F2.día y F1.nombre=F2.nombre y la cláusula HAVING selecciona las tuplas cuya área de F1.extensión es mayor que 500 km2. El resultado de la consulta se muestra en la Tabla 2.10. 58 F1.día F2.extension 6/7/06 7/7/06 24/3/07 (Área: 503) (Área: 503) (Área: 710) Tabla 2.10. Resultado de la consulta 2 en SQLST Guting: i) LET reg_grande = SELECT a_grande AS extensión WHEN[FUN(r:region) AREA(r) > 500] FROM incendio; ii) SELECT * FROM reg_grande WHERE NOT (ISEMPTY(DEFTIME(a_grande))); La primera parte de la consulta reduce la MREGION (atributo extensión) de cada incendio a las parejas (tiempo, región) en las que el área de la región es mayor que 500 km2. Para ello se usa el operador WHEN, que restringe un valor que dependa del tiempo a los periodos en que cumple cierta condición. El argumento de WHEN es un predicado que expresa la restricción. Aquí el predicado se construye mediante el operador FUN así: FUN <argumentos> <expresión>. Por ejemplo, la siguiente función calcula el cuadrado de un número: LET square = FUN (m:integer) m * m; Nótese que en el lenguaje de Guting el orden de los argumentos del operador de renombrado AS es contrario a como se realiza en SQL. Por lo tanto, en el atributo a_grande, se tienen las MREGION de los incendios luego de realizar la restricción. Este resultado se guarda en la variable reg_grande, como se muestra en la Tabla 2.11. 59 reg, grande a_grande {(6/7/06, ), (7/7/06, {(24/3/07 , )} )} Tabla 2.11. Contenido de reg_grande La segunda parte de la consulta considera si un incendio nunca alcanzó más de 500 km2. Para detectar estos casos, la cláusula WHERE revisa las fechas de cada incendio. Para ello se usa la función DEFTIME; esta retorna los tiempos en los que un objeto móvil está definido. En otras palabras, al aplicar DEFTIME a a_grande, la función recorre la MREGION de cada incendio y extrae el tiempo de cada pareja (tiempo, región). El resultado de la consulta corresponde al de la Tabla 2.11. Consulta 3. SQL ST SELECT DURATION (bombero. día), MOVING_DISTANCE (bombero.ubicación,bombero.día) FROM incendio, bombero WHERE incendio.día = bombero.día AND incendio.nombre = ”Gran L” AND bombero.nombre = ”T. Montoya” GROUP BY incendio.día HAVING INSIDE (bombero.ubicación, incendio.extensión) A partir del producto cartesiano entre las relaciones incendio y bombero, la cláusula WHERE selecciona las tuplas en las que el nombre del bombero es “T. Montoya”, el nombre del incendio es “Gran L” y las fechas del incendio y del bombero coinciden. Hasta aquí se obtiene el resultado de la Tabla 2.12. 60 INCENDIO NOMBRE EXTENSION BOMBERO DIA NOMBRE UBICACIÓN DIA Gran L 5/7/06 T. Montoya A 5/7/06 Gran L 6/7/06 T. Montoya B 6/7/06 Gran L 7/7/06 T. Montoya C 7/7/06 Gran L 7/7/06 T. Montoya C 7/7/06 Tabla 2.12 Resultado parcial de la consulta 3 en SQL La cláusula HAVING elimina la tupla sombreada de la Tabla 2.11, así: se usa la función INSIDE, que toma como argumentos un punto y una región y retorna un valor lógico que indica si el punto se encuentra en la región. De acuerdo con la muestra de datos, Tablas 2.4 y 2.5, supóngase que los datos espaciales se encuentran distribuidos como se muestra en la Figura 2.5, para el bombero “T. Montoya” y el incendio “Gran L”. Figura 2.5 Ubicación del bombero “T. Montoya” y del incendio “Gran L”: a) punto A y región de 315 km2 el 5/7/06, b) punto B y región de 503 km2 el 6/7/06, c) punto C y región de 503 km2 el 7/7/06, y d) punto D y región de 114 km2 el 7/7/06 61 La cláusula SELECT retorna dos valores: -DURATION: a partir de los datos que recibe como argumento, días en el ejemplo, retorna el tiempo total transcurrido entre ellos. -MOVING_DISTANCE: calcula la distancia entre los puntos que recibe como argumento. El cálculo se realiza en orden de acuerdo con el atributo temporal para dar la distancia total recorrida al sumar estas distancias; es decir, la distancia entre el primer punto (cuya fecha es menor) y el segundo (cuya fecha es la segunda menor) más la distancia entre el segundo y el tercer puntos y así sucesivamente. El resultado de la consulta se muestra en la Tabla 2.13. DURATION MOVING_DISTANCE 3 34.1 Tabla 2.13 Resultado de la consulta 3 en SQLST Guting: SELECT tiempo AS DURATION(DEFTIME(INTERSECTION(ubicación, GranL))), distancia AS LENGTH (TRAJECTORY (INTERSECTION(ubicación, GranL))) FROM bombero WHERE nombre = "T. Montoya"; De la relación bombero, se seleccionan las tuplas en las que el nombre del bombero es “T. Montoya” (se usa la variable Gran L definida en la consulta 1). En la cláusula SELECT, se calcula el tiempo durante el cual el MPOINT del bombero estuvo dentro de la MREGION del incendio, así: INTERSECTION(ubicacion, Gran L) halla las intersecciones espaciales entre el MPOINT ubicación y la MREGION Gran L. El resultado es un MPOINT. Esta intersección se muestra en la Figura 2.5 y el MPOINT resultante en la Figura 2.6. Luego, la función DEFTIME extrae los tiempos para los que existe intersección. Estos se obtienen a partir de las parejas 62 que conforman el MPOINT resultante. Finalmente, se calcula el tiempo que estuvo el bombero dentro del incendio con la función DURATION, que calcula el tiempo transcurrido a partir del resultado de DEFTIME. {( 5/7/06, A ), (6/7/06 , B ), (7/7/06 , C )} Figura 2.6 MPOINT resultante de INTERSECTION(ubicación, GranL). En la cláusula SELECT también se calcula la longitud de la trayectoria que recorrió el bombero dentro del incendio. Para lograrlo, la función TRAJECTORY proyecta el MPOINT de la Figura 2.6 sobre el plano bidimensional y retorna una polilínea que une los puntos A, B y C. El resultado es igual al de la Tabla 2.13, excepto por el nombre de los atributos. Consulta 4. SQLST SELECT día, extensión FROM incendio WHERE nombre = ”Gran L” AND día = (SELECT MIN(día) FROM incendio WHERE nombre = “Gran L”) Nótese que si se encuentra más de una tupla con la fecha más antigua para el incendio “Gran L”, se retornan todas estas. El resultado de la consulta se muestra en la Tabla 2.14. DIA EXTENSION 5/7/06 Tabla 2.14. Resultado de la consulta 4 en SQLST 63 Guting: Para responder a esta consulta se procede así: -INST(INITIAL(GranL)): retorna la fecha más antigua de la MREGION GranL. -VAL(INITIAL(GranL)): retorna el valor (es decir la región) de la MREGION GranL que está asociado con la fecha más antigua. El resultado de la consulta es igual al de Tabla 2.14. 2.3.2.5 RESULTADOS DE LA COMPARACION Por medio de una encuesta realizada a un grupo de programadores familiarizados con ambos lenguajes y a los que se les presentaron características de los mismos. Se obtienen los resultados que se muestran en la Tabla 2.15. Los criterios de comparación ya descritos anteriormente se midieron con un puntaje entre 0 y 5. [Pérez, L. (2008)]. CRITERIO SQLST GüTING Expresividad Existen operadores importantes como DURATION, INSIDE y MOVING_DISTANCE. Puntaje: 4 Existen operadores importantes como ATINSTANT, VAL, DEFTIME y TRAJECTORY. Puntaje: 4.3 Similar a la del SQL estándar. Puntaje: 4.5 Aunque algunas consultas simples son más largas que sus correspondientes en SQLST, la asignación de variables simplifica el planteamiento de otras. Puntaje:4.2 Legibilidad Se acerca bastante al SQL estándar. Los nuevos operadores son fáciles de comprender. Puntaje: 4.4 La asignación de variables dificulta la comprensión de algunas consultas. Además, posee muchas funciones ya veces su significado no es evidente. Puntaje: 3.8 Cierre Es consecuente con su modelo de datos dado que Tiene algunos operadores, como Verbosidad 64 sólo retorna relaciones. Puntaje: 4.7 ELEMENT, que tienden a violar el cierre. Puntaje: 4.5 Seguridad No genera resultados infinitos. Puntaje: 4.9 No genera resultados infinitos. Puntaje: 4.9 Simplicidad Similar a la del SQL estándar. Puntaje: 4.6 Portabilidad Carece de aspectos propietarios. Puntaje: 4.8 Su aspecto procedural le hace menos simple que SQLST. Puntaje: 4 Carece de aspectos propietarios. Puntaje: 4.8 Tabla 2.15. Comparación entre SQLST y el lenguaje de Guting 65 CAPITULO III HERRAMIENTAS DE SOFTWARE PARA MANIPULAR BDET En este capítulo se conocen las diversas tecnologías y herramientas para la manipulación de de base de datos espacio-temporales. 3.1 TECNOLOGIAS Y HERRAMIENTAS 3.1.1 API JAVA SWING Para diseñar aplicaciones que hagan uso de interfaces gráficas (ejemplos: ventanas con controles, etiquetas, cajas de texto, botones, barras de desplazamiento), Java proporciona una biblioteca de clases denominada JFC (Java Foundation Classes – clases base de Java) que comprende un grupo de interfaces para programación de aplicaciones que engloban a AWT (Abstract Window Toolkit), Swing, Java 2D y permite añadir gráficos ricos en funcionalidad e interactividad a los programas desarrollados con Java. La tabla 3.1 describe las características de la biblioteca de clases JFC. CARACTERISTICA DESCRIPCION Componentes GUI Swing Incluye botones, paneles de división y tablas, entre otros. Ofrece muchos componentes útiles para la clasificación, impresión y descripción. Soporte de Aspecto Acoplable Accesibilidad de la API Internacionalización El diseño de aplicaciones Swing es acoplable ya que permite la opción de cambiar el aspecto de la interfaz gráfica a través de paquetes que están disponibles en la API de Java. Permite que las tecnologías de asistencia puedan obtener información de la interfaz de usuario. Permite a los desarrolladores crear aplicaciones que puedan interactuar con los usuarios en todo el mundo en sus propios idiomas y convenciones culturales. Tabla 3.1 Características de las clases base de Java Una interfaz gráfica de usuario (GUI, Graphical User Interface) presenta un mecanismo amigable para interactuar con un programa, ya que al usuario le 67 proporciona una “apariencia visual” única. El API de Java Swing provee distintas clases que permiten desarrollar programas cuya interfaz de usuario contenga componentes que sean consistentes e intuitivos, de manera que los usuarios puedan familiarizarse con un programa incluso antes de utilizarlo. Esto permite reducir el tiempo que se requiere para aprender a usar un programa y permite incrementar la habilidad del usuario para utilizarlo en una manera productiva. Las GUIs se crean a partir de componentes denominados controles o widgets (accesorios de ventana). Un componente de la GUI es un objeto con el cual interactúa el usuario mediante el ratón, teclado u otra forma de entrada, ejemplo: reconocimiento de voz. Las clases que crean los componentes de la GUI se indican en la tabla 3.2 y se describen algunos de los componentes que integran la GUI de Swing del paquete javax.swing. La mayoría de los componentes de Swing están escritos (también denominados componentes puros de Java), se manipulan y muestran completamente en Java. COMPONENTE JLabel JTextField JButton JCheckBox JComboBox JList JPanel DESCRIPCION Espacio en donde pueden mostrarse iconos o texto no editable. Superficie en la que el usuario introduce datos desde el teclado. En ésta área se puede mostrar información. Espacio que, por medio del ratón puede recibir un clic sobre él, lo que desencadena un evento. Componente de la GUI que puede o no estar seleccionado. Lista desplegable de elementos, de los cuales el usuario puede seleccionar cualquiera haciendo clic sobre él o posiblemente escribiendo dentro del cuadro. Espacio que contiene una lista de elementos, de los cuales el usuario puede seleccionar cualquiera haciendo clic sobre él. Contenedor en el cual pueden colocarse y organizarse componentes. Tabla 3.2 Descripción de algunos componentes de Swing. La biblioteca de clases Swing resulta conveniente para el diseño e implementación de GUIs por las siguientes características: 68 Basa sus componentes en la arquitectura MVC (Modelo-Vista-Controlador ), esta arquitectura permite una clara separación entre los componentes de un programa y ofrece un enfoque de desarrollo muy apegado a los entornos gráficos de usuario diseñados con el paradigma orientado a objetos; Ofrece un conjunto de componentes escritos en Java con una mayor funcionalidad y lógicamente independientes de la plataforma; Cuenta con una amplia variedad de componentes (botones, cajas de texto, tablas, diálogos); Proporciona un aspecto modificable para personalizar el aspecto de los componentes (ejemplos: botones, cajas de texto, listas, etiquetas) de las interfaces de usuario. 3.1.2 TECNOLOGIA XML La tecnología XML (Extensible Markup Language) provee una definición y estructura de documentos útil. La descripción de información en documentos XML representa una forma práctica y fácil de manipular los datos de manera estructurada, por lo que en esta sección examinamos esta tecnología. Publicar un documento en Internet consiste en aplicar a determinado contenido (ejemplos: texto, imágenes) una serie de formatos para que pueda ser visualizado desde la aplicación generalmente conocida como navegador o explorador (browser) de Internet (ejemplos: Explorer, Firefox, Netscape). La aplicación de los formatos para la correcta visualización del documento se efectúa por medio de determinadas etiquetas (tags) definidas en los denominados lenguajes de marcas o de marcado. HTML (HyperText Markup Language) es el lenguaje de marcado utilizado para dar formato a los documentos publicados en Internet, popularmente conocidos como páginas Web. XML es también un lenguaje de marcas, pero su finalidad no es dar formato a los documentos para su visualización, sino establecer la estructura de los contenidos (datos) del documento. A continuación se describen algunas características de la tecnología XML: 69 XML es un lenguaje de marcado para documentos. Al igual que otros lenguajes como SGML y HTML. XML se basa en el uso de marcas o etiquetas para diferenciar los diversos elementos que pueden existir en un documento. Al contrario de HTML, que se utiliza para establecer cómo se han de presentar o de visualizar dichos elementos, con XML lo que se define es la estructura del documento. XML no utiliza etiquetas predefinidas. El nombre de las etiquetas utilizadas en la creación de un documento XML se define de manera personalizada. Ésta es otra diferencia con HTML, el cual es un lenguaje con etiquetas ya definidas (de ahí la X de eXtensible de XML) no es un lenguaje con marcas ya establecidas, sino que deja absoluta libertad al programador para que defina las que crea convenientes. XML es un lenguaje muy estricto. Otra de las principales características de XML es el ser estricto; un documento XML ha de cumplir las normas de sintaxis y estructuración para que sea reconocido como tal; para ello, el documento ha de estar, al menos, bien formado. XML es una versión reducida de SGML, el cual está basado y especialmente diseñado para la definición de estructuras de documento y el almacenamiento de datos. Por lo tanto, podemos decir que XML se puede utilizar para el desarrollo de dos tipos de aplicaciones: Aplicaciones de datos: los documentos XML por definición son “unidades de almacenamiento de datos” y el principal objetivo de este lenguaje consiste en definir la estructura lógica de dichos datos. XML es utilizado, por tanto, para la manipulación de información y está más cercano a los mecanismos usados en bases de datos que los utilizados en la publicación de documentos. XML también proporciona mecanismos para el intercambio de datos entre aplicaciones; Aplicaciones de documento: las aplicaciones de documento representan la fase final de la creación de una aplicación XML y permiten la publicación de documentos XML utilizando técnicas de creación de estilos y técnicas de 70 aplicación de formatos (XSL, XSLT) al contenido de documentos tipo XML. Las aplicaciones de documento posibilitan la publicación en prácticamente cualquier tipo de formato conocido. XML se convirtió en un lenguaje estándar con la publicación del documento titulado “eXtensible Markup Language 1.0. Recomendación W3C (World Wide Web Consortium)” el 10 de febrero de 1998. Además, proporciona un mecanismo para imponer restricciones al almacenamiento de los datos y a la estructura lógica del documento. Una unidad de almacenamiento de tipo XML se puede considerar como un documento XML si está bien formado. Un documento XML bien formado puede además ser válido si cumple una serie de restricciones definidas en una DTD o XML Schema. XML es, por lo tanto, un lenguaje diseñado para trabajar con datos y estructuras; considerando lo visto anteriormente se puede definir, a los documentos XML como “objetos de datos cuya estructura está bien formada”. Las tecnologías XML son un conjunto de módulos que ofrecen servicios útiles a las demandas más frecuentes por parte de los usuarios. En la tabla 3.3 se muestran las tecnologías relacionadas con XML. TECNOLOGIA XSLT XSL- FO XPath XLink XPointer XQL DESCRIPCION (Extensible Stylesheet Language Transformation) establece como efectuar las transformaciones necesarias para aplicar los estilos a documentos XML para su aplicación. (XSL – Formatting Object) se usa para definir estilos utilizando los objetos de formato. (XML Path) es utilizado para establecer el camino que se ha de seguir para llegar a un determinado nodo en la jerarquía del árbol de nodos de un documento XML. (XML Linking Language) es un lenguaje que permite insertar elementos en documentos XML para crear enlaces entre recursos XML. (XML Pointer Language) es un lenguaje que permite el acceso a la estructura interna de un documento XML. (XML Query) es un lenguaje que facilita la extracción de datos desde documentos XML. También ofrece la posibilidad de crear consultas flexibles 71 XML Schema Definition DTD desde documentos XML. (XML Schema Definition) es un mecanismo de descripción de documentos que sirve para declarar los diversos objetos que pueden ser utilizados en un documento XML y permite definir los elementos con su contenido y atributos para establecer cómo se han de usar para crear la estructura del documento XML que utilice determinado esquema; así se podrá efectuar su validación. (Document Type Definition) es un mecanismo a través del cual se declaran las entidades, notaciones y elementos permitidos en aquellos documentos XML que los utilicen. Para los elementos, se definen las etiquetas estableciendo al mismo tiempo cuáles serán sus contenidos y la lista de atributos que deben utilizar. Tabla 3.3 Tecnologías XML 3.1.3 TRANSFORMACION DE DOCUMENTOS CON XSLT XSL es un lenguaje creado por el W3C cuya finalidad es la creación de estilos y la aplicación de formato a los documentos XML para que así puedan ser publicados en cualquier medio. XSLT (Extensible Stylesheet Language Transformation) es una ampliación de XSL y es el lenguaje utilizado para efectuar las transformaciones por medio de las cuales se aplicarán los estilos y formatos establecidos en hojas de estilo, ya sean CSS o XSL, sobre el documento XML para su publicación. El proceso de transformación de un documento XML a cualquier otro formato de publicación (texto plano, HTML, XHTML, WML, PDF) se realiza a través de un documento XML el cual tiene definido una hoja de estilo. Ésta se basa en la definición de plantillas (templates) y cada una de las plantillas definidas ha de estar relacionada con algún elemento existente en el documento XML. Los elementos relacionados con alguna plantilla serán los objetivos sobre los cuáles se aplicarán las transformaciones (procesador XSLT) y formatos definidos en la plantilla para generar el documento final, la figura 3.1 muestra este proceso. 72 Documento XML Documento Procesador Documento XML XSLT HTML Documento de hoja de estilos XSL Cualquier otro documento estructurado Figura 3.1 Proceso de transformación de documentos XML Algunas características del procesador XSLT son: Permite transformar una única fuente de información en varios formatos; Por ser una aplicación XML, su descripción se basa en las mismas reglas que los documentos XML solo que la extensión del archivo es .xsl; Es posible separar el contenido de la presentación, permitiendo modificar aspectos visuales fácilmente sin que los contenidos se vean afectados en el proceso; Permite utilizar las funciones de XPath para acceder fácilmente a un determinado elemento del documento XML. 3.1.4 PROCESADOR DOM4J Los procesadores XML son módulos de software utilizados para leer documentos XML y proporcionar acceso a su contenido y estructura. Deben ser implementados siguiendo las especificaciones establecidas por la W3C en las recomendaciones sobre dicho lenguaje. La implementación mínima de todo procesador XML está representada por el analizador de XML encargado de comprobar que el documento que se quiere examinar cumpla las normas establecidas para ser considerado un documento XML bien formado. Los procesadores XML pueden implementar dos tipos de analizadores: 73 Analizadores de buena formación: comprueban que la estructura del documento sea correcta; Analizadores con validación: en caso de que el documento utilice algún mecanismo de definición de documento, DTD o XML Schema, comprueban que se utilizan los elementos, sintaxis y estructuras allí definidos; Dom4j es un marco de trabajo XML de código abierto para Java que permite leer, escribir, navegar, crear y modificar documentos XML, y está integrado por DOM. Algunas características son: Está diseñado para la plataforma Java con soporte completo para el marco de trabajo de Java; Implica amplio soporte para JAXP, DOM, y XSLT; Integra un extenso soporte de XPath para facilitar la navegación en documentos XML; 3.1.5 MANEJADOR DE BASE DE DATOS POSTGRESQL Postgresql es un sistema administrador de bases de datos objeto-relacional basado en POSTGRES, version 4.2, desarrollado en la Universidad de California en Berkeley, en el Departamento de Ciencias de la Computación. POSTGRES fue pionero de muchos conceptos que sólo estuvieron disponibles en algunos sistemas de bases de datos comerciales mucho más tarde. PostgreSQL es un proyecto desarrollado con código abierto que soporta el estándar SQL y ofrece muchas características interesantes: Consultas complejas; Claves foráneas; Disparadores; Vistas; Integridad transaccional; Control de concurrencia. 74 Además PostgreSQL puede ser ampliado por el usuario de muchas formas; mediante la adición de nuevas definiciones de: Tipos de datos; Funciones; Operadores; Funciones de agregado; Métodos indexados; Lenguajes procedurales. Debido a que es de licencia libre, PostgreSQL puede ser usado, modificado y distribuido por todo el mundo de forma gratuita para cualquier fin, ya sea privado, comercial o académico. Es considerado como uno de los mejores gestores de bases de datos de software libre. Muchas empresas han iniciado el uso de esta herramienta beneficiándose en la reducción de los costos y en el aumento de la fiabilidad. Dentro de sus características están: Cumple completamente con la propiedad ACID (Atomicity, Consistency, Isolation and Durability). Permite integridad referencial; Implica replicación (soluciones comerciales y no comerciales) lo que permite la duplicación de bases de datos maestras en múltiples sitios de réplica; Define procedimientos almacenados; Implica soporte nativo SSL (Secure Socket Layer); Incluye lenguajes procedurales; Comprende herramientas para generar SQL portable para compartir con otros sistemas compatibles con SQL; Funciones de compatibilidad para ayudar a la transición desde otros sistemas menos compatibles con SQL. 75 Las características mencionadas contribuyeron a la elección de PostgreSQL como gestor de base de datos para la generación de la descripción del esquema de la base de datos (script SQL), así como también para el manejo y administración de la información que será almacenada en ella. 3.1.5.1 POSTGIS PostGIS es una extensión del sistema de bases de datos objeto-relacional PostgreSQL, que permite el uso de objetos geográficos. Fue creado por Refractions Research Inc, como un proyecto de investigación de tecnología de bases de datos espaciales. PostGIS es un módulo de apoyo que permite el manejo de información georeferenciada a través de PostgreSQL. Al integrarse estas dos partes es posible el manejo de objetos geográficos de forma sencilla y amigable por medio de consultas SQL que proporcionan el resultado en coordenadas de 2D y 3D. Inicialmente el manejo de la información de la base de datos incluye datos geográficos (coordenadas), PostGIS proporciona soporte para el manejo de este tipo de información a través de PosgreSQL, por lo que la manipulación de la información geográfica queda cubierta en el desarrollo de nuestra solución. 3.1.6 ENTORNO DE DESARROLLO INTEGRADO NETBEANS Un IDE (Integrated Development Environment) es un conjunto de herramientas que ayudan al desarrollo de aplicaciones; la mayoría tienen módulos que permiten: Escribir y editar código fuente; Ver los errores a medida que se escribe código; Ver la sintaxis del código resaltado; Automatizar tareas repetitivas; Compilar código; Usar la función arrastrar y soltar para facilitar la construcción de interfaces gráficas de usuario. 76 CAPITULO IV APLICACIÓN DE LAS BDET: SIG Una de las aplicaciones de las base de datos espacio-temporales son los sistemas de información geográfica, que se verán en este capítulo, así como el modelo y la semántica de los datos en estos sistemas y la forma en que éstos se apoyan de las bases de datos geográficas. 4.1 SISTEMA DE INFORMACION GEOGRAFICA Los Sistemas de Información Geográfica (SIG) datan del año de 1970. Actualmente son vigentes por los problemas teóricos fundamentales relacionados a ellos, por las nuevas tecnologías de la información y por una variedad considerablemente grande de aplicaciones importantes en las que son usados. Un SIG es una tecnología basada en computadoras de propósito general y es útil para almacenar, manejar y explotar datos geográficos en forma digital. Se integra por un conjunto de subsistemas enfocados en la captura, el almacenamiento, el análisis, la visualización y la graficación de diversos conjuntos de datos espaciales o georeferenciados. Tales subsistemas en conjunto obtienen información territorial para resolver problemas de planificación, gestión y toma de decisiones apoyándose en la cartografía. Un SIG es un sistema geográfico porque permite el modelado espacial: la creación de mapas y el análisis espacial. Es un sistema de información porque orienta en la gestión de la información, procesa datos almacenados previamente y permite eficaces consultas que son útiles para añadir valor a la información gestionada y es un sistema informático con hardware y software especializados que procesan los datos obtenidos de diversas fuentes (ejemplos: fotografía aérea, metadatos, imágenes de satélite, datos de procedencia comercial y gratuita). Su característica principal es el manejo de datos complejos basados en datos geométricos (coordenadas e información topológica) y datos de atributos (información nominal) el cual describe las propiedades de los 78 objetos geométricos tales como puntos, líneas y polígonos. La codificación de la información en datos requiere de estructuras y formatos adecuados para su almacenamiento en una base de datos, la cual podrá tener una descripción en un nivel de abstracción más alto si se usa una base de metadatos. El núcleo de software de los SIG es el DBMS. Tal sistema debe tener la capacidad de almacenar y gestionar las entidades asociando su representación geométrica con su representación constituida por atributos. La base para tener una independencia con la plataforma de implantación es el modelo lógico de datos el cual es una interfaz entre el modelo conceptual entidad-relación y el modelo físico donde se mantienen las estructuras de datos y almacenamiento. La figura 4.1 presenta los componentes mencionados anteriormente que integran un SIG. Programas Equipos de cómputo (Software) (Hardware) Provee una base funcional que sea adaptable y expandible de acuerdo con los requerimientos propios de cada organización. Permite la entrada y salida de información geográfica en diversos medios y formas. Recursos Humanos Base de Datos Componentes de SIG Resolver los problemas de entradas de datos. Conceptualizar las BD y los modelos necesarios para el análisis de la información Figura 4.1 Componentes de un SIG. Contiene la información que garantiza el funcionamiento analítico 79 Las aplicaciones de un SIG aumentan continuamente ya que sirve para la elaboración de mapas temáticos y composiciones cartográficas al añadir gráficos con tablas enlazadas a los mapas. La creación de mapas activos con posibilidades de agregar componentes multimedia (ejemplos: video, imágenes, animaciones) y combinado con la tecnología de la Web posibilita la generación de escenarios y realidad virtual, dibujos en perspectiva realista y vuelos virtuales, trazado de rutas (ejemplos: comerciales, de emergencia, red de alcantarillado). Un SIG permite crear inventarios de recursos naturales y humanos, hacer investigación de los cambios producidos en el medio ambiente, realizar cartografía de usos de suelo y prevenir de incendios. 4.1.1 BASES DE DATOS GEOGRAFICAS La construcción de una base de datos geográfica implica un proceso de abstracción para pasar de la complejidad del mundo real a una representación simplificada que pueda ser interpretada por las computadoras actuales. Este proceso de abstracción tiene diversos niveles y generalmente comienza con la concepción de la estructura de la base de datos, generalmente en capas temáticas; en esta fase y dependiendo de la utilidad que se vaya a dar a la información a procesar, se seleccionan las capas temáticas a incluir. Al separar la información en diferentes capas temáticas, ésta es almacenada independientemente, permitiendo trabajar con ellas de manera rápida y sencilla, facilitando al programador la posibilidad de relacionar la información existente a través de la topología de los objetos. Las bases de datos geográficas consisten de un conjunto de datos que se agrupan en capas, de manera que cada capa representa un tipo de información geográfica. Los SIG obtienen y procesan esta información obtenida de la base de datos para combinar esas capas en una sola imagen mostrando que las capas están relacionadas entre sí. Una base de datos geográfica puede incluir un gran número de capas. También, se pueden generar imágenes de un área en dos o tres dimensiones, representando elementos naturales (ejemplo: colinas o ríos) junto a elementos artificiales (ejemplos: carreteras, tendidos eléctricos, núcleos urbanos). En bases de datos 80 geográficas la relación entre un objeto geográfico (topología) a un elemento de la realidad (ejemplo: ríos, carreteras, montañas) se reduce a cuestiones más sencillas como el saber cuáles líneas forman una determinada carretera. Convertir los productos de información geográfica (ejemplo: cartas, reportes, estudios) de forma analógica a forma digital, implica la necesidad de considerar que los mecanismos de percepción y análisis de información digital difieren de los tradicionales. Los productos convertidos serán procesados por computadoras y aunque pueden ser visualizados en monitores, su análisis se realiza fundamentalmente por la combinación de métodos de análisis geométrico, métodos estadísticos y consultas de bases de datos. Los datos que integran esta información se clasifican, de acuerdo con su naturaleza, en tres tipos: vectorial, raster y alfanuméricos. El tipo vectorial contiene los datos provenientes de las cartas que en diferentes escalas y temas se han producido; el tipo raster contiene la información de tipo imagen (ejemplos: imágenes tomadas por satélites y modelos digitales de elevación). El tipo alfanumérico comprende los datos tabulares y textuales (ejemplo: reportes de campo). Los datos geográficos tienen cuatro características principales: 1. Posición geográfica (coordenadas); 2. atributos (valores de los datos); 3. relaciones topológicas; 4. componentes de tiempo. Una vez almacenados los datos en un SIG, éstos se pueden clasificar en tres categorías principales [30]: Datos convencionales: atributos alfanuméricos tradicionales, manipulados por DBMS convencionales; Datos espaciales: atributos que describen la geometría de fenómenos geográficos; Datos gráficos: atributos que almacenan imágenes (ejemplo: fotos). 81 El rápido crecimiento de los SIG se ha traducido en un gran número de sistemas, cada uno de los cuales tiene su propio manejo de datos y almacenamiento de características. La mayoría de los SIG siguen basados en manipuladores de datos espaciales e imágenes usando un gestor de archivos, sin ningún tipo de servicio de bases de datos. El acoplamiento del DBMS a los requerimientos del procesamiento de datos en un SIG se ha hecho en función de tres arquitecturas: Sistemas Propietarios. Una base de datos de propósito especial está estrechamente unida a los módulos de procesamiento de datos espaciales. Los usuarios no pueden acceder a la base de datos directamente y los datos no pueden ser migrados a otro DBMS; Sistemas de Capas. Un DBMS común se utiliza como base para las funciones de acceso de datos espaciales. Los usuarios pueden acceder a la base de datos directamente y pueden ser portados a otros sistemas; Sistemas Extensibles. Usan las facilidades proporcionadas por el DBMS relacional extendido u orientado a objetos introduciendo la dimensión espacial en el sistema. 4.1.2 MODELO DE DATOS EN UN SIG Información y datos es una división que se presenta entre la concepción del mundo real y su representación simbólica codificada. La complejidad de la realidad geográfica da lugar a diversas formas de adquirir la información asociada a los eventos espacio-temporales. Su codificación a representaciones finitas simbólicas (ejemplos: atributos de valores de suelo), se conforma de estructuras más complejas (ejemplos: matriz de variables del suelo), las cuales son asociadas a una localización espacial que varía con el tiempo. Las bases de datos geográficas consideran dos clases principales de datos: espaciales (localización o gráficos) y nominales (atributos no gráficos). La componente espacial de un SIG se describe con frecuencia como una serie de capas o coberturas, donde cada una contiene una serie de rasgos que son relacionados funcionalmente con un tema. Los objetos pueden ser puntos, líneas o áreas se describen por atributos que toman 82 valores dentro de un dominio que tiene asociado escalas, operaciones y predicados. En el contexto de un SIG, un modelo de datos es la abstracción y la representación de los fenómenos del mundo real de acuerdo a un esquema conceptual formalizado que es aplicado generalmente usando las primitivas geográficas (ejemplo: líneas, puntos y polígonos). Para poder describir la fisionomía espacial geográfica, la realidad debe ser concebida mediante un modelo espacial de datos, el cual puede ser descrito en dos niveles: modelo de objetos y modelo de campo. El modelo de objetos representa fenómenos geográficos que pueden ser individualizados (poseen una identidad y características que pueden ser descritas a través de un conjunto de atributos) y está constituido por: Punto. Un objeto cero-dimensional que especifica la localización geométrica por medio de un conjunto de coordenadas; Línea. Un objeto uni-dimensional que es un segmento de línea determinado entre dos puntos; Área. Un objeto bi-dimensional que es continuo, acotado y puede incluir su frontera; Celda. Es un objeto bidimensional que representa un simple elemento en un espacio discreto referenciado a una superficie continua; Píxel. Es un objeto gráfico bidimensional que se define como el elemento más pequeño indivisible de una imagen; Símbolo. Elemento gráfico que representa alguna característica de los puntos sobre un mapa. El modelo de campo representa la variación espacial de una simple variable mediante una colección de objetos discretos. Un campo puede ser asociado con una variable medida sobre una escala continua o discreta. Una base de datos geográfica puede comprender varios tipos de modelos de campo de los cuales seis son comúnmente manejados en un SIG. 83 Muestreo irregular de puntos. La base de datos contiene un conjunto de tripletas (x, y, z) que representan valores de puntos de una variable en un conjunto finito de localizaciones irregularmente distribuidas. Muestreo regular de puntos. El muestreo de puntos es un arreglo que se mapea sobre un enrejado regular. Este campo tiene similitud con el anterior excepto por el espaciamiento regular en donde se tienen localizadas las mediciones. Contornos. La base de datos contiene un conjunto de líneas, cada una representada por un conjunto de parejas ordenadas (x, y) que están asociadas a un valor z. Los puntos en cada conjunto están linealmente conectados como en las líneas de contorno cartográficas de una misma elevación. Polígonos. El área es dividida en un conjunto de elementos poligonales, de tal forma que cualquier localización que cae dentro de un polígono tiene asociado un valor y las fronteras son definidas por un conjunto de parejas ordenadas (x, y) de puntos (ejemplos: uso de suelo, área básica de simulación). Enrejado de celdas. El área es dividida en un enrejado regular de celdas. Cada celda tiene un valor y una variable que se supone tiene un valor para todas las localizaciones dentro de la celda. Red triangular. En este caso el área es dividida en triángulos. El valor de la variable es especificado en cada vértice del triángulo y se considera que varía linealmente sobre el triángulo. Los aspectos que deben considerarse en relación a los objetos geográficos en los modelos de datos geográficos son: Localización y extensión. Es la ubicación y alcance de las coordenadas (x, y, z) en el sistema de referencia específico. Estos aspectos están representados por cualquiera de los puntos, líneas y polígonos; 84 Medida temporal. Es necesario mantener registro de la existencia y cambio de un objeto a lo largo del tiempo. La existencia y la operación de tiempo deben ser válidos; Medida espacial compleja. Debe ser posible asociar medidas espaciales complejas con objetos. De esta manera medidas de cero, uno, dos y tres dimensiones consiste en puntos (y multi-puntos), líneas (y multi-líneas), polígonos (y multi-polígonos) y raster debería ser posible. Esto permite a los objetos que estén constituidos de más elementos; Valores temáticos. Un objeto tiene varios atributos que definen sus valores; Objetos difusos. La representación de un objeto difuso está relacionada con su ubicación y valores temáticos. En apoyo a los objetos geográficos, debería ser posible modelar objetos que tengan una extensión y medida, las cuales son características que hasta cierto punto pueden ser referidas por medio de coordenadas (x, y, z). Los objetos pueden poseer valores temáticos asociados o no con una determinada clase; Entidades vs datos basados en campo. El mundo real puede representarse por entidades totalmente definibles (ejemplo: carreteras y edificios). En el enfoque basado en campo, el mundo real consiste de atributos los cuales se supone que varían en el espacio como una función continúa. Este último sería el enfoque preferido si se representan a fenómenos que impliquen altura y profundidad; Generalización. Se refiere a aspectos de un objeto como la escala y el propósito. Un sólo objeto puede derivarse de varios objetos en una escala mayor y la información sobre todos los objetos que se agregan o no deben ser accesibles; Restricciones. Un objeto puede estar definido por atributos cuyos valores requieran de restricciones en cierto intervalo; Funciones. La función de un objeto está estrechamente relacionada con su representación. Un objeto geográfico puede ser definido de manera diferente dependiendo de la aplicación; 85 Identificación del objeto. Un identificador de objeto único es necesario para el intercambio de datos; si es necesario hacerlo entre diversos repositorios tal identificación es de gran ayuda; Calidad de la información. La calidad describe el valor de los datos. Esta información es importante al evaluar la credibilidad de los datos y debería ser obligatoria. Los elementos a considerar en las relaciones entre los objetos que definen los modelos geográficos son: Relaciones topológicas. Se refieren a las relaciones y conexiones entre los objetos. Ejemplos de relaciones topológicas binarias son: contiene, superposición; Relaciones métricas. Implica la distancia y depende de la posición absoluta de los objetos en relación con un determinado sistema de referencia; Relaciones semánticas. Son relaciones entre los objetos, pertinentes en el plano conceptual, que no son ni topológicas ni métricas; Relaciones parte-de. Indica que un objeto puede constar de otros objetos; Restricciones de la relación. Son muy importantes y dependen en gran medida del tipo de relación entre los objetos. Dos aspectos importantes afectan a los objetos: Visualización. La visualización de objetos es fundamental, de tal manera que estos se puedan visualizar en diferentes escalas; Cambio. Define la manera en la que un objeto puede cambiar. La información indica las circunstancias externas que pueden producir un cambio importante. 4.1.3 SEMANTICA DE LA INFORMACION ESPACIAL La necesidad del ser humano por el uso de sistemas y aplicaciones que manejen y procesen información georeferenciada ha originado la creación de grupos de investigación en el área de la ciencia de la información geográfica. El 86 trabajo de esta área consiste en obtener representaciones acerca de cómo el ser humano percibe el mundo real por medio de una conceptualización basada en procesos de abstracción y representación de los datos geográficos. La humanidad inició representando el mundo real a través de bosquejos y dibujos, posteriormente con mapas, con la llegada de la era digital, los mapas son la base para el desarrollo de SIG (Sistemas de Información Geográfica), los cuales proporcionan mecanismos para almacenar manipular y analizar la información geográfica. En la actualidad, se ha reconocido ampliamente que la semántica de la información geográfica es crítica para el desarrollo de bases de datos geoespaciales y aplicaciones interoperables. En adición a esto, los SIG; así como la tecnología de desarrollo de éstos, deben ser interoperables con otros sistemas y bases de datos. Con la semántica espacial de objetos geográficos, es posible analizar la interacción de diversos fenómenos de un área común, además de poderlos representar adecuadamente a diferentes niveles de detalle de conocimiento, dependiendo del propósito o caso de estudio. Las bases de datos geográficas son herramientas muy poderosas y utilizadas para manejar, desplegar y procesar la información geoespacial. Estas bases de datos integran SIG, los cuales están diseñados para almacenar y procesar los datos geoespaciales que son muy complejos y mixtos. Por tal motivo para evitar cualquier tipo de ambigüedad en el procesamiento e interpretación de estos datos, se debe contar con una buena calidad desde el proceso de entrada hasta su representación. Las aplicaciones SIG son utilizadas para analizar las características de diferentes ambientes geográficos. Sin embargo, estas aplicaciones utilizan diferentes fuentes de datos geoespaciales para lograr sus objetivo; así como diversos formatos, los cuales pueden encontrarse o en diferentes bases de datos geográficas; motivo por el cual la integración de información geoespacial es un problema complejo para llevar a cabo tareas específicas. Por tal razón, el objetivo de realizar una conceptualización del dominio geográfico es solucionar problemas 87 de heterogeneidad e interoperabilidad semántica debido a la existencia de diferentes fuentes de información. Se utiliza la semántica espacial de objetos como un mecanismo para la correcta representación y descripción de objetos espaciales en una base de datos geoespacial, en donde se puedan distinguir estos objetos por medio de sus características (propiedades) y también a través de un valor de atributo o una primitiva de representación espacial (punto, línea, polígono, etc.), sin realizar algún tipo de procesamiento, clasificación o manipulación de información georeferenciada. [Radilla, F. (2008)]. 88 CONCLUSIONES Al haber realizado esta monografía se puede concluir que las bases de datos son una parte importante para la administración de la información de las empresas, tanto que su uso fue indispensable desde los años 50’s mediante el uso de las cintas magnéticas y con éstas se puede acceder a datos de manera fiable. Además es importante tener claro que al momento de la creación de las bases de datos se debe evitar la redundancia de datos para establecer las relaciones que integran dichas bases. Por ello es primordial seguir una metodología de diseño de base de datos basados en los modelos que se abarcaron, ya sea modelo entidad – relación, orientado a objetos, jerárquico o relacional para que así, las operaciones que se realicen sean de forma eficiente. Los beneficios de contar con los sistemas de base de datos pueden usarse en un sinfín de aplicaciones, como en las líneas aéreas o bancos que son utilizados para proporcionar información específica que es requerida por cualquier cliente, esto facilita el trabajo a sus usuarios finales. De las bases de datos tradicionales a las espacio-temporales se ha entendido y comprendido cada una de estas, además de las temporales y espaciales, estas dependen de los datos que se requieran ingresar a las bases de datos, si se desea contar con información temporal ya sea por que se necesita el dominio de tiempo, la base de datos es temporal. Para tener una base de dato espacial se requieren de datos que tengan que ser representados por puntos, líneas o región. Existen objetos espaciales que cambian su tamaño y/o posición a través del tiempo para esto existen las bases de datos espacio-temporales, el objetivo de estas es modelar y representar la naturaleza dinámica de las aplicaciones en el mundo real, estas pueden ser utilizadas en el ámbito del transporte y multimedia, es decir, administrando dichos objetos que son cambiantes en su ubicación y tiempo. Por lo que las consultas que se necesitan resolver en este tipo de bases de datos pueden requerir tratar con el tiempo (pasado, presente y predicciones de futuro) como ya se vio en los lenguajes de consultas. 90 FUENTES DE INFORMACION Besembel, I. (2004) Bases de Datos avanzadas: Bases de Datos Espaciales. Recuperado el 20 de Marzo de 2009, de http://www.ing.ula.ve/~ibc/bda/s25y26bde.pdf Castaño, M y Piattini, M. (1999). FUNDAMENTOS Y MODELOS DE BASES DE DATOS. México: Alfaomega. Cely, W. y Bedard Y. (s.f.) El paradigm multidimensional: Desarrollo de nuevas tecnologías para la gestión del territorio. Recuperado el 20 de Marzo de 2009, de http://sirs.scg.ulaval.ca/YvanBedard/article_nonprotege/441.pdf Date, C.J. (2001). INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS. México: Pearson Educación. Ghislaine, N. (2006). Is DataWarehousing important?. Recuperado el 25 de Mayo de 2009, de wiki.uni.lu/MsCS/docs/Ghis.pps Giraudi, D., Peñalver, G. y Retamal, G. (s.f.) Aproximaciones en el estudio de Bases de Datos Espacio-Temporales y Ruteo sobre redes móviles. Recuperado el 18 de Marzo de 2009, de http://www.ing.unp.edu.ar/wicc2007/trabajos/ISBD/069.pdf Gutiérrez, G. (2007). Métodos de acceso y procesamiento de consultas espacio–temporales. Recuperado el 27 de marzo de 2009, de http://www.dcc.uchile.cl/~gnavarro/algoritmos/tesisGilberto.pdf Gutiérrez, M. (s.f.) El rol de las bases de datos espaciales en una infraestructura de datos espaciales. Recuperado el 20 de abril de 2009, de http://www.gsdidocs.org/gsdiconf/GSDI-9/slides/TS23.1.pdf 91 Ihm, J. (2007). Administración avanzada de datos espaciales en una empresa. Recuperado el 27 de marzo de 2009, de http://www.oracle.com/technology/global/lades/documentation/collaterals/oracle_spatial_11g_cast.pdf Luque, A. (2006) Bodegas de Datos: Consideraciones de Seguridad y Control. Recuperado el 20 de Marzo Implementación, de 2009, de http://www.acis.org.co/fileadmin/Conferencias/ConfAlfonsoLuqueNov30-06.pdf Marqués, M (2002). Bases de Datos orientadas a objetos. Recuperado el 25 de Marzo de 2009, de http://www3.uji.es/~mmarques/e16/teoria/cap2.pdf Moreno, F. y Arango, F. (2007) Estado del Arte de los Modelos Multidimensionales Espacio-Temporales. Recuperado el 08 de Abril de 2009, de http://pisis.unalmed.edu.co/avances/archivos/ediciones/Edicion%20Avances%2 02007%201/2.pdf Pascal, A., Gutiérrez, G., Herrera, N. (s.f.) Búsqueda en Bases de Datos Métricas Temporales. Recuperado el 08 de Abril de 2009, de http://ficcte.unimoron.edu.ar/wicc/Trabajos/III%20-%20isbd/689-wiccER06.pdf Pérez, L. (2008). Una comparación de dos lenguajes de consulta espacio– temporales: SQLST y el lenguaje de Guting. Recuperado el 27 de marzo de 2009 de, http://www.revistaingenieria.unal.edu.co/Resumenes/28_3/20_760.pdf Radilla, F. (2008). Modelado de datos para Base de Datos Espaciales. Caso de estudio: sistemas de información geográfica. Recuperado el 22 de Marzo de 2009, de http://www.cs.cinvestav.mx/Estudiantes/TesisGraduados/2008/tesisFlorRadilla. pdf 92 Rozic, S. (2004). BASES DE DATOS Y SU APLICACIÓN CON SQL. Buenos Aires: MP ediciones. Silberschatz, A., Korth, H. y Sudarshan, S. (2002). FUNDAMENTOS DE BASES DE DATOS. España: McGraw Hill. Suherman, A. (s.f.). Data Mining. Recuperado el 25 de Mayo de 2009, de www.cs.sjsu.edu/~lee/cs157b/Data_Mining_By_Andrie_Suherman.ppt - Vallejos, S. (2006). Minería de Datos. Recuperado el 10 de Abril de 2009, de http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/Mineria_Da tos_Vallejos.pdf 93 GLOSARIO ACID Atomicity, Consistency, Isolation and Durability: Atomicidad, Consistencia, Aislamiento y Durabilidad en español. Conjunto de características necesarias para que una serie de instrucciones puedan ser consideradas como una transacción. Alfanuméricos Conjunto de caracteres numéricos y alfabéticos de los cuales dispone una computadora. Atributos Es la cualidad que se adjudica o predica de un ser con sentido de identidad Atributos multivaluado Debe tener un acotamiento mínimo y uno máximo para limitar el número de valores permitidos para cada registro. AWT Abstract Window Toolkit (Kit de Herramientas de Ventana Ab stracta) es un kit de herramientas de gráficos, interfaz de usuario, y sistema de ventanas independiente de la plataforma original de Java Backward “Hacia atrás” Bibliotecas JFC Java Foundation Classes Browser Es un programa que permite visualizar la información que contiene una página web. Buffer Es una ubicación de la memoria en una computadora o en un instrumento digital reservada para el almacenamiento temporal de información digital, mientras que espera ser procesada. 95 Cartografía Es la ciencia que se encarga del estudio y de la elaboración de los mapas. Centroides Es la intersección de todos los hiperplanos que dividen a X en dos partes de igual -volumen con respecto al hiperplano. Informalmente, es el promedio de todos los puntos de X. Concatenación Es la operación por la cual dos caracteres se unen para formar una cadena de caracteres. CSS Hojas de Estilo en cascada (Cascading Style Sheets), CSS es un lenguaje artificial usado para definir la presentación de un documento estructurado escrito en HTML o XML Data marts Es un sistema orientado a la consulta, en el que se producen procesos de carga de datos (altas) con una frecuencia baja y conocida. Es una versión especial de almacén de datos. Data mining Consiste en la extracción no trivial de información que reside de manera implícita en los datos. Prepara, sondea y explora los datos para sacar la información oculta en ellos. Datawarehouse Es una colección de datos orientada a un determinado ámbito (empresa, organización, etc.), integrado, no volátil y variable en el tiempo, que ayuda a la toma de decisiones en la entidad en la que se utiliza. Dato espacial La representación de un objeto en dos o tres dimensiones, la cual tiene atributos inherentes a nuestro espacio; por lo que, por si mismo, cuenta con los atributos de dimensión y de localización. 96 DBMS DataBase Management System o Sistemas de Gestión de Base de Datos (SGBD) son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Disparadores Es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación de inserción (INSERT), actualización (UPDATE) o borrado (DELETE). DOM Document Object Model (Modelo de Objetos del Documento ), es una interfaz de programación de aplicaciones que proporciona un conjunto estándar de objetos para representar documentos HTML y XML. Dom4j Es un conjunto de herramientas para la escritura de aplicaciones de procesamiento de XML DTD Document Type Definition. La definición de tipo de documento es una descripción de estructura y sintaxis de un documento XML. Entidad Es todo aquello que exhibe existencia real, no necesariamente material o animada. Autonomía de gestión en su organización interna y externa. Diferenciación e individualidad. Forward “Hacia delante” GID Es un identificador de un grupo de usuarios. GPS Sistema de Posicionamiento Global es un Sistema Global de Navegación por Satélite que permite determinar en todo el mundo la posición de un objeto, una persona, un vehículo o una nave, con una precisión hasta de centímetros, 97 usando GPS diferencial, aunque lo habitual son unos pocos metros. GPL Graphical presentation Language. Idioma de presentación gráfica. GUI Interfaz Gráfica de Usuario (Graphical User Interface) es un tipo de interfaz de usuario que utiliza un conjunto de imágenes y objetos gráficos para representar la información y acciones disponibles en la interfaz. GvSIG Es una herramienta orientada al manejo de la información geográfica. Hackers Se refiere a un experto en varias o alguna rama técnica relacionada con la informática: programación, redes de computadoras, sistemas operativos, etc. Herencia Es una propiedad que permite que los objetos sean creados a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes HTML HyperText Markup Language (Lenguaje de Marcas de Hipertexto) Es usado para describir la estructura y el contenido en forma de texto, así como para complementar el texto con objetos como imágenes. IDE Entorno de Desarrollo Integrado (Integrated Development Environment), es un programa compuesto por un conjunto de herramientas para un programador. Indexar Es una estructura de datos que mejora la velocidad de las operaciones en las tablas de la misma. 98 JAXP Java Api for XML Processing. sirve para la manipulación y el tratamiento de archivos XML. MapServer Es un entorno de desarrollo en código abierto para la creación de aplicaciones SIG en Internet/Intranet con el fin de visualizar, consultar y analizar información geográfica a través de la red mediante la tecnología. Metadatos Enfoque para construir un puente sobre el intervalo semántico. Modelización Es una técnica que consiste en crear una representación ideal de un objeto real mediante un conjunto de simplificaciones y abstracciones, cuya validez se pretende constatar. MVC Modelo Vista Controlador es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos NetBeans Plataforma para el desarrollo de aplicaciones de escritorio usando Java y a un entorno de desarrollo integrado, desarrollado usando la Plataforma NetBeans. Nodo Punto de intersección o unión de varios elementos que confluyen en el mismo lugar. OpenGis Es un estándar internacional orientado a Sistemas de Información Geográfica. Oracle Es un sistema de gestión de base de datos relacional. Oracle Spatial Es una opción por separado de Oracle. Parser Programa o la parte de un programa que analiza un dato alfanumérico para poder reconocer unidades gramaticales. 99 Plantillas Forma de dispositivo que proporciona una separación entre la forma o estructura y el contenido. Plataforma Es el principio, en el cual se constituye un hardware, sobre el cual un software puede ejecutarse/desarrollarse. Polilínea Conjunto de entidades, líneas, círculos, arcos, etc. PostGIS Módulo que añade soporte de objetos geográficos a la base de datos objeto-relacional PostgreSQL, convirtiéndola en una base de datos espacial para su utilización en Sistema de Información Geográfica. PostgreSql Sistema de gestión de base de datos relacional orientada a objetos de software libre, publicado bajo una licencia. Procedural Referencia al concepto de procedimiento. Quantum-GIS Es un Sistema de Información Geográfica. Permite manejar formatos raster y vectoriales, así como bases de datos. Raster Es una estructura o fichero de datos que representa una rejilla rectangular de pixeles o puntos de color. Relación Conexión, de una cosa con otra. Rutear Indicar la ruta de un archivo. SGML Standard Generalized Markup Language (Lenguaje de Marcado Generalizado). Consiste en un sistema para la organización y etiquetado de documentos. Shape Forma. Molde. SIG Un Sistema de Información Geográfica (SIG o GIS). Un modelo de una parte de la realidad referido a un sistema de 100 coordenadas terrestre y construido para satisfacer unas necesidades concretas de información. SQL Lenguaje de consulta estructurado es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en éstas. SRID Identificador de Referencia Espacial (SRID). Corresponde a un sistema de referencia espacial basado en el elipsoide concreto usado para la creación de mapas de tierra plana o de tierra redonda. SSL Secure Sockets Layer proporcionan comunicaciones seguras por una red. Subconsulta Es una instrucción anidada dentro de una instrucción o dentro de otra consulta. Superposición Poner una cosa encima de otra. Tags Etiqueta. Es una marca con tipo que delimita una región en los lenguajes basados en XML. Terabyte Unidad de medida de almacenamiento, su símbolo es TB y equivale a 1024GB. Tuplas Son estructuras de datos que constan de varios campos que pueden contener datos de tipos distintos. Vector Es todo segmento de recta dirigido en el espacio. W3C World Wide Web Consortium, es un consorcio internacional que produce recomendaciones para la World Wide Web. Widgets Es una aplicación o programa, presentado en archivos o ficheros pequeños que son ejecutados por un motor. 101 WKT Well Known Text (texto bien conocido). Una codificación o sintaxis diseñada específicamente para describir objetos espaciales expresados de forma vectorial. XML (lenguaje de marcas extensible), es un lenguaje extensible de etiquetas Extensible Markup Language desarrollado por el W3C. XML Schema Lenguaje de esquema utilizado para describir la estructura y las restricciones de los contenidos de los documentos XML de forma precisa. XPath XML Path Language es un lenguaje que permite construir expresiones que recorren y procesan un documento XML. XSL Extensible Stylesheet Language, (lenguaje extensible de hojas de estilo) lenguajes basados en el estándar XML que permite describir cómo la información contenida en un documento XML debe ser transformada o formateada para su presentación en un medio. XSLT Transformaciones XSL es un estándar de la organización W3C que presenta una forma de transformar documentos XML en otros e incluso a formatos que no son XML. 102 INDICE DE FIGURAS Figura 1.1 Los tres niveles de abstracción de datos 14 Figura 1.2 Ejemplo de diagrama E- R 16 Figura 1.3 Ejemplo de base de datos relacional 18 Figura 1.4 Estructura arborescente a varios niveles 20 Figura 1.5 Código de ejemplo de modelo orientado a objetos 25 Figura 2.1 Tres tipos de datos espaciales: punto, línea y región 36 Figura 2.2 Enlace ‘forward’ para la relación de regiones 42 Figura 2.3 Enlace ‘backward’ para la relación de regiones 42 Figura 2.4 Contenido de Gran L 57 Figura 2.5 Ubicación del bombero “T. Montoya” y del incendio “Grann L”: a) punto A y región de 315km2 el 5/7/06, b) punto B y región de 503km2 el 6/7/06, c) punyo C y región de 503km2 el 7/7/06, y d) punto D y región de 114km2 el 7/7/06 61 Figura 2.6 MPOINT resultante de INTERSECTION(ubicación, GranL). 63 Figura 3.1 Proceso de transformación de documentos XML 73 Figura 4.1 Componentes de un SIG 79 103 INDICE DE TABLAS Tabla 2.1 Modelo conceptual de objetos espaciales. 38 Tabla 2.2 Estándar para la implementación de objetos espaciales 39 Tabla 2.3 Muestra de datos de la relación bosque para SQLST y para el lenguaje de Guting 53 Tabla 2.4 Muestra de datos de la relación incendio para SQLST 54 Tabla 2.5 Muestra de datos de la relación bombero para SQLST 54 Tabla 2.6 Muestra de datos de la relación incendio para el lenguaje de Guting 55 Tabla 2.7 Muestra de datos de la relación bombero para el lenguaje de Guting 55 Tabla 2.8 Resultado de la consulta 1 en el SQLST 57 Tabla 2.9 Resultado de la consulta 1 en Guting 58 Tabla 2.10 Resultado de la consulta 2 en SQLST 59 Tabla 2.11 Contenido de reg_grande 60 Tabla 1.12 Resultado parcial de la consulta 3 en SQLST 61 Tabla 2.13 Resultado de la consulta 3 en SQLST 62 Tabla 2.14. Resultado de la consulta 4 en SQLST 63 Tabla 2.15 Comparación entre SQLST y el lenguaje de Guting 64 Tabla 3.1 Características de las clases base de Java 67 Tabla 3.2 Descripción de algunos componentes de Swing. 68 104 Tabla 3.3 Tecnologías XML 71 105