空间数据库的特点是其存在一个特殊的字段——Shape,也就是图型数据。这个图型数据是地理中的数据带有空间位置关系的图形,它的存储带有地理特有的环境。如何在RDBMS中组织这种特殊的数据?GIS发挥了专业特色。从数据库的角度来看,空间数据库也是一种数据库,只不过带有空间的数据字段,这就为其在关系型数据库中存储与管理带来了便捷。
空间数据库建立的过程就是数据采集的过程。包括空间数据和数据数据。数据模型是为了解决空间数据如何在数据库中组织,以反映客观的事物及其联系。数据模型的好坏直接影响GIS的性能好坏。
2.存储形式:
ArcGIS有shapefile、Coverage、Geodatabase三种文件格式来存储空间数据。
Shapefile:空间数据存储在shp文件中,数据数据存储在dBase文件中,而二者的关系存放于shx文件中。shapefile数据库就存放在这三个文件中。
Coverage数据库是第二代数据库。与上一代的Shapefile区别是可以有拓扑存在与数据库中。其图形数据存放于二进制的文件中,属性数据和拓扑数据存放于INFO表中,在文件系统上看一个Coverage数据库的一个要素类是就是一个文件夹形式的,所以Coverage数据使用目录组织了空间数据和INFO表,成为一个Coverage要素类。
GeoDatabase是第三代空间数据库。特点是面向对象的数据模型,使用了中间件ArcSDE作为解释者,能够使用通用RDBMS来存储数据,能够表示出要素的自然行为以及他们之间的关系。
三种数据库的建立都极其类似,比如要建立一个Point要素类型,都要指定这个数据类型。下面着重从GeoDatabase数据库建立来实例化。
3.具体实现:
GeoDatabase数据库采用一定的层次关系来组织数据的。由对象类(Object Class)、要素类(FeatureClass)以及要素数据集(Feature DataSet)。
从程序的角度看这三者都是继承自DataSet。一个空间数据与就是一个WorkSpace,是由各种各样的DataSet组成的。DataSet有两个子类:Tabale和GeoDataSet。其中实际存储数据的包括ObjectClass都是继承自Table,而FeatureDataSet继承自GeoDataSet用来组织FeatureClass于同一个数据库下。那么什么样的数据能够组织在同一个FeatureDataSet下呢?主要有三种状况:
1.不同的要素属于同一范畴。比如同一范围内的水,不管是点、线、面状的水组织在同一个数据集下。
2.当使用几何网络的时候,参与网络的节点和边都要在同一个数据集下。
3.共享公共边的情况。比如地籍调查中的用地和行政区界,公共边是行政区界,它移动必然影响用地边界,因此必须组织到一个数据库下
管理这种公共关系不变。
当GeoDatabase中建立好这三种基本项之后就可以加载数据于之上了,对象类中加载各种表格,要素类中加载要素等。在次之上可以进一步定义数据库,例如:建立索引,建立拓扑关系、几何网络类、注释类、关系类等,这些都是更高一级别的数据组织数据,用以描述现实事物。