In the presentation we review the Spatial Data in SQL Server.
Best Regards,
Dr. Eduardo Castro Martinez, Microsoft SQL Server MVP
http://ecastrom.blogspot.com
http://tinyurl.com/comunidadwindows
1. 8/11/2011
SPATIAL SUPPORT IN
SQL SERVER 2008 R2
Ing. Eduardo Castro Martinez
ecastro@simsasys.com
http://tiny.cc/comwindows
http://ecastrom.blogspot.com
Presentation Source
• SQL Server 2008 R2 Update for Developers Training Kit
• http://www.microsoft.com/download/en/details.aspx?id=16281
• Building Location-Aware Applications with the SQL Server
Spatial Library
• Ed Katibah, Torsten Grabs and Olivier Meyer SQL Server Microsoft
Corporation
Relational and Non-Relational Data
• Relational data uses simple data types
• Each type has a single value
• Generic operations work well with the types
• Relational storage/query may not be optimal for
• Hierarchical data
• Sparse, variable, property bags
• Some types
• benefit by using a custom library
• use extended type system (complex types, inheritance)
• use custom storage and non-SQL APIs
• use non-relational queries and indexing
1
2. 8/11/2011
Spatial Data
• Spatial data provides answers to location-based queries
• Which roads intersect the Microsoft campus?
• Does my land claim overlap yours?
• List all of the Italian restaurants within 5 kilometers
• Spatial data is part of almost every database
• If your database includes an address
Spatial Data Types
• The Open Geospatial Consortium defines a hierarchy of
spatial data types
• Point
• Linestring
• Polygon
• MultiPoint
• MultiLinestring
• MultiPolygon
• GeomCollection
• Non-instanciable classes based on these
OGC Hierarchy of Spatial Types
2
3. 8/11/2011
SQL Server 2008 Spatial Summary
OVERVIEW FEATURES
• 2 Spatial Data Types (CLR UDT) • 2D Vector Data Support
• Comprehensive set of Spatial Methods • Open Geospatial Consortium Simple
• High Performance Spatial Indexes Features for SQL compatible
• Spatial Library • Supported By Major GIS Vendors
• Sink/Builder APIs ESRI, Intergraph, Autodesk, Pitney Bowes, Safe, etc.
• Management Studio Integration • Standard feature in SQL Server
Express, Workgroup, Web, Standard, Enterprise and
Developer
• Support for very large spatial objects
DETAILS
• Geography data type for geodetic Data
• Geometry data type for planar Data
• Standard spatial methods
STIntersects, STBuffer, STLength, STArea, etc.
• Standard spatial format support
WKT, WKB and GML
• Multiple spatial indexes per column
• Create new CLR-based spatial methods
with the Builder API
• Redistributable Spatial Library
SQLSysClrTypes
SQL Server Spatial Library Resources
SQL SERVER SPATIAL LIBRARY
Microsoft SQL Server System CLR Types
The SQL Server System CLR Types package contains the components
implementing the geometry, geography, and hierarchy id types in SQL Server
2008 R2. This component can be installed separately from the server to allow
client applications to use these types outside of the server.
X86 Package(SQLSysClrTypes_x86.msi) – 3,342 KB
X64 Package (SQLSysClrTypes._x64msi) – 3,459 KB
IA64 Package(SQLSysClrTypes_ia64.msi) – 5,352 KB
Search for: Microsoft SQL Server 2008 Feature Pack, October 2008
---
CODEPLEX SQL Server Spatial Tools
Code Samples Utilizing the SQL Server Spatial Library
SQL Server Spatial Tools – including source code for tools
Search for: Codeplex SQL Server Spatial Tools
SQL Server 2008 and Spatial Data
• SQL Server supports two spatial data types
• GEOMETRY - flat earth model
• GEOGRAPHY - round earth model
• Both types support all of the instanciable OGC types
• InstanceOf method can distinguish between them
• Supports two dimension data
• X and Y or Lat and Long members
• Z member - elevation (user-defined semantics)
• M member - measure (user-defined semantics)
3
4. 8/11/2011
GEOGRAPHY Requirements
• GEOGRAPHY type has additional requirements
• Coordinate order is
• Longitude/Latitude for WKT, WKB
• Latitude/Longitude for GML
• Exterior polygon rings must have their describing
coordinates in counter-clockwise order (left-hand rule)
with interior rings (holes) in clockwise-order (right-hand
rule)
• A single GEOGRAPHY object cannot span more than a
logical hemisphere
SPATIAL DATA
demo
Properties and Methods
• The spatial data types are exposed as SQLCLR UDTs
• Use '.' syntax for properties
• Use '.' syntax for instance methods
• Use '::' syntax for static methods
• Methods and Properties are case-sensitive
• Each type uses a set of properties and methods that
correspond to OGC functionality
• With Extensions
• Geometry implements all OGC properties and methods
• Geography implements most OGC properties and methods
• 2-D vector only implemented
4
5. 8/11/2011
Input
• Spatial data is stored in a proprietary binary format
• Instance of the type can be NULL
• Can be input as
• Well Known binary - ST[Type]FromWKB
• Well Known text - ST[Type]FromText
• Geography Markup Language (GML) - GeomFromGml
• Can also use SQLCLR functions
• Parse
• Point - extension function
• Input from SQLCLR Type - SqlGeometry, SqlGeography
• Spatial builder API – Populate,
IGeometrySink/IGeographySink
Output
• Spatial Data Can Be Output As
• Well Known binary - STAsBinary
• Well Known text - STAsText
• GML - AsGml
• Text with Z and M values - AsTextZM
• SQLCLR standard method
• ToString - returns Well Known text
• As SQLCLR object - SqlGeometry, SqlGeography
• Other useful formats are GeoRSS, KML
• Not Directly Supported
SRID
• Each instance of a spatial type must have an SRID
• Spatial Reference Identifier
• SRID specifies the specification used to compute it
• SRID 4326 - GPS, default for GEOGRAPHY
• SRID 4269 - usually used by ESRI
• SRID 0 - no special reference, default for GEOMETRY
• Methods that use multiple spatial types (e.g., STDistance)
must have types with matching SRID
• Else method returns NULL
• Geography instance must reference one of these SRID
stored in sys.spatial_reference_systems
5
6. 8/11/2011
Useful Methods/Properties
• Descriptive
• STArea
• STLength
• STCentroid
• Relation between two instances
• STIntersects
• STDistance
• Manipulation
• STUnion
• STSymDifference
• Collections
• STGeometryN
• STPointN
Sample Query
SELECT *
Which roads intersect Microsoft’s main campus?
FROM roads
WHERE roads.geom.STIntersects(@ms)=1
Extension Methods
• SQL Server 2008 extends OGC methods
• MakeValid - Converts to OGC valid instance
• BufferWithTolerence - similar to STBuffer, allows approximation and
variation
• Reduce - Simplify a complex geography or geometry
• NumRings, RingN - polygons with multiple rings
• GML support
• Z and M properties and AsTextZM method
• Filter - provides a quick intersection set but with false positives
• EnvelopeCenter,EnvelopeAngle for Geography types
6
7. 8/11/2011
Spatial Indexes
• SQL Server Spatial Indexes Based on B-Trees
• Uses tessellation to tile 2D to linear
• Divides space into grid of cells(uses Hilbert algorithm)
• Meant as a first level of row elimination
• Can produce false positives
• Never false negatives
• You specify
• Bounding box of top level grid - GEOMETRY index only
• Cells per object - number of cells recorded for matching
• Grids
• Four Grid Levels
• Three Grid Densities Per Level - Low, Medium, High
Tessellation process
SPATIAL ANALYTICS
demo
7
8. 8/11/2011
What is CEP?
Complex Event Processing (CEP) is the continuous and
incremental processing of event streams from multiple
sources based on declarative query and pattern specifications
with near-zero latency.
Database Applications Event-driven Applications
Query Ad-hoc queries or Continuous standing
Paradigm requests queries
Latency Seconds, hours, days Milliseconds or less
Data Rate Hundreds of events/sec Tens of thousands of
events/sec or more
request Event
output
input stream
response stream
Shuttle Tracker
519,000+ data points, covering 1 day of operation
Review
• Spatial data provides answers to location-based queries
• SQL Server supports two spatial data types
• GEOMETRY - flat earth model
• GEOGRAPHY - round earth model
• Spatial data has
• Useful properties and functions
• Library of spatial functions
• Three standard input and output formats
• Spatial indexes
8