本篇文章主要介绍ArcGIS中的Geodatabse数据类型。
目录
写在前面的话:对于Geodatabase数据类型的介绍并没有从最基础的定义之类开始,而是更多地挖掘它叫深层次地关系,所以可能会比较适合有一定GIS基础的小伙伴们。还有,此篇介绍是基于笔者自己查到的资料并结合自我理解,如有不妥之处,欢迎指出。
1. geodatabse对象理解
首先在ArGIS的官方文档中找到了关于Geodatabase数据类型的对象UML图,最开始就从这张图开始理解吧。
上述表中简要地列出了geodatabase数据类型中重要的一些对象,它们总结如下:
Workspace
in the geodatabase data model corresponds to a geodatabase。
- 描述:这是一般类;就整个ArcGIS来说,esri提供三种Workspace类型:esriFileSystemWorkspace(如Coverage、Shapefile)、esriLocalDatabaseWorkspace(FileGeodatabase、PersonalGeodatabase)以及esriRemoteDatabaseWorkspace(ArcSDE)。
- 功能:
- 统一管理各类数据集的容器,既可以有
空间数据集
也包括非空间数据集
。 - 提供创建新数据集及其实例化的方法;
- 设置数据读取和存储的默认路径。
- 统一管理各类数据集的容器,既可以有
- 接口:可以参考官方文档:Workspace接口介绍
Dataset
is the highest level data container.- 类型:抽象类
- 功能:
- 可以是任何数据的集合,如Row、Table、FeatureClass…放在workspace中的对象都可以称为Dataset;
- 用来被继承,不定义具体的内容,只规定该有那些内容,不能被实例化(不能由抽象类直接创建对象,只能通过抽象类派生出的子类来创建),具有抽象方法的类一定是抽象类;
- 接口:
- IDataset接口:定义要素及的基本方法和属性;
- IDatasetEdit接口
- IschemaLock接口
Geodataset
is a dataset that contains geographic data.- 类型:同一个Geodataset中的要素类具有相同的坐标系统→作为判定Geodataset的标准。是一个代表了拥有空间属性的数据集的抽象类,也可看作为一个容器。
- 接口:
- IGeoDatasetSchemaEdit接口
- IGeoDatasetSchemaEdit接口
FeatureDataset
is comprised of feature classes, geometric networks, and topologies. (里面的要素具有相同空间参考)- 接口:参考官方文档:FeatureDataset接口介绍
Table
is a collection of rows that have attributes stored in columns.- 特点:Table是数据的
最小
的容器 - 接口:参考官方文档:Table接口介绍
- 特点:Table是数据的
•
Row
is a record in a table. All rows in a table share the same set of fields.- 接口:参考官方文档:Row接口介绍
ObjectClass
is a type of table that stores non-spatial objects.- 特点:是Table的子类,具有属性和行为
- 接口:参考官方文档:Object接口介绍
FeatureClass
is a type of object class that stores spatial objects.- 特点:是ObjectClass的子类,在ObjectClass上进一步发展,用Shape属性描述了图形属性(形状及位置),即存储了空间数据(空间数据以具有属性和行为的要素表现),是于Table和对象类的最大区别。
- 接口:参考官方文档:FeatureClass接口介绍
Feature
is an object with a geometric shape.- 特点:FeatureClass的组成。
- 接口:参考官方文档:Feature接口介绍
RelationshipClass
represents relationships through embedded foreign keys.- 特点:foreign key:保持关系与关系的完整性。
- 接口:参考官方文档:RelationshipClass接口介绍
Relationship
is an association between objects or features; it controls behavior when objects or features are moved or deleted.- 接口:参考官方文档:Relationship接口介绍
AttributedRelationshipClass
is a type of table that stores relationships.AttributedRelationship
can represent many-to-many relationships as well as attributes on relationships.
2. Geodatabase的面向对象
Geodatabase具有面向对象的特点
多态
:同一要素的不同存储方式,相同操作方式。
- 同一个要素无论是存放于Shapefile格式还是PersonalGeodatabase还是SDE中,都可以对其进行编辑、删除等操作。
封装
:标准化接口编程
- 不需要了解对象内部实现具体工作行为的原理和过程,只需要通过ArcGIS提供的
方法接口
进行操作即可。
- 不需要了解对象内部实现具体工作行为的原理和过程,只需要通过ArcGIS提供的
继承
:存在子类
(SubClass)
- 例如:
- FeatureDataset和RasterDataset是GeoDataset的子类;
- AttributedRelationshipClass是RelationshipClass下的一个子类;
- 例如:
严格来说,Geodatabase并不是数据库。在ArcGIS和相关的用户系统中,通过Geodatabase这一规范化的
地理数据模型
,数据库管理系统(DBMS)可以被当作是开放的空间数据库系统,这时通用关系数据模型的简单性和灵活性使数据库管理系统支持的应用程序范围非常广泛。数据的存储和提取由存储层DBMS实现,高端的数据整合和数据处理功能则由应用层ArcGIS提供。
3. Geodatabase零散知识点
3.1 Geodatabase的分类
-PersonalGeodatabase
(.mdb)
- 使用Access数据库为储存介质(可用Access在外部直接打开读取数据),容量为2G;
- 仅仅支持Windows系统,只能单用户编辑和读取,不支持用户并发操作;
- 不支持压缩
- FileGeodatabase
(.gdb)
- 在文件系统中以文件夹的形式表现,用二进制方式存储,每个表容量为1T;
- 支持多平台操作(Windows、Linux、Dos…),单用户编辑多用户读取;
- 支持压缩。
- 大型关系数据库+ArcSDE形成的地理数据库
- 存储格式为DBMS(DataBase Management System);
- 操作平台依赖于DBMS,支持多用户编辑和读取;
- 可存储、管理海量数据;
- 存储于RDBMS中。
3.2 Geodatabase中的Dataset
Geodatabase由各种Dataset组成。
由上图可以看出,Dataset包括:
GeoDataset
:拥有空间属性的数据集
- Feature Dataset;
- Raster Dataset;
- TIN;
- GeoDataset中也可以直接存放FeatureClass。
Table
:由row组成
- ObjectClass:由Object组成;
- AttributedRelationshipClass:由AttributedRelationship组成
4. Geodatabse数据知识扩展
笔者从网上download了一份esri公司关于geodatabase介绍的ppt,贴出几张比较关键的给大家再加深一下理解:
Geodatabase是支持多种数据集的,如下图:
要素数据集可以具有多种行为:
要素具有属性域:
Geodatabase要素还可以具有子类:
Geodatabase要素支持多种规则:
–原创文章,转载必须注明出处–