Guía y consulta del usuario

Los pasos del programa de ejemplo

La Tabla 5 muestra los pasos del programa de ejemplo, los procedimientos almacenados asociados y una descripción de cada paso. Las funciones C para invocar los procedimientos almacenados se muestran en la columna Acción de la Tabla 5 y aparecen entre paréntesis. Para obtener más información sobre los procedimientos almacenados, consulte Procedimientos almacenados. El programa de ejemplo se basa en los escenarios descritos en el tema Escenario: una compañía de seguros actualiza su GIS.

Tabla 5. Programa de ejemplo de DB2 Spatial Extender
Pasos del programa de ejemplo Acción Descripción
Habilitar/inhabilitar la base de datos espacial
  1. Habilitar la base de datos espacial (gseEnableDB)
  2. Inhabilitar la base de datos espacial (gseDisableDB)
  3. Habilitar la base de datos espacial (gseEnableDB)

  1. Este es el primer paso a seguir para poder utilizar DB2 Spatial Extender. Una base de datos habilitada para operaciones espaciales tiene una serie de tipos espaciales, una serie de funciones espaciales, una serie de predicados espaciales, un nuevo tipo de índice y una serie de vistas y tablas de administración.
  2. Este paso se suele llevar a cabo cuando ha habilitado funciones espaciales para la base de datos equivocada. Cuando inhabilita una base de datos espacial, elimina una serie de tipos espaciales, una serie de funciones espaciales, una serie de predicados espaciales, un nuevo tipo de índice y una serie de vistas y tablas de administración.
    Nota:La inhabilitación de la base de datos fallará si hay objetos creados que dependen de los objetos creados por el procedimiento de habilitación de la base de datos. Por ejemplo, la creación de una tabla con una columna espacial del tipo ST_Point hará que falle la inhabilitación de la base de datos. Esto sucede porque la tabla depende del tipo ST_Point, el cual debe eliminar el procedimiento de inhabilitación de la base de datos.
  3. Igual que 1.
Registrar sistemas de referencias espaciales
  1. Registrar el sistema de referencias espaciales para la columna LOCATION de la tabla CUSTOMERS (gseEnableSref)
  2. Registrar el sistema de referencias espaciales para la columna LOCATION de la tabla OFFICES (gseEnableSref)
  3. Desregistrar el sistema de referencias espaciales para la columna LOCATION de la tabla OFFICES (gseDisableSref)
  4. Volver a registrar el sistema de referencias espaciales para las columnas ZONE de la tabla OFFICES (gseEnableSref)

  1. Este paso define un nuevo sistema de referencias espaciales (SRS) cuya finalidad es interpretar los datos espaciales de la tabla CUSTOMERS. Un sistema de referencias espaciales incluye datos de geometría en un formato que se puede almacenar en una columna de una base de datos habilitada para operaciones espaciales. Después de que un SRS se registra ante una determinada capa, las coordenadas aplicables a dicha capa se pueden almacenar en la columna de la tabla CUSTOMERS asociada.
  2. Este paso define un nuevo sistema de referencias espaciales (SRS) cuya finalidad es interpretar los datos espaciales de la capa OFFICES. Cada capa de tabla debe tener un SRS definido. Es posible que las capas de la tabla OFFICES necesiten un SRS asociado distinto del de la capa de la tabla CUSTOMERS.
  3. Este paso sólo se lleva a cabo si el usuario especifica los parámetros de SRS incorrectos ante la capa o columna espacial. Cuando el usuario desregistra un SRS correspondiente a la capa de la tabla OFFICES, elimina la definición con sus parámetros asociados.
  4. Este paso define un nuevo sistema de referencias espaciales (SRS) cuya finalidad es interpretar los datos espaciales de la capa OFFICES.

