企业级Geodatabase的设计与实现。ArcSDE与Geodatabase技术的区别和联系。企业级地理数据库及其相关技术一直以来就是ESRI的核心技术,因为它处于GIS系统的最底层,是前端系统正常运行的基础和保证。所以,掌握企业级地理数据库的相关知识,解决在系统运行中的问题并进行性能优化是地理数据库管理人员的首要工作。
现在大家都希望采用文件型存储和NoSQL取代关系型数据库。的确,甚至ArcGIS也在进行更新和改进。从ArcSDE的安装方式、连接方式、逐渐透明的存储结构、对数据库原生的存储,甚至ArcGIS也可以连接非关系型数据库、数据源的数据,这都证明了ArcGIS的与时俱进。但是,关系型数据库积累了长久的经验,而非关系型数据库还有很长的路要走。
本书主要有企业级地理数据库的基础知识、设计、管理、优化以及与新技术的结合等几部分。基础部分主要介绍地理数据库、ArcGIS版本技术、ArcSDE技术、使用空间SQL操作Geodatabase,这些知识将为后面用户对企业级地理数据库的设计、管理以及优化提供很好的技术保证。
第1章 Geodatabase技术
第2章 ArcSDE技术
第3章 ArcGIS版本技术
第4章 空间地理数据库设计与应用
第5章 SQL操作Geodatabase
第6章 企业级Geodatabase管理策略
第7章 企业级Geodatabase优化策略
第8章 企业级Geodatabase实践
第9章 ArcGIS与新技术的介绍
第10章 其他内容
第1章 Geodatabase技术
1.1 地理数据模型的发展历程
地理数据模型是对真实世界的抽象,它是由一系列支持地图显示、查询、编辑和分析的数据对象组成的。
ArcInfo8引入了全新的面向对象的数据模型——Geodatabase模型。它能够表达要素的自然行为以及这些行为的关联方式。这个全新的模型的意义是非常重要的。为了我们能够更好地理解地理数据库,下面回顾一下我们曾经使用过的地理数据模型。
CAD数据模型
CAD数据模型是最早的计算机制图系统。这一时代中,地图通常用一般的CAD软件来制作。CAD数据模型以表示点、线、面的二进制文件格式来存储地理数据。但是这些文件不能存储足够多的属性信息。
Coverage数据模型
1981年,ESRI推出了第一个商用GIS软件ArcInfo,它实现了第二代地理数据模型——Coverage数据模型(也称地理关系数据模型)。这个模型有如下两个关键特点。
- 空间数据与属性数据相结合。空间数据存储在二进制索引文件中,使显示和访问数据得到了优化。属性数据存储在表格中,使用类似于二进制文件中要素数目的行来存储数据,并且属性和要素使用同一ID连接。
- 矢量要素之间的拓扑关系也被存储起来。这意味着,线的空间数据记录包含这些信息:哪些结点分割线,通过结点分割线可以推算有哪些线相连,同时线的左右两边分别有哪些多边形信息。
但是,Coverage数据模型有一个重大缺陷——要素是以统一的行为聚集的点、线、面的集合。也就是说,表示道路的线的行为和表示河流线的行为是一模一样的,这显然与现实地理世界是不相符的。
Shapefile数据模型
Shapefile是一种用于存储地理要素的几何位置和属性信息的非拓扑简单格式。通过shapefile和dBASE表相连,可以把空间数据和属性数据连接在一起。
Geodatabase数据模型
ArcInfo 8引入了一种新的面向对象的数据模型——Geodatabase数据模型。在这个全新的数据模型中,通过为要素添加更贴切的“自然”行为,从而使GIS数据库中的要素更加智能化,在Geodatabase中,不仅能够存储点、线、面等简单对象,还可以存储描述高级地理现实世界的复杂对象,如城市管网模型、城市交通模型等。而且Geodatabase模型也支持业务工作流的事务模型。
下面介绍一下Geodatabase的几个特点:
- 地理数据库是ArcGIS的原生数据结构,并且是用于编辑和数据管理的主要数据格式。当ArcGIS使用多个地理信息系统(GIS)文件格式的地理信息时,会使用地理数据库功能。
- 它是地理信息的物理存储方式,主要使用数据库管理系统(DBMS)或文件系统。通过ArcGIS或使用SQL的数据库管理系统,可以访问和使用数据集集合的物理实例。
- 地理数据库具有全面的信息模型,用于表达和管理地理信息。该信息模型通过一系列用于保存要素类、栅格数据集和属性的表的方式来实现。此外,高级GIS数据对象可添加用于管理空间完整性规则的GIS行为,以及用于处理核心要素、栅格数据和属性的大量空间关系的工具。
- 地理数据库软件提供了ArcGIS中使用的通用应用程序的逻辑,用于访问和处理各种文件和各种格式的所有地理数据。该逻辑支持处理地理数据库,包括处理Shapefile、计算机辅助绘图(CAD)文件、不规则三角网(TIN)、格网、CAD数据、影像、地理标记语言(GML)文件和大量其他的GIS数据源。
- 地理数据库还具有用于管理GIS数据工作流的事务模型。
1.2 Geodatabase类型
个人地理数据库(Personal Geodatabase)
Personal Geodatabase是最早使用的文件型的Geodatabase,也被称为个人地理数据库。个人地理数据库可存储、查询和管理空间数据和非空间数据的Microsoft Access数据库。
文件地理数据库(File Geodatabase)
File Geodatabase是ArcGIS9.2版本推出的一种文件型Geodatabase。是磁盘上某个文件夹中文件的集合,可以存储、查询和管理空间数据和非空间数据。它可以同时由多个用户使用,但一次只能有一个用户编辑同一数据。
企业级地理数据库(Enterprise Geodatabase)
企业级地理数据库,区别于文件夹存储的File Geodatabase,它是建立在关系型数据库上面的。截至ArcGIS10.2.1版本,ArcGIS支持Oracle、SQL Server、PostgreSQL、IBM DB2、IBM Informix五种关系型数据库。
1.3 文件型地理数据库的性能优化
1.4 多用户Geodatabase类型
一般情况下,每个项目都是由多用户对地理数据库进行相关的操作。那么多用户地理数据库支持三种类型,分别是Personal级别、Workgroup级别和企业级别。
1.5 Geodatabase元素简介
要素类(Feature Class)
要素类是一些地理要素的集合,这些地理要素在公共区域共享相同的几何类型、属性字段和投影。街道、井点、宗地、土壤类型和人口普查区域都是要素类。
ArcGIS要素类的类型包括:
- 点状要素类(Point):表示过小而无法表示为线或多边形以及点位置(如GPS观测值)的要素。
- 线状要素类(Polyline):表示形状和位置过窄而无法表示为区域的地理对象(如街道中心线与河流)。也使用线来表示具有长度但没有面积的要素,如等高线和边界。
- 面状要素类(Polyline)
- 注记要素类(Annotation)
- 多面体:https://desktop.arcgis.com/zh-cn/arcmap/latest/extensions/3d-analyst/multipatches.htmhttps://pro.arcgis.com/zh-cn/pro-app/tool-reference/conversion/multipatch-to-collada.htm
- 尺寸(Dimension):
- 多点(Multipoint):
数据集(Feature Dataset)
要素数据集是共用一个通用坐标系的不同类型要素类的集合。要素数据集被用于按空间或主题整合相关的要素类。它们的主要用途是将相关要素类编排成一个公用数据集,用以构建拓扑、网络数据集、地形数据集或几何网络等更为复杂的地理对象,如图1-5所示。
数据集的特点如下:
(1)编排主题相关的要素类。
(2)基于数据库权限安排数据访问权限。
(3)编排要素类以实现数据共享。
2.8 ArcSDE 10.x系统表解析
ArcSDE地理数据库由Geodatabase系统表、ArcSDE系统表、ArcGIS版本系统表、ST_Geometry系统表等构成。
具体包括:
- Datasets(数据集系统表);
- Distributed Geodatabases(同步复制表);
- Geodatabase Archives(数据归档表);
- ArcSDE XML(XML存储表);
- Locking(锁定信息表);
- Log Files(日志文件表);
- Versioning(版本系列表);
- System administration(系统管理表);
- Spatial type tables(空间类型表);
本章只介绍系统管理表,其他系统表会在另外章节做详细介绍。
(Accessing Your Enterprise Geodatabase using SQL:https://www.youtube.com/watch?v=WM_PN7v_HIs)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)