Motor de Bases de Datos Geográficas (SDE) El Motor de Bases de Datos Geográficas (Spatial Database Engine) SDE es una base de datos geográfica de alto rendimiento que emplea una arquitectura cliente/servidor combinada con un conjunto de servicios para ejecutar operaciones geográficas eficientes y administrar grandes cantidades de datos geográficos en forma compartida. SDE provee a los desarrolladores e integradores de software con una plataforma eficiente para integrar la funcionalidad geográfica en cualquier sistema de información. Descripción Implantado en un ambiente de base de datos relacional, SDE representa elementos geográficos (p.ej., registros de parcelas de terreno) utilizando un modelo de datos geométrico robusto, complementado por el conjunto completo de tipos de datos provistos por las bases de datos relacionales (p.ej., integer, date, BLOB) para representar la información de los atributos asociados. Además de las facilidades para la administración de datos heredados del ambiente de bases de datos relacionales, SDE implementa una arquitectura cliente/servidor, de procesamiento cooperativo, asegurando un máximo rendimiento para cientos de usuarios. La interfaz de programación de aplicaciones (API) en el cliente, disponible para una gran cantidad de plataformas de cómputo diferentes, es fácilmente integrada dentro de cualquier ambiente de desarrollo de aplicaciones. SDE utiliza un modelo de datos unificado para mantener los datos geográficos y sus atributos asociados en un Sistema Administrador de Bases de Datos Relacionales (RDBMS). Estos pueden administrar millones de elementos geográficos que pueden ser encontrados en bases de datos de parcelas de terreno para países completos. Este es hecho en una base de datos continua con acceso de múltiples usuarios. Esto permite almacenar un número extremadamente grande de elementos, como por ejemplo mas de un millón de elementos, juntos en una base de datos continua. SDE provee recuperación extremadamente eficiente de tablas de bases de datos grandes. SDE opera en un ambiente cliente/servidor, que permite a los datos ser almacenados en una localización central o en una red de área amplia (WAN). Esto también permite un verdadero acceso multiusuario a esos datos. A través de mecanismos de bloqueo SDE permite a muchos usuarios actualizar la misma capa de datos mientras otros usuarios accesan los mismos datos para visualización o análisis. Debido a esta arquitectura, este es excelente medio para almacenar una base de datos de elementos muy dinámicos. Ejecución de Análisis Geográfico como una consulta a la base de datos SDE soporta el uso de cláusulas ANSI SQL para recuperar objetos geográficos incluyendo búsquedas geográficas. Las cláusulas SQL pueden contener atributos geográficos tales como area, largo, o tipo de elemento. SDE provee un conjunto robusto de funciones de análisis geométrico y geográfico. Estas funciones determinan las relaciones entre los elementos geográficos incluyendo si ellos se cruzan, si comparten un punto o frontera común, si con iguales, si comparten un área común, o si uno está contenido en el otro. Además, SDE soporta recorte (clipping), disolver (dissolve), generación de corredores, cálculo de distancias, traslape de polígonos, y procesamiento de redes. Con estas, y otras cerca de 100 funciones, las posibilidades para ejecutar análisis geográfico son infinitas. Se puede hacer una consulta a la base de datos para que localice todas las parcelas de terreno que intersectan la ubicación de un río, Beneficios de SDE Los desarrolladores de aplicaciones, administradores de bases de datos y usuarios finales obtienen una gran cantidad de beneficios al utilizar SDE, por ejemplo: El Desarrollador puede: . Construir aplicaciones críticas de alto rendimiento. . Desarrollar aplicaciones específicas para las necesidades de los usuarios. . Introducir funciones de geoprocesamiento sofisticado en sus aplicaciones. . Elegir el ambiente de desarrollo preferido. . Desarrollar aplicaciones para una amplia variedad de plataformas. El Administrador de base de datos puede: . Incrementar la disponibilidad de los datos geográficos . Proveer acceso, a múltiples usuarios, a una misma de base de datos . Afinar el rendimiento de la base de datos . Administrar millones de elementos geográficos . Mantener la integridad de los elementos geográficos . Integrar datos geográficos en la estructura de administración de datos coorporativos . Administrar los datos geográficos utilizando las facilidades de un RDBMS El Usuario Final obtiene: . Aplicaciones rápidas . Construidas para sus especificaciones . En plataformas de cómputo populares Procesamiento Distribuido Cooperativo La adaptación de un SIG al ambiente cliente/servidor generalmente significa la simple transferencia de porciones de un mapa hacia y desde un servidor de archivos. SDE es un concepto SIG totalmente nuevo, desarrollado para tomar ventaja de la tecnología de software y hardware actuales. SDE no es sencillamente un servidor de archivos. Rendimiento SDE utiliza un modelo cliente/servidor que enfatiza el procesamiento cooperativo asincrónico entre las tareas del servidor y el cliente. Esto significa que las tareas del servidor realmente predicen las demandas de las tareas del cliente adelantándose a las solicitudes. La arquitectura de múltiples hilos de SDE automáticamente obtiene ventaja de los equipos con múltiples procesadores, y el manejo inteligente de los "buffers" maximiza la transferencia a través de la red. El modelo cliente/servidor de procesamiento cooperativo empleado por SDE está diseñado para proveer máximo rendimiento en un ambiente cliente/servidor: . Las operaciones que son particularmente intensas de CPU, tales como el cálculo de corredores y traslape de polígonos, son ejecutados por las tareas del cliente SDE para tomar ventaja del poder de procesamiento de las estaciones de trabajo. Esto evita asignar trabajo innecesario al servidor de SDE y mejorar el rendimiento de procesamiento. La elección de la localización para cualquier función dada es automática y transparente al desarrollador de la aplicación. . Las tareas en el servidor SDE minimizan la congestión en la red ejecutando todas las búsquedas y recuperaciones geográficas localmente y transmitiendo a la tarea cliente solo los elementos y datos requeridos por la aplicación. . El manejo inteligente de "buffers" permite que las tareas cliente y servidor sean ejecutadas en forma asincrónica. De hecho, las tareas servidores predicen los requerimientos de datos siguientes del cliente, recuperan y mantienen los datos requeridos. Sistemas Abiertos para accesar datos geográficos Por una cantidad de razones, particularmente situaciones institucionales, es útil que los datos geográficos sean intercambiados entre un conjunto de herramientas, tales como sistemas de Dibujo Asistido por Computadora (CAD), y otro conjunto de herramientas, como Sistemas de Información Geográfica (SIG). Sin embargo, los datos geográficos vienen en muchos formatos diferentes. Esto resulta de los diferentes enfoques para la creación de representaciones digitales de los datos geográficos. Interoperabilidad a través de APIs El enfoque utilizado por SDE para la interoperabilidad es proveer una Interfaz de Programación de Aplicaciones (API) abierta que permita a los usuarios de un producto de software particular usar herramientas de software para accesar los datos geográficos almacenados en la base de datos. De esta forma, dichos productos pueden leer y escribir datos directamente a la base de datos manteniendo la integridad de la información que allí se almacena. La API también provee facilidades para que las funciones sean ejecutadas en el cliente o en el servidor SDE. El cliente controla la integración con los productos de software particulares, tales como sistemas CAD, permitiendo la mayor flexibilidad para el desarrollo de aplicaciones para responder a los requerimientos específicos de los usuarios. La API consiste de una interfaz en lenguaje C que puede ser usada con aplicaciones escritas en C, C++, Visual Basic, u otros lenguajes de programación de alto nivel. Bases de Datos Relacionales SDE utiliza un Sistema Administrador de Base de Datos Relacional (RDBMS por sus siglas en inglés) que es invisible para el usuario final y el desarrollador de aplicaciones. Este RDBMS almacena la información geográfica y los atributos asociadas que controla SDE. Así, el mas alto punto de ingreso para las aplicaciones clientes es a través de las capas del SDE. Las aplicaciones pueden ejecutar SDE en paralelo con su base de datos convencional, almacenando la información geográfica y no geográfica en el mismo sistema de información. El almacenamiento de los datos geográficos dentro de una base de datos relacional significa que se pueden obtener todos los beneficios de las capacidades de una base de datos relacional estandar incluyendo compromiso de dos fases, retrocesos, seguridad, y otras facilidades provista por la tecnología de bases de datos relacionales. Control de transacciones En SDE el control de transacciones, por medio del compromiso de dos fases (two phase-commit) permite que las aplicaciones cliente sincronicen la actualización de los datos geográficos con actualizaciones a bases de datos "externas" (p ej. Información sobre títulos de propiedad) y retroceder (rollback) la transacción si el compromiso "externo" no fue exitoso. Este tipo de restricciones permiten mantener las consistencia entre la información geográfica y alfanumérica. Todas las operaciones de creación y actualización de datos geográficos pueden ser ejecutadas bajo control de transacciones explícitamente supervisadas por el cliente. El API cliente de SDE provee cuatro funciones principales para esto: . SE_start_trans(): Inicializa una transacción. Las operaciones de modificaciones de datos siguientes son conducidas bajo esta transacción hasta que sean comprometidas o retrocedidas. . SE_prepare_trans(): La ejecución exitosa de esta función garantiza un compromiso, a menos que el hardware o la red fallen. El identificador del cliente es regresado a la tarea cliente. . SE_commit_trans(): Compromete la transacción actual. Todas las modificaciones, de los datos que fueron ejecutadas despúes de la llamada SE_start_trans anterior, son hechas permanentes. Las transacciones comprometidas no pueden ser retrocedidas. . SE_rollbak_trans(): Aborta o retrocede todos los cambios hechos desde la llamada SE_start_trans anterior. Bloqueo de datos geográficos Independiente del bloqueo de registros provisto por el RDBMS, el SDE provee soporte para el bloqueo de datos geográficos. El SDE soporta bloques compartidos y exclusivos a nivel de elemento geográfico o a nivel de área. Así, el administrador del sistema se puede asegurar que otros usuarios no modifiquen datos que están en uso. Tres tipos de bloqueos y dos modos de bloqueos son soportados. Los tipos de bloqueos disponibles son a nivel de capa, área, y auto. El bloqueo a nivel de CAPA bloquea la capa entera del mapa en el modo especificado. El bloqueo a nivel de AREA permite al bloquear un área rectangular específica de la capa del mapa. El bloqueo AUTOMATICO es un caso especial de los bloqueos a nivel de AREA. Un bloqueo AUTOMATICO Respaldos en línea de alto rendimiento SDE toma ventaja de las capacidades para respaldo de la base de datos provistas por los RDBMS. La base de datos puede ser respaldada en línea, aún en períodos picos de actividad. El respaldo se lleva a cabo mediante copias eficientes de archivos secuenciales que no requieren la coordinación con otras transacciones. Debido a esto, no se produce una degradación del rendimiento, y grandes bases de datos pueden ser respaldadas en dispositivos de alta velocidad. Además, se puede recuperar porciones dañadas de la base de datos (tablespaces) en línea, mientras el resto de la base de datos está en uso. Múltiples sesiones pueden realizar la recuperación, a nivel de archivo, en paralelo, minimizando el tiempo de recuperación. Seguridad e Integridad Cumpliendo con los estandares de los RDBMS modernos, el SDE tiene un sistema de seguridad para validar usuarios y sus permisos de acceso a la base de datos. Este sistema tiene tres partes principales que proveen un esquema de seguridad flexible para todos los ambientes. El primer nivel de seguridad está implantado a nivel de acceso al servidor. Cuando una tarea cliente solicita los servicios de un servidor SDE, al usuario se le solicita una clave para hacer ingreso. Una vez que el usuario es validado, SDE procede con el siguiente nivel, chequeando para asegurarse que el usuario está autorizado para utilizar el conjunto de datos seleccionados. Si el usuario es confirmado como un usuario válido del conjunto de datos, entonces la tarea cliente hereda una máscara de seguridad definida especificamente para los el conjunto de datos basado en la clave del usuario. Un tipo especial de clase de seguridad es utiliza para declarar que un tipo de elemento es mantenido_externamente. Un tipo de elemento al que se le ha asignado esta clase de seguridad no puede ser modificado localmente. Esta clase de seguridad es utilizada para soportar conjuntos de datos mediante réplicas. Esto significa que un servidor dado podría mantener uno o mas de sus tipos de elementos (p.ej. catastro) actualizado automáticamente por otros servidores como una réplica del tipo de elementos. Esta capacidad puede ser utilizada para proveer alto rendimiento local por medio de conjuntos de datos locales limitados. En forma adicional, se cuenta con comandos de auditoría sencillos que registran los accesos (e intentos) a datos, tanto como las horas de ingreso y salida de la sesión, para cada capa, elemento o usuario en el sistema. Redes y plataformas soportadas. Siendo totalmente abierto, SDE provee acceso en ambientes de Redes de Area Local (LAN) y Redes de Area Amplia (WAN) utilizando el protocolo TCP/IP. Configuraciones heterogéneas de plataformas UNIX y PC son soportadas utilizando la Representación de Datos Externos (XDR). SDE puede ser ejecutado, tanto como cliente o servidor, en las siguientes plataformas: DG AViiON, DEC OSF1, HP 9000/70 y 8x7, IBM AIX, Silicon Graphics, Solaris 1, Solaris 2, Windows NT.