Crear las tablas espaciales
  1. Modificar la tabla CUSTOMERS, añadiendo la columna LOCATION (gseSetupTables)
  2. Crear la tabla OFFICES (gseSetupTables)

  1. La tabla CUSTOMERS representa datos comerciales que se han almacenado en la base de datos durante varios años. La sentencia ALTER TABLE añade una nueva columna (LOCATION) del tipo ST_Point. Esta columna se llenará geocodificando las columnas de dirección en un paso posterior.
  2. La tabla OFFICES representa, entre otros datos, la zona de ventas correspondiente a cada oficina de una compañía de seguros. La tabla entera se llenará con los datos de atributo procedentes de una base de datos que no es de DB2 en un paso posterior. Este paso incluye la importación de datos de atributo en la tabla OFFICES procedentes del archivo SHAPE.

Registrar capas espaciales
  1. Registrar la columna LOCATION en la tabla CUSTOMERS como una capa (gseRegisterLayer)
  2. Registrar la columna ZONE de la tabla OFFICES como una capa (gseRegisterLayer)

Estos pasos registran las columnas LOCATION y ZONE como capas ante DB2 Spatial Extender. Para que los programas de utilidad de DB2 Spatial Extender (por ejemplo, el geocodificador) puedan llenar o acceder a una columna espacial, tiene que registrarla como una capa.
Llenar las capas espaciales
  1. Geocodificar los datos de dirección correspondientes a la columna LOCATION de la tabla CUSTOMERS (gseRunGC)
  2. Cargar la tabla OFFICES utilizando la modalidad de agregación (gseImportShape)
  3. Cargar la tabla HAZARD_ZONE utilizando la modalidad de creación (gseImportShape)

  1. Este paso lleva a cabo una geocodificación de proceso por lotes invocando el programa de utilidad del geocodificador. La geocodificación de proceso por lotes se suele realizar cuando una parte significativa de la tabla se tiene que geocodificar o se tiene que volver a geocodificar.
  2. Este paso carga la tabla OFFICES con datos espaciales existentes en el formato de un archivo SHAPE. Puesto que la tabla OFFICES existe y la capa OFFICES/ZONE está registrada, el programa de utilidad de carga agregará los nuevos registros a una tabla existente.
  3. Este paso carga la capa HAZARD_ZONE con datos espaciales existentes en el formato de un archivo SHAPE. Puesto que ni la tabla ni la capa existen, el programa de utilidad creará la tabla y registrará la capa antes de que se carguen los datos.

Habilitar índices espaciales
  1. Habilitar el índice espacial para la columna LOCATION de la tabla (gseEnableIdx)
  2. Habilitar el índice espacial para la columna ZONE de la tabla OFFICES (gseEnableIdx)
  3. Habilitar el índice espacial para la columna LOCATION de la tabla OFFICES (gseEnableIdx)
  4. Habilitar el índice espacial para la columna BOUNDRY de la tabla HAZARD_ZONE (gseEnableIdx)

Estos pasos habilitan el índice espacial para las tablas CUSTOMERS, OFFICES y HAZARD_ZONE.
Habilitar la geocodificación automática
  1. Habilitar la geocodificación automática para las columnas LOCATION y ADDRESS de la tabla CUSTOMERS (gseEnableAutoGC)

Esta paso activa la invocación automática del geocodificador. La geocodificación automática permite que las columnas LOCATION y ADDRESS de la tabla CUSTOMERS estén sincronizadas entre sí para futuras operaciones de inserción y actualización.
Insertar/actualizar la tabla CUSTOMERS
  1. Insertar algunos registros con otra calle (gseInsDelUpd)
  2. Actualiza algunos registros con una dirección nueva (gseInsDelUpd)

Estos pasos demuestran una inserción y actualización en la columna LOCATION de la tabla CUSTOMERS. Una vez habilitada la geocodificación automática, la información procedente de la columna ADDRESS se geocodifica automáticamente cuando se inserta o actualiza en la columna LOCATION. Este proceso se ha habilitado en el paso anterior.
Inhabilitar la geocodificación automática
  1. Inhabilitar la geocodificación automática para la capa CUSTOMERS (gseDisableAutoGC)
  2. Inhabilitar el índice espacial para la capa CUSTOMERS (gseDisableIdxCustomersLayer)

