友情提示,您阅读本篇博文的先决条件如下:
1、具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验。
2、熟悉或了解Microsoft SQL Server 2008中的空间数据类型。
3、具备相应的GIS专业理论知识
4、其他相关知识
SQL Server 2008为大地测量空间数据提供了geography数据类型,为平面空间数据提供了geometry数据类型。这两个都是Microsoft .NET Framework通用语言运行时(CLR)类型,并且可以用来存储不同种类的地理元素,例如点、线和多边形。这两个数据类型都提供了你可以用来执行空间操作的属性和方法,例如计算位置间的距离和找出两者间交叉的地理特性(例如一条河流经一个城镇)。本篇以SQL Server 2008的数据类型为核心内容,介绍其数据类型的支持以及新的空间数据类型的相关特性及基本应用。
一、SQL Server 2008通用数据类型
在SQL Server 2008中的每个变量,参数都会被定义为一个特定的数据类型,这些特定的数据类型主要用于排序、存储等,在SQL Server 2008中的通用数据类型和SQL Server 2005一样,主要的几个通用数据类型为下表所示:
通用数据类型
数据类型 |
描述 |
char |
固定长度字符串 |
datetime |
日期时间类型字段 |
float |
单精度字段 |
int |
整型字段 |
money |
货币类型 |
nvarchar |
可变长字符型 |
二、SQL Server 2008空间数据类型
SQL Server 2008中出了兼容低版本的SQL数据库的通用数据类型和其他基础数据类型(比如:),新推出了两个用于支持空间数据存储的空间数据类型,分别为:大地向量空间类型(geography)和几何平面向量空间类型(geometry)。
1、geography数据类型
官方定义:geography数据类型为空间数据提供了一个由经度和纬度联合定义的存储结构。使用这种数据的典型用法包括定义道路、建筑、或者地理特性如可以覆盖到一个光栅图上的向量数据,它考虑了地球的弯曲性,或者计算真实的圆弧距离和空中传播轨道,而这些在一个平面模型中所存在的固有失真引起的错误程度是不可接受的。
2、geometry数据类型
官方定义:geometry数据类型为空间数据提供了一个存储结构,它是由任意平面上的坐标定义的。这种数据通常是用在区域匹配系统中的,例如由美国政府制定的州平面系统,或者是不需要考虑地球弯曲性的地图和内层布置图。geometry 数据类型提供了与开放地理空间联盟(OGC)Simple Features Specification for SQL标准结合的属性和方法,使得你可以对geometry数据执行操作以产生行业标准的行为。
虽然这两个数据类型都可以用于存储空间数据,在针对不同的空间数据的时候还是有所异同。如果我们需要自己基于SQL Server 2008来做空间数据定义,就需要根据不同的数据在这两种空间数据类型中作出正确的决策了,这点在以后的博文中会进行介绍,这里飘过。此两种空间类型是完美符合空间参照系统标准制定的,包括测距计量单位、空间引用索引、授权标准以及WKT等规范,如下SQL可查看对于空间数据类型所对于的空间引用索引标准中制定的地理空间测距计量单位:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->SELECT
unit_of_measure
FROM
sys.spatial_reference_systems
WHERE
authority_name='EPSG'
AND
authorized_spatial_reference_id=4326
------------------------------------------------------------
执行结果:metre
三、空间数据的存储方式
SQL Server 2008中的两种空间数据:大地向量空间类型(geography)和几何平面向量空间类型(geometry)都是可变长度的数据类型,这意味着它们相对于比如int或者datetime等固定长度的数据类型,其存储的数据占用空间根据所存储数据的复杂程度、数据描述文字等不同可自适应数据类型的长度变化。
空间数据类型字段的数据存储以8个字节的二进制格式存储,每条记录的数据的头部分就被定义好了空间数据的类型(点、线、面等类型),以及所使用的空间参考系统和地理坐标(经度、纬度)等值。通常情况下二进制数据内容越长所占用的空间数据存储空间就越大。
四、空间数据可视化
在 SQL Server 2008 中Microsoft 引入具有两个新的内置数据类型、 几何图形和地理空间数据支持。 尽管您可能 “ 看到 ” 数据空间列的二进制数据存储但还是不能直观的反应出空间数据的预览效果,SQL Server 2008 的SQL Server Management Studio 中提供了一个空间结果选项卡,专门用于可视化预览空间数据结果。
比如当前执行查询重庆大区边界的空间数据,那么对应于重庆大区边界数据库表可以执行以下SQL:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->SELECT[ID]
,[CODE]
,[ELEV]
,[NAME]
,[geom]
FROM[BingMapsDB].[dbo].[CQ_Area_region]
得到相应的SQL查询记录结果和空间可视化结果为下图所示:
五、参考资料
[1]、空间数据(百度百科):http://baike.baidu.com/view/125911.htm
[2]、空间数据可视化:http://msdn.microsoft.com/zh-cn/magazine/ee335706.aspx
分享到:
相关推荐
"SQL Server 2019 空间数据库应用系列" 本文将对 SQL Server 2019 空间数据库应用系列进行详细的知识点讲解,涵盖空间信息基础、空间数据、坐标系统、空间参考系统等重要概念。 空间信息基础 SQL Server 2019 ...
`sqlservr.exe`和`sqlos.dll`是SQL Server的关键组件,它们对于数据库引擎的正常运行至关重要。 `sqlservr.exe`是SQL Server的主要服务进程,它负责启动、管理和执行SQL Server的各种服务。这个可执行文件是数据库...
在SQL Server中,`sqlservr`是数据库引擎的主要可执行文件,它是SQL Server服务的核心组件,负责处理SQL语句、管理数据存储以及提供与其他应用程序的接口。在本篇文章中,我们将深入探讨如何使用`sqlservr`命令来...
2. **添加SQL Server程序到允许列表**:打开Windows防火墙设置,将SQL Server的执行文件(sqlservr.exe)添加到允许的程序列表中,通常该文件位于路径`C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\...
1. 对于SQL Server,转到“防火墙”的“例外”选项卡,点击“添加程序”,导航到sqlservr.exe可执行文件,通常位于C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\路径下,然后确认添加。 2. 对于SQL ...
在IT行业中,数据库是存储和管理数据的核心工具,而SQL Server 2008作为一款广泛应用的关系型数据库管理系统,提供了高效稳定的数据存储解决方案。Java Database Connectivity(JDBC)是Java平台上的一个标准API,...
此外,SQL Server的精度默认最大为28位,但可以通过启动命令SQLSERVR来调整,例如使用`sqlservr /d c:\Mssql2000\data\master.dat /p38`可以将最大精度设置为38位。 了解并熟练掌握SQL Server中的数据类型是数据库...
- **数据存储与管理**:SQL Server 2008支持多种数据类型,包括数值、字符串、日期时间等,还提供了如XML、图像等复杂数据类型的存储。 - **事务处理**:提供ACID(原子性、一致性、隔离性和持久性)事务特性,...
与 Microsoft Visual Studio 2005 集成之后,SQL Server Express 可以轻松的开发功能强大且安全的数据驱动应用程序,并允许快速部署这些应用程序。SQL Server Express 可以根据协议重新进行发布,并可作为客户端...
2. 数据类型和表结构:讲解SQL Server 2005中的数据类型,以及如何设计和创建数据库表。 3. 数据查询:深入理解JOIN操作、子查询、聚合函数和窗口函数的应用。 4. 存储过程和触发器:学习如何编写和调用存储过程,...
`image`是SQL Server中的一种数据类型,用于存储图像或者其他二进制大对象(BLOB)数据。这种类型可以存储最大达2GB的二进制数据。 #### 三、创建存储图片的表 接下来,我们来看一下如何在SQL Server中创建一个专门...
[sqlservr] ServerBindTcpPorts=1433 Persistent=1 KillOldSession=1 ``` 这些设置告诉SQL Server监听1433端口,并处理通过此端口接收到的TCP连接。 #### 三、测试连接 完成上述配置后,我们需要验证Proxy ...
- 将 SQL Server 的 exe 文件路径(通常为 `C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn\sqlservr.exe`)添加到防火墙允许列表中。 #### 二、安装 Oracle 客户端软件 - 从 Oracle 官网...
本主题聚焦于"Visual C# + SQL Server数据库开发与实例8",这通常意味着我们将深入探讨如何利用Microsoft的C#编程语言和SQL Server数据库系统来构建高效、可靠的数据库驱动应用程序。让我们详细地了解一下这个主题...
4. **防火墙配置**:在Windows防火墙中,必须为SQL Server 2005的主程序(sqlservr.exe)和SQL Server浏览器服务创建例外。这需要在防火墙的“例外”选项卡中,添加程序的路径,通常位于"C:\Program Files\Microsoft...
另外,"sqlservr64"可能是SQL Server的一部分组件或者是一个配置工具,具体的用途需要根据实际情况来判断。 在安装过程中,可能会遇到各种问题,如依赖组件缺失、权限不足等。遇到这些问题时,应按照错误提示查找...
1. **创建SQL Server 2005例外**:在Windows防火墙设置中,转到“例外”选项卡,点击“添加程序”并浏览至SQL Server的主执行文件(sqlservr.exe)。注意,实际路径可能因具体安装位置而异。 2. **创建SQL Browser...
SQLSERVR.EXE -M ``` 3. 在SSMS中执行以下命令进行还原: ```sql USE master; GO RESTORE DATABASE master FROM DISK = 'c:\master.bak'; GO ``` #### 六、重新生成Master数据库 当Master数据库严重损坏...
2. `sqlservr.exe`:SQL Server的主要服务进程,它承载了所有的数据库引擎功能,包括查询处理、事务管理、安全性等。如果补丁解决了与Win8的兼容性问题,那么`sqlservr.exe`的更新可能会包含对新操作系统的适应性...