我们知道Geodatabase是一种数据模型。是一种设计思想
它在sql server和oracle上都有相应的实现。甚至包括postgis。。。postgresql
但是,在实现的过程中或者方法上有什么区别呢?
Zeiler的《Modeling Our World》使得我们有了理论基础。但是具体的操作上,
SQL Server和Oracle对比:https://zhuanlan.zhihu.com/p/141317842
首先,geodatabase具有几个特点:
- 地理数据库是ArcGIS的原生数据结构,并且是用于编辑和数据管理的主要数据格式。当ArcGIS使用多个GIS文件格式时,会使用地理数据库功能。
- 它是地理信息的物理存储方式,主要使用数据库管理系统或文件系统。通过ArcGIS或者使用SQL数据库管理系统,可以访问和使用数据集集合的物理实例。
- 地理数据库具有全面的信息模型,用于表达和管理地理信息。该信息模型通过一系列用于保存要素类、栅格数据集和属性的表的方式来实现。此外,高级GIS数据对象可添加用于管理空间完整性规则的GIS行为,以及用于处理核心要素、栅格数据和属性的大量空间关系的工具。
Geodatabase分类三类:
- 个人空间数据库:Access存储
- 文件空间数据库:文件夹存储
- 企业级空间数据库:SQL Server、Oracle等网络数据库存储,最大的好处就是多用户编辑。。。为什么feature access一定要启动版本化(多用户编辑)才行。。
这本书的名字叫《企业级GIS设计+管理》,那么自然针对的是第三种情况。。
其实GIS数据库没有那么神秘,可以像一般的数据库那样设立约束条件和触发器等。只是ST_Geometry和SQL Server、Oracle原生支持的geometry和geography等对象类似,但是数据结构其实不一样。