mssql server 08 高级篇 1 空间数据

层次数据( hierarchy data)

新增的  Hierarchyid 数据类型及其嵌入函数 推动数据库进入了一种前所未有的功能境界.

Hierarchyid 是一种特殊的数据类型,为表示层次结构(通常是树形)中的单个节点 而进行优化的. 这里真正的威力是 它能够

分析层次祖先(父子关系)的概念,理解深度和兄弟节点的概念.

 

理解深度和输出

深度:层次的节点深度(深度等级)  是 基于 直接或节点的祖先节点的.

那么这样就会产生一个基于零的 集合--即根节点为0级,直接后代为1级,一次类推……

输出:

是指 某个父节点 上有多少个子节点. 可以任务 输出控制着层次的宽度.

 

HierarchyID数据类型结构 (http://msdn.microsoft.com/en-us/library/bb677290(v=sql.105))

HierarchyID数据类型在 内部是以 节点的变长二进制表示法存储的.

方法:http://msdn.microsoft.com/en-us/library/bb677193(v=sql.105)

 

空间数据

平面数据类型---Geometry 数据类型

下面看 space表

image

坐标列的数据类型为 geometry , 下面为 此表插入2条数据

   insert into [space] values(geometry::STGeomFromText('LINESTRING(-1 1,1 1,2 2)',0))
       insert into [space] values('LINESTRING(-3 3,3 3,3 -3,-3 -3,-3 3)')

显示了两种不同的插入数据的方式.

查看表中的数据,

image

coordinate列存着 一堆二进制数据,下面通过 一个函数可以 显示他的真面目.

select s.coordinate,s.coordinate.STAsText()  from [space] s where id=7

结果如下:

image

那么下面看 图形:

image

 

下面再插入一条数据, 用 polygon代替 linestring ,看看效果如何:

 insert into [space] values('polygon((-3 3,3 3,3 -3,-3 -3,-3 3))')

image

 

变成了一个 图形,而不是线了。

 

测量数据描述的实现-----GEOGRAPHY类型

实现测量 ,圆地球数据的类型被称为GEOGRAPHY.

该类型也接受 之前讨论过的 几何类型.不过他还应用了半球概念.

posted @ 2012-05-14 15:11  高捍得  阅读(372)  评论(0编辑  收藏  举报