Estos pasos inhabilitan la invocación automática del geocodificador y del índice espacial como preparación para el siguiente paso (el siguiente paso incluye una nueva geocodificación de la tabla CUSTOMERS entera). Si está cargando gran cantidad de geodatos, se recomienda inhabilitar el índice espacial antes de cargar los datos y luego habilitarlo una vez finalizada la carga.
Volver a geocodificar la tabla CUSTOMERS
  1. Geocodificar de nuevo la capa CUSTOMERS con un nivel de precisión más bajo - 90% en lugar de 100% (gseRunGC)
  2. Volver a habilitar el índice espacial para la capa CUSTOMERS (gseEnableIdx)
  3. Volver a habilitar la geocodificación automática con un nivel de precisión más bajo - 90% en lugar de 100% (gseEnableAutoGC)

Estos pasos ejecutan de nuevo el geocodificador en modalidad de proceso por lotes, vuelven a habilitar la geocodificación automática con un nuevo nivel de precisión y vuelven a habilitar el índice espacial y la geocodificación automática. Esta acción se recomienda cuando el administrador espacial advierte un alto nivel de errores en el proceso de geocodificación. Si el nivel de precisión se define en 100%, es posible que no pueda geocodificar una dirección porque no encuentra una dirección correspondiente en los datos de referencia. Al reducir el nivel de precisión, el geocodificador tiene más probabilidades de encontrar datos coincidentes. Una vez se ha vuelto a geocodificar la tabla en modalidad de proceso por lotes, tanto la geocodificación automática como el índice espacial se vuelven a habilitar para facilitar el mantenimiento incremental del índice espacial y de la columna espacial para futuras operaciones de inserción y actualización.
Crear una vista y registrar sus columnas espaciales como capas de vista
  1. Crear una vista, HIGHRISK_CUSTOMERS, basada en la unión de la tabla CUSTOMERS y la tabla HAZARD_ZONE (gseCreateView)
  2. Registrar las columnas espaciales de la vista como capas (gseRegisterLayer)

Estos pasos crean una vista y registran sus columnas espaciales como capas de vista.
Realizar análisis espacial
  1. Buscar la distancia media de los clientes de cada oficina (ST_Within, ST_Distance)
  2. Buscar el ingreso y la prima media por cliente para cada oficina (ST_Within)
  3. Buscar clientes que no están cubiertos por ninguna oficina existente (ST_Within)
  4. Buscar el número de zonas peligrosas que solapa cada zona de oficinas (ST_Overlaps)
  5. Buscar la oficina más cercana a la ubicación de un determinado cliente, suponiendo que la oficina se encuentra en el centro de la zona de oficinas (ST_Distance, ST_Centroid)
  6. Buscar clientes cuya ubicación es cercana al límite de una determinada zona peligrosa (ST_Buffer, ST_Overlaps)
  7. Buscar aquellos clientes de alto riesgo que están cubiertos por una determinada oficina
(Todos los pasos utilizan gseRunSpatialQueries)
Estos pasos realizan un análisis espacial utilizando las funciones y predicados espaciales en lenguaje SQL de DB2. El optimizador de consultas de DB2 aprovecha el índice espacial de las columnas espaciales para mejorar el rendimiento de las consultas siempre que es posible.
Exportar capas espaciales a archivos Exportar la capa highRiskCustomers (gseExportShape) El paso muestra un ejemplo de exportación de los resultados de su consulta a un archivo SHAPE. Al exportar los resultados de la consulta a otro formato de archivo se permite que la información sea utilizada por una herramienta de otro proveedor (por ejemplo, ESRI ArcInfo).


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]