Capitulo 8–Leccion 1: Extender la funcionalidad de Microsoft SQL Server con los datos espaciales, búsqueda de texto completo, y Service Broker


Introducion:
Con los nuevos tipos de datos espaciales previstos en Microsoft SQL Server 2008, se pueden almacenar datos de localización que le permiten trabajar con la ubicación y la información geoespacial.
Puede utilizar los datos de la geografía y la geometría de los tipos de vía estándar geométrica y coordenadas x, y, z , así como elipsoidal (tierra redonda) en representaciones tales como latitud y longitud.
Las empresas pueden utilizar estos datos para rastrear las regiones de ventas, determinar las rutas de un almacén de una tienda, o para determinar la ubicación de una determinada clase en una escuela y encontrar la distancia a la fuga de bomberos más cercana.
Como desarrollador de bases de datos, sus bases de datos puede contener tipos especiales de datos de funciones, como varchar (max), XML, la geometría o geografía. SQL Server 2008 proporciona las herramientas que necesita para utilizar estos datos de manera eficiente. Las capacidades de búsqueda de texto completo permiten realizar búsquedas avanzadas lingüística que se basa mucho más allá de las capacidades de la cláusula LIKE. Además, estas búsquedas se pueden completar en las columnas con tipos de datos como varbinary (max) que no se pueden enumerar como columnas de clave en los índices estándar.
Además, SQL Server Service Broker permite crear aplicaciones que se aprovechan de la entrega de mensajes asincrónico garantizada entre los servicios locales o remotos.
Service Broker utiliza una combinación de objetos tales como las colas, diálogos, contratos, servicios y diferentes tipos de mensajes para desarrollar soluciones de mensajería asíncrona.
Una empresa puede usar Service Broker para diseñar una serie de aplicaciones que automatizan el reembolso de los gastos de viaje para los empleados de la empresa. Cuando los empleados llenan los informes de gastos, la información se envía a una cola donde se almacena hasta que el procesamiento por lotes todas las noches de los informes. Los informes de gastos con la información apropiada, se envían a una aplicación que debe pagarse. Informes incompletos de gastos se marcan y luego son enviados a través de otro servicio para una cola a la espera de procesamiento manual por un administrador.

Lección 1: Implementación de Tipos de Datos Espaciales

SQL Server 2008 incluye una variedad de nuevos tipos de datos, incluyendo dos tipos de datos espaciales que permiten gestionar los datos geográficos y geométricos. Mediante el uso de estos tipos de datos, puede almacenar la información de ubicación, tales como latitud y longitud, que puede ser usado en conjunción con Microsoft Virtual Earth para proporcionar una representación visual de los datos geoespaciales.

Entendiendo los tipos de datos espaciales

Los tipos de datos geométricos y tipos de datos geográficos se implementan como tipos de datos .NET CLR. Ambos son tipos predefinidos y disponibles en cada base de datos en el servidor como los objetos del sistema y no requiere ninguna configuración adicional antes de que puedan ser utilizados.

Entendiendo la terminologia de los datos espaciales

Cuando se trabaja con datos espaciales, es necesario estar familiarizado con los siguientes términos:
geográficos (geography data type): tipo de datos utilizado para almacenar datos elipsoidales, como la latitud y longitud. Virtual Earth, muchos productos de mapas, y los resultados del censo general, cuentan con las medidas elipsoidal.
geométricos (geometry data type): tipo de datos utilizado para almacenar dos y tres coordenadas de datos dimensional. Por ejemplo, puede utilizar el tipo de geometría de datos para rastrear los lugares donde se almacenan diferentes productos dentro de un almacén.
Para obtener más información acerca de las diferencias entre los dos tipos de datos espaciales, así como la forma y la orientación de las mediciones se ven afectadas con cada tipo de datos, consulte el artículo "Tipos de datos espaciales" en este Link.
Open Geospatial Consortium (OGC): Una organización internacional sin fines de lucro que desarrolla estándares para geoespaciales y servicios basados ​​en ubicación (Más informacion AQUI).
Texto Conocido (Well-known text - WKT): Un estándar creado por el OGC para representar texto basado en las descripciones de los objetos geoespaciales.
Binario Conocido(Well-known binary- WKB): El equivalente binario de WKT, que se utiliza a veces para transferir y almacenar datos espaciales.
Métodos (Methods): las acciones de un objeto puede realizar.
Métodos de OGC y extendidos (OGC and Extended Methods): Los métodos diseñados para trabajar con la geometría y los tipos de datos geográficos.
Objeto (Objet): Una colección de propiedades y métodos que proporcionan una funcionalidad definida.
Instanciación (Instantiation): El proceso de producir una instancia concreta de un objeto basado en las propiedades del objeto y sus métodos.
Identificador de referencia espacial (Spatial Reference Identifier - SRID): Un número de referencia asociado con un modelo específico de la tierra. Estos identificadores de referencia del sistema de identificación estándar European Petroleum Survey Group (EPSG). Por ejemplo, SRID 4326, dato de tipo geográfico por defecto del SRID, se asigna a la estándar WGS 84. Como los tipos de datos de geometría puede existir en el espacio plano no definido, el SRID la geometría por omisión es 0, que representa el espacio plano no definido (Más informacion AQUI).
Tipos de instancia (o los objetos de datos espaciales): Un grupo de 11 objetos de datos espaciales diseñadas para permitirle trabajar con datos geométricos o geográficas. Sólo siete de estos objetos se pueden instanciar en una base de datos. Los tipos de instancia espacial forman parte de la GeometryCollection y están construidos en una jerarquía. Cada objeto recibe las propiedades de su objeto principal en la jerarquía de clases, como se muestra en la Figura 8.1.
image
Como se indica en los cuadros de color celeste en la figura anterior,  de los tipos de datos  punto, LineString, Polygon, MultiPolygon, MultiLineString, multipunto y GeomCollection  se crear una instancia de ellos en bases de datos SQL Server. Los cuadros amarillos representan tipos espaciales, que se utilizan para definir las propiedades generales que son heredadas por los objetos por debajo de ellos, pero no están lo suficientemente completos como para crear una instancia por su cuenta.
Restricciones al utilizar el tipo de datos geograficos (geography)
Cuando se utiliza el tipo de datos geográficos, cada instancia de geography debe encajar dentro de un solo hemisferio.
No se puede almacenar objetos de más de un hemisferio. Por lo general se piensa que los hemisferios son el norte, sur, oriental y occidental, pero este no es el caso con el tipo de datos geography. En el tipo de datos geográficos, un hemisferio sólo representa la mitad del globo. Además, si utiliza un tipo de datos geográficos que requiere la participación de dos o más instancias geography, y los resultados de los métodos no se ajustan dentro de un solo hemisferio, la salida devuelve NULL. Finalmente, cuando se utiliza una representación WKT o WKB, los resultados deben caber dentro de un solo hemisferio o en el sistema produce una excepción ArgumentException.

