它们之间最重要的区别是什么?
(简而言之)利用它们的主流方法是什么?
到处都有关于个人和文件以及企业和(?)地理数据库的对话。这些都是不同的野兽,需要进行不同的处理,但是在答案上有很多困惑,即哪种方法适用于哪种地理数据库格式。
update:我应该补充一点,一个答案必须解决所有可能性。可以肯定地说“两种单一用户gdb格式分别是个人和文件gdb格式,它们适用于xxx,具有xxx的限制,而它们之间的主要区别是xxx”等。
#1 楼
在大多数情况下,人们会误以为地理数据库只是一种地理空间格式,允许您执行空间查询。简直是令人难以置信的简化。哎呀,我以前常常会自己犯这个错误-直到有一天,我听到Scott Morehouse解释了GeoDatabase背后的原理。他是能够以非常抽象的方式思考,从高处上升然后又很快下降,非常实用,从而避免建筑宇航员遇到问题的人之一。
了解什么GeoDatabase是,您需要查看信息模型的定义:
软件工程中的信息模型表示概念,关系,约束,规则和操作的表示形式,选定话语领域的数据语义。它可以为域上下文提供可共享,稳定且有条理的信息需求结构。
GeoDatabase只是对支持地理概念的信息模型的ESRI定义。例如,此信息模型支持诸如拓扑之类的概念。以及与之关联的所有规则,操作和数据语义(例如,允许重叠的内容,拆分后发生的事情,编辑如何影响共享同一边的其他功能,等等)。
ESRI GeoDatabase信息模型的实现方式多种多样,可以分为两种:
单用户地理数据库:
个人地理数据库:建立在“ .mdb” MS Access格式之上。
FileGDB:建立在ESRI创建的专有格式(“ .gdb”文件夹)之上
多用户地理数据库(又称企业级地理数据库):
这些是ArcSDE中间件支持的数据源。
PostgreSQL
SQL Server
Oracle
DB2
Informix
etc
ArcSDE的目的也被误解了。 “ SDE”经常与GeoDatabase混淆-在最坏的情况下,这些术语可以互换使用;一个可怕的错误。过去,ArcSDE(当时简称为SDE)被创建为数据抽象层。您可以从Scott Morehouse(1999)的一个非常古老的USENET新闻中找到ArcSDE的简单描述。该帖子的摘录片段说:SDE将空间处理推迟到DBMS。如果基础数据库
系统根本没有空间支持,则SDE将实现所有
空间功能。如果基础数据库具有某些
功能,则SDE将实现某些功能并将其余的
延迟到数据库引擎中。为了获得最佳性能并利用核心数据库技术,我们尝试将尽可能多的功能推迟到数据库中使用。
这意味着使用了ArcSDE。在与基础数据源交互时由GeoDatabase编写,但它对GeoDatabase抽象(例如关系,域,地形,地籍结构,示意图数据集等)一无所知。它只是用来简化各种基础数据存储的编程。
这就是为什么如果要处理GeoDatabase级别的抽象,然后尝试从ArcSDE(通过API或arcsde命令行可执行文件)执行操作,则可能会遇到问题。 (我可以增加这句话的长度吗?) GDB受到2GB mdb(访问)限制的约束。 FileGDB并没有此问题,因为它是为了摆脱此限制并与Unix兼容而创建的。
Personal GDB和FileGDB都是单用户。因此,您没有任何版本控制。 GDB复制是在版本控制之上实现的,因此它仅是所有多用户地理数据库(ArcSDE数据源)的功能。
拓扑,注释,表示形式类,域,地形等都是GeoDatabase不需要多用户支持的概念-因此可以在GeoDatabase信息模型的所有实现中使用。
关于每个GDB实现的用法,这取决于您的需求。因此,对于大多数(但不是全部)用例,都有一种GeoDatabase。
我希望可以弄清楚。
评论
无法提供实际答案,因为我几乎不了解“多用户” ArcSDE RDMBS地理数据库环境,但是“此链接”提供了所有不同类型的摘要。主要区别在于2个单用户GDB就是这样。单用户(MS Access后端个人GDB和新的ESRI专有FIle GDB)这些GDB模型是为单用户桌面环境设计的,与在第三方RDMS(SQL Server,ORACLE,DB2)上运行的ArcSDE RDBMS多用户环境不同等)@Jakub,任何一个答案都不必涵盖整个范围。
域,关系和子类型都使Geodatabase结构比旧的.shp模型更加用户友好和有用。