Geodatabase是一种采用标准关系数据库技术来表现地理信息的数据模型。Geodatabase支持在标准的
数据库管理系统(DBMS)表中存储和管理地理信息。 Geodatabase支持多种DBMS结构和多用户访问,且大小可伸缩。从基于Microsoft Jet Engine的小型单用户数据库,到
工作组,部门和企业级的多用户数据库,Geodatabase都支持。
结构
有两种geodatabase结构:个人Geodatabase和多用户Geodatabase (multiuser geodatabase)。 个人Geodatabase,对于
ArcGIS用户是免费的,它使用Microsoft Jet Engine数据文件结构,将GIS数据存储在小型数据库中。个人geodatabase更像基于文件的工作空间,数据库
存储量最大为2GB。个人geodatabase使用微软的Access数据库来存储属性表。
对于小型的GIS项目和
工作组来说,个人Geodatabase是非常理想的工具。通常,GIS用户采用多用户Geodatabase来存储和并发访问数据。个人Geodatabase支持单用户编辑,不支持
版本管理。
多用户Geodatabase通过
ArcSDE支持多种数据库平台,包括IBM DB2,
Informix,Oracle(有或没有Oracle Spatial都可以)和SQL Server。多用户Geodatabase使用范围很广,主要用于
工作组、部门和企业,利用底层DBMS结构的优点实现以下功能:
1.支持海量的,连续的GIS数据库;
2.多用户的并发访问;
基于数据库的geodatabases可以支持
海量数据以及多用户并发。在众多的geodatabase实现中,空间地理数据一般存放在大型的binary object中,ESRI发现插入和取出这样的大对象,关系数据库是非常高效的。而且,GIS数据库的容量和支持的用户数远大于文件的存储形式。
由于Geodatabase是基于
关系型数据库管理系统技术来创建的,于是,Geodatabase拥有关系型数据库管理系统的所有功能。
例如,你可以为Geodatabase设置字段的完整性约束。如此一来,便可以使用由RDBMS增强的关系来创建表之间的
关联类(relationships)。
行为定制
由于Geodatabase的体系是基于面向对象技术构建的。
这样,用户可以为自己的Geodatabase开发代码,以满足行业的专门化应用的特殊要求。
Geodatabase的体系结构
GIS软件和数据库共同完成地理数据的管理。某些
数据管理,如
磁盘存储,属性数据类型的定义,
联合查询和多用户的
事务处理都是由数据库完成的。
GIS应用软件则通过定义DBMS表,用来表示各种地理数据和特定领域内的逻辑,以及维护数据的完整性和实用性。
实际上,DBMS是专门用来存放地理数据的,而完全不是用来定义地理数据的行为的。
这是一个多层的结构(应用和存储),数据的存取是通过存储层(DBMS),由简单表来实现,而高级的
数据完整性维护和信息处理的功能是在应用层软件(GIS)完成的。
Geodatabase的实现也使用了和其他高级DBMS应用相同的多层结构。
Geodatabase对象作为具有唯一标识的表中的记录进行存储,其行为通过Geodatabase应用逻辑来实现。
Geodatabase的核心是标准的(不是特殊的)关系数据库模式(一组标准的DBMS表,字段类型,索引等等)。
数据的存储由
应用层的高级应用程序对象协调和控制(可以是
ArcGIS客户端或ArcGIS Server)。这些geodatabase对象定义了通用的GIS
信息模型,可以在所有的ArcGIS应用和用户中使用。
Geodatabase对象的作用就是向用户提供一个高级的GIS信息模型,而模型的数据以多种方式进行存储,可以存储在标准的DBMS的表中,或者文件系统中,也可以是XML流。
所有的ArcGIS应用程序都与geodatabase的GIS对象模型进行交互,而不是直接用SQL语句对后台的DBMS实例进行操作。
Geodatabase
软件组件实现了通用模型中的行为和完整性规则,并且将数据请求转换成对相应的物理数据库的操作。