Instanciación de tipos de datos espaciales
Antes de que pueda crear una instancia tipos de datos espaciales, debe crear una tabla que incluye una columna definida con el tipo de datos geometry o geography. Para nuestros ejemplos de este capítulo, se utiliza el tipo de datos geográficos.
El código de ejemplo siguiente se crea una tabla con el nombre del museo. La columna Ubicación contiene los datos geoespaciales para la ubicación del museo:

CREATE TABLE Museum
(MuseumID int IDENTITY PRIMARY KEY,
MuseumName nchar(50),
MuseumAddress nvarchar(200),
Location geography);

Una vez creada la tabla con una columna de geografía, se puede crear una instancia del tipo de datos espaciales mediante la inserción de datos geodésicos, tales como latitud y longitud, en la tabla.
Hay un gran número de métodos disponibles para permitir la introducción de información de diferentes formatos en la columna de la geografía. El método estático punto de la geografía extendida  crea una instancia que representa un punto que incluye información sobre la longitud, latitud, y su SRID.
Es importante recordar que los datos geoespaciales se refiere con frecuencia en términos de latitud seguida por la longitud. Si ha utilizado una Community Technology Preview (CTP) de SQL Server 2008 antes de la CTP 6, el orden de los comandos era la latitud seguida por la longitud. A partir de CTP 6 y en la versión final de SQL Server 2008, Microsoft puso los argumentos en el orden de longitud seguido por la latitud, en respuesta a la entrada del usuario.
Dependiendo de la versión de SQL Server Books Online que está utilizando, la sintaxis de los métodos espaciales podría tener la longitud y la invierte los valores de latitud.
El Método extendido Parse de la geografía estatica devuelve una instancia de geografía cuando la entrada se expresa en la representación WKT OGC. El método Parse tiene un único parámetro de entrada que define la representación WKT de la instancia de la geometría que se devuelven. (Más información AQUI)

El siguiente código agrega una fila para el museo COSI en Columbus, Ohio, al Museo de la tabla. Este código utiliza los métodos Parse y punto para crear una instancia de un punto a partir de una descripción WKT. El valor predeterminado SRID de 4326 se utiliza:
INSERT INTO Museum
(MuseumName, MuseumAddress, Location)
VALUES
('COSI Columbus',
'333 West Broad Street, Columbus, OH 43215',
geography::Parse('POINT(-83.0086 39.95954)'));
Parse y STGeomFromTextTanto los Parse y los métodos de STGeomFromText devuelve una instancia de geometría a partir de una representación WKT OGC. La diferencia entre los comandos es que de análisis supone un SRID de 0 como parámetro. STGeomFromText incluye un argumento para especificar el SRID.

image

La función ToString muestra el valor de la geografía como la lectura del texto representado en WKT, lo mismo que utilizó cuando se añade la fila. La Figura muestra la información de ubicación sin necesidad de convertir el lugar en una cadena para facilitar su lectura.

Agregamos una nueva fila a la tabla con el siguiente codigo:
INSERT INTO Museum
(MuseumName, MuseumAddress, Location)
VALUES
('Columbus Art Museum',
'480 East Broad Street, Columbus, OH 43215',
geography::Parse('POINT(-82.98775 39.963775)'));

Despues de un select, una ficha adicional llamada “Resultados espaciales” aparece al lado de la pestaña Resultados. Esta ficha se puede utilizar para ver una representación gráfica de los datos espaciales.

image
Para mostrar mejor la ficha Resultados espaciales, puede crear una línea utilizando los métodos STLineFromText y una cadena lineal. El siguiente código define una variable de tipo de geografía y establece la variable de una línea entre dos puntos.
Primero creo una tabla para las calles:

CREATE TABLE Streets
    ( StreetId int IDENTITY (1,1),StreetName nvarchar(20), StreetGeo geometry);
GO

y despues inserto la linea

INSERT INTO Streets (StreetName, StreetGeo)
VALUES ('Example LINESTRING',
geometry::STGeomFromText
('LINESTRING (-83.0086 39.95954, -82.98775 39.963775)', 0))
GO

Como veran, obtenemos una linea que une estos puntos anteriores (solo los hice coincidir a los puntos, no es necesario tenerlos definido de antes)
image

Resumen de la lección
Los tipos de datos de geografía y geometría proporcionan la capacidad para trabajar con datos espaciales definidos por el sistema en lugar de tener que definir sus propios tipos de datos CLR.
Puede crear una copia de datos espaciales mediante el uso de cualquiera de los métodos espaciales se incluye con SQL Server 2008.

No hay comentarios:

Publicar un comentario