View
213
Download
0
Category
Preview:
Citation preview
Información sobre versión Beta
• Toda la información y ejemplos son relativos a
la beta pública CTP5 de SQL Server 2008
• Comandos y funcionalidad pueden diferir de la
versión final RTM
2© 2007 Solid Quality Mentors
Agenda
• Escenario
• Modelos espaciales
– Geodésico
– Planar
• Tipos de datos espaciales en SQL Server 2008
– Geometry
– Geography
• Usabilidad
• Indexación
Tipos de datos espaciales
3© 2007 Solid Quality Mentors
Tipos de datos espaciales
• Ejemplos de uso de tipos de datos espaciales:
– Un minorista web puede mostrar las localizaciones de
todas sus tiendas como puntos en un mapa y
encontrar la mas cercana a un código postal concreto
– Un jefe de ventas puede definir regiones geográficas
de ventas y usarlas para encontrar las ventas más
representativas, así como realizar análisis de
rendimiento de ventas
– Un arquitecto puede crear planos para una nueva
construcción y solapar dichos planos dentro del mapa
del sitio propuesto
Escenario
4© 2007 Solid Quality Mentors
Tipos de datos espaciales
• (continuación de ejemplos)
– Un conductor puede encontrar la distancia entre dos
puntos y planificar la ruta
– Una inmobiliaria puede rápidamente identificar
propiedades que concuerden con los requerimientos
del clientes (casas de 90 metros cuadrados cerca de
las Lagunas del Ruidera)
– Una aplicación móvil puede encontrar gasolineras a
menos de 100 metros de donde se encuentra
Escenario
5© 2007 Solid Quality Mentors
Modelos Espaciales
• Geodésico
– El problema de describir una localización planetaria
es que la superficie no es plana
– Una representación fiel de la Tierra es normalmente
representada como un globo, cuyas localizaciones
van descritas mediante latitud y longitud, que se
miden en grados desde el ecuador y el meridiano de
Greenwich respectivamente
Vistazo
7© 2007 Solid Quality Mentors
Modelos espaciales
• Planar
– Es mucho mas fácil trabajar en superficies de 2
dimensiones
– Trabajar con datos geospaciales en dos dimensiones
, requiere una proyección de los objetos geográficos
• Ej.. Proyección Mercatore
• Posee distorsiones
– Los modelos planos trabajan bien para áreas
geográficas pequeñas, como países pequeños,
estados y ciudades, o para planos de interior
Vistazo
9© 2007 Solid Quality Mentors
Soporte Espacial en SQL 2008
• SQL Server 2008 Soporta ambos modelos
mediante dos tipos de datos diferentes
– geography (modelo geodésico)
– geometry (modelo planar)
• Implementados como SQLCLR UDT
– Ambos tipos de datos poseen propiedades y métodos
que puedes utilizar para realizar operaciones
espaciales, como calcular distancias, encontrar
intersecciones,…
Tipos de datos
11© 2007 Solid Quality Mentors
Soporte Espacial en SQL 2008
Jerarquía en la que se basan tanto los tipos de datos geometry y geography .
Los tipos instanciables por geometry y geography están en color azul.
Objetos Espaciales
13© 2007 Solid Quality Mentors
Soporte Espacial en SQL 2008
• Planar
– Coordenadas dadas en “unidades”
– Las medidas de distancias y áreas se dan en la
misma unidad de medida que las coordenadas
• Ej.: Usando tipo de datos geometry, la distancia entre (2, 2) y
(5, 6) es 5 unidades, sean las que sean
Diferencias de coordenadas y medidas
14© 2007 Solid Quality Mentors
declare @box as geometry =
geometry::STGeomFromText('POLYGON ((0 0, 150 0, 150
150, 0 150, 0 0))', 0)
select @box.STAsText()
Soporte Espacial en SQL 2008
• Geodésica
– Las coordenadas se dan en grados de latitud y
longitud
– Distancias y áreas son normalmente metros y metros
cuadrados
• La medida puede depender del índice de referencia espacial
(SRID) de la instancia geography. La unidad de medida mas
usual para el tipo geography son los metros
Diferencias de coordenadas y medidas
15© 2007 Solid Quality Mentors
declare @home as geography =
geography::STPointFromText('POINT(45.32 9.07)', 4326)
Soporte Espacial en SQL 2008
• En un sistema elipsoidal, un polígono no tiene
significado, o no tiene sentido sin orientación
– Ej.: el anillo sobre el ecuador describe el hemisferio
norte o el sur?
Orientación
16© 2007 Solid Quality Mentors
Soporte Espacial en SQL 2008
• Para usar el tipo de datos geography
correctamente, debemos especificar tanto la
orientación del anillo como su localización
exacta
Orientación
17© 2007 Solid Quality Mentors
Soporte Espacial en SQL 2008
• Cada instancia geográfica debe ajustarse dentro
de un único hemisferio.
– No podemos almacenar objetos mas grandes que un
hemisferio
• Cualquier instancia que represente un objeto
mayor que un hemisferio lanzara una excepción
ArgumentException.
Limitaciones del tipo de datos geography
18© 2007 Solid Quality Mentors
SQL Server 2008 Spatial Support
• Los métodos del tipo de datos geography que
requieren la entrada de dos instancias
geography devolverán null si el resultado no
cabe en un único hemisferio
Limitaciones del tipo de datos geography
20© 2007 Solid Quality Mentors
SQL Server 2008 Spatial Support
• SRID: identificador de referencia espacial
– Se corresponde tanto con un sistema de referencia
espacial para mapeos de tipo “tierra plana” así como
mapeos de “tierra redonda”
• El sistema de identificación de referencia
espacial se define por el European Petroleum
Survey Group (EPSG) standard, que es un
conjunto de estándares desarrollados para
almacenamiento de datos cartográficos y
posicionamiento. Este estándar es propiedad de
los productores de gas y combustible (OGP) y
del comité de posicionamiento.
SRID
21© 2007 Solid Quality Mentors
Soporte Espacial en SQL 2008
• Las instancias geometry tienen por defecto
SRID = 0
• Las instancias geography deben utilizar los
SRIDs soportados
– Por defecto es 4326 (WGS84)
select * from sys.spatial_reference_systems
• Solo las instancias espaciales con el mismo
SRID pueden operar entre si cuando utilizas
métodos espaciales con tus datos
• Una columna puede utilizar objetos con
diferentes SRIDs
SRID
22© 2007 Solid Quality Mentors
Uso
• Puedes construir instancias de tipos de datos
geometry introduciéndolos con formato Well-
Known Text (WKT)
– Haciendo un cast a la cadena
– Invocando el método estático STGeomFromString
• O usando formas especializadas STxxxFromString. Ej.:
STPolyFromString
Construcción de instancias
23© 2007 Solid Quality Mentors
declare @box as geometry =
geometry::STGeomFromText('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))', 0)
select @box.STAsText()
declare @box2 as geometry =
cast('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))' as geometry)
select @box2.STAsText()
Uso
• También se soporta el formato Well-Known
Binary (WKB)
– STFromGeomFromWKB(<wkb>, <srid>)
• Se soporta un subconjunto de GML
– GeomFromGml(<gml>, <srid>)
– GML es un formato XML
• http://www.opengis.net/gml
Construcción de instancias
24© 2007 Solid Quality Mentors
Uso
• Una anotación sobre polígonos:
– Pueden tener “agujeros”
– El anillo exterior es el que manda (el perímetro)
– Los anillos internos definen los agujeros
– El punto de partida y el de final son iguales
Construcción de instancias
25© 2007 Solid Quality Mentors
Uso
• Algunas propiedades:
– STStartPoint
– STEndPoint
– STX (Solo POINT)
– STY (Solo POINT)
– STCentroid (POLY y MULTIPOLY solo)
– STArea (POLY y MULTIPOLY solo)
Métodos y propiedades
27© 2007 Solid Quality Mentors
Uso
• Algunos métodos:
– STIntersect
– STTouches (solo para geometry)
– STOverlaps (solo para geometry)
– STContains
• Opposite: STWithin
– STIntersects
– STUnion
Métodos y propiedades
28© 2007 Solid Quality Mentors
IndexaciónVistazo
30© 2007 Solid Quality Mentors
• En SQL Server 2008, los índices espaciales se
definen como árboles B
– Los índices han de representar la información
bidimensional mediante esos árboles B
– SQL Server 2008 implementa una descomposición
del espacio de forma uniforme
– El proceso de indexación, descompone el espacio en
una jerarquía de rejillas de 4 niveles
• Estos niveles se llaman level 1 (nivel superior), level 2, level
3 y level 4.
Indexación
• Un índice espacial puede ser creado
únicamente sobre una columna de tipo
geometry o geography.
• Los índices espaciales solo pueden definirse
sobre tablas que poseen clave primaria
• Los índices espaciales no pueden especificarse
sobre vistas indexadas
Vistazo
32© 2007 Solid Quality Mentors
Indexación
• Predicados soportados:
– geometry1.STContains(geometry2) = 1
– geometry1.STDistance(geometry2) < number
– geometry1.STDistance(geometry2) <= number
– geometry1.STEquals(geometry2) = 1
– geometry1.STIntersects(geometry2) = 1
– geometry1.STOverlaps (geometry2) = 1
– geometry1.STTouches(geometry2) = 1
– geometry1.STWithin(geometry2) = 1
Limitaciones
33© 2007 Solid Quality Mentors
Links de SQL Server 2008
• Site de SQL Server 2008
– http://www.microsoft.com/sql/2008/
• Ejemplos de SQL Server 2008
– http://www.codeplex.com/SqlServerSamples
36© 2007 Solid Quality Mentors
Recommended