(十三)地理数据库创建——进一步定义数据库①

news2024/12/23 12:55:46

地理数据库创建——进一步定义数据库①

目录

    • 地理数据库创建——进一步定义数据库①
  • 1.建立索引
    • 1.1建立属性索引
    • 1.2修改空间索引
  • 2.创建子类和属性域
    • 2.1属性域
    • 2.2子类型
    • 2.3属性分割和合并
    • 2.4属性域操作
      • 2.4.1建立属性域
      • 2.4.2修改属性域
      • 2.4.3关联属性域
    • 2.5子类型操作
      • 2.5.1建立子类型
  • 3.创建关系类
    • 3.1关系类概述
    • 3.2建立关系类
      • 3.2.1建立简单关系类
      • 3.2.2建立复合关系类
      • 3.2.3建立关系类的属性
      • 3.2.4建立关系类规则

1.建立索引

在对关系表和要素类中的数据进行查询检索时,可以在字段上建立属性索引提高查询速度。空间索引可以提高对空间要素的图形查询速度,属性索引是 RDBMS 用于检索表中的记录。可以在要素类和关系表中的一个或多个字段上建立属性索引。

1.1建立属性索引

①在 ArcCatalog 目录树中,右键单击需要建立属性索引的表或要素类,选择属性命令,打开要素类属性对话框,并进入索引选项卡;
在这里插入图片描述
②单击添加按钮,打开添加属性索引对话框 ,在名称文本框中输入新的索引名称,如果索引是唯一的,选中唯一复选框,如果索引要按升序排序,选中升序复选框。在字段可用字段栏中,点击需要建立索引的字段点击右箭头加入到选定字段列表中。单击上下箭头按钮,改变选择字段在索引中的顺序;

③单击确定,返回要素类属性对话框,在属性索引显示出新建的索引。单击确定,完成操作。

1.2修改空间索引

①右键单击需要修改空间索引的 Shapefile,选择属性。打开Shapefile 属性对话框,进入索引选项卡;

②通过添加、删除、更新等按钮来建立、删除和更新空间索引;

③单击确定,完成修改。

2.创建子类和属性域

地理数据库按照面向对象的模型存储对象,这些对象可表示非空间实体(表)和空间实体(要素类)。存储在要素类或表中的对象可以按照子类型来组织,并有一套完整的规则。

2.1属性域

属性域表述的是属性取值的范围,可以分为范围域(Range Domains)和代码值域(Coded Value Domains)。范围域可以指定一个范围的值域 (最大值和最小值),最大值和最小值可以使用整型或浮点型数值表示。代码值域给一个属性指定有效的取值集合,包括两部分内容:一个是存储在数据库中的代码值,一个是代码实际含义的描述性说明。代码值域可以应用于任何属性类型,包括文本、数字、日期等。

2.2子类型

子类型是根据要素类的属性值将要素划分为更小的分类。如要素类-居民区,可以将其属性字段“居住人口”分为三级:0-200、200-1000、1000以上。使得该要素类也被分为三个子类:小型居民区、中型居民区和大型居民区。这三个子类会在ArcMap中自动符号化显示出来。

2.3属性分割和合并

在编辑数据时,常常需要把一个要素分割成两个要素,或者把两个要素合并成一个要素。在ArcGIS10中,一个要素被分割时,属性值的分割由分割规则来控制。当要素合并时,属性值的合并由合并规则来控制。

2.4属性域操作

2.4.1建立属性域

①在 ArCatalog 目录树中,右键单击要建立属性范围域的地理数据库,单击属性,打开数据库属性对话框,进入属性域选项卡;

②在第一个空白字段,输入新属性域名称,在对应的描述栏中输入说明信息。在属性域属性栏中,选择属性域的类型;

③当选择属性域类型为范围域时,输入属性域的最小值和最大值选择分割合并策略。当选择属性域类型为“编码的值”域时,在编码的值栏中,输入新代码值及其描述信息,并选择分割策略和合并策略。
在这里插入图片描述
④单击确定,完成操作。

2.4.2修改属性域

进入数据库属性对话框,在属性域名称栏下选中要删除的属性域,按删除键,或在属性域属性栏下对各项属性域特征进行修改。

2.4.3关联属性域

在地理数据库中,可以将属性域的默认值与表或要素类的字段关联起来。属性域与一个要素类或表建立关联后,在地理数据库中一个属性有效规则就建立起来了。同一个属性域可以与一个表或要素类或子类型的多个字段关联,也可以与多个要素类或多个表的多个字段关联。

①在 ArcCatalog 目录树中,右键单击需要关联属性域的表或要素类,单击属性,打开要素类属性对话框,进入字段选项卡

②在字段名栏,单击需要建立默认值并把它关联到属性域的字段;

③在字段属性栏,在属性域下拉框中选择要关联的属性域 (只有与当前字段类型相同或兼容的属性域才会显示在列表中);

④单击确定,完成操作。
在这里插入图片描述

2.5子类型操作

当需要通过默认值、属性域、连接规则、关系规则区分对象时,就需要对单一的要素类或表建立不同的子类型。利用目录可以给要素类添加子类型,并为每一个子类型设置默认值和属性域。也可以删除或修改已经存在的子类型。

2.5.1建立子类型

①在 ArcCatalog 目录树中,右键单击需要添加子类型的表或要素类,选择属性,打开要素类属性对话框,进入子类型选项卡。在子类型字段下拉框中选择需要建立子类型的属性字段,在默认子类型文本框中出现所选字段的默认的新的子类型名称:新建子类型;

②在子类型栏中,在编码列输入子类型代码及其描述,描述将自动更新默认子类型窗口中的内容;

③在默认的值和属性域栏中,对于每一个字段,在默认值中输入默认值,在属性域栏中选择一个属性域(将新子类型的字段关联到一个属性域);

④重复上述步骤,添加其他子类型。单击使用默认值按钮,可以让新子类型采用默认子类型的所有默认值和属性域;

⑤单击确定按钮,完成操作。
在这里插入图片描述

3.创建关系类

地理对象之间存在各种各样的关系,如供水系统中的水管和水管维修记录之间的关系、宗地和业主之间的所属关系等。在地理数据库中,事物之间的这些联系使用关系类来表现。关系类可以在空间对象间实现、在非空间对象间实现,或者在空间对象与非空间对象之间实现。空间对象是存储在要素类中,非空间对象存储在对象类中,关系类存储在关系类中。

3.1关系类概述

基数:描述对象之间的关系,分为以下四种:一对一(1-1)、一对多(1-M)、多对一(M-1)和多对多(M-N)。

关联键:要创建关系,表 (对象类或要素类)中必须至少包含一个“共同”的字段,这样的字段称为“键”(key)。键值可以是文本型、数值型的 (通常为整型)。在关联的两个表中,关联的键字段名称不一定要一致,但是数据类型必须一致。关系类的创建是在源类(origin class)的主键 (primary key) 和目标类 (destination class) 的外键 (foreign key)之间创建的。

主键:存储能够唯一标识表中的每个对象的字段。外键:记录有源表主键信息的字段。在对象类中,外键记录值不需要唯一,而且通常也是不是唯一的。

关联标注:在关系类中,查找关联表的时候需要关联标注,标注分为向前标注和向后标注。使用向前标注可以从源类找到目标类;使用向后标注,可以从目标类找到源类。

关系种类
简单关系 (simple relationship) 是地理数据库中的两个或多个对象之间的关系对象是独立存在的,进行对象操作时不会影响其他类中的对象。简单关系可以有一对一、一对多、多对多的基数。

*复合关系(composite relationship)*首先要有一个目标类,它依赖于源类,如果从源类中删除对象,目标类中相关联的对象也会被删除。复合关系总是一对多的,但也可以通过关系规则限制到一对一。

3.2建立关系类

3.2.1建立简单关系类

①在 ArcCatalog 目录树中,右键单击需要在其中建立关系类的地理数据库或要素数据集,选择新建–关系类
在这里插入图片描述

②弹出新建关系类对话框,在关系类的名称文本框中输入关系类名称,选择源表或要素类,这里为属性表owners,选择目标表或要素类,这里为地块图形parcels;
在这里插入图片描述
③单击下一步,打开新建关系类选择关系类型对话框 ,选中简单(对等)关系,建立简单关系类;
在这里插入图片描述

④单击下一步,打开指定关系类标注对话框,输入从源类到目标类的向前路径标注:owners(表示某人拥有某地块),输入从目标类到源类的向后路径标注:is owned by(表示某地块被某人拥有),选择关系的消息传递方向为无;
在这里插入图片描述

⑤单击下一步,打开选择关系类基数对话框,选择一对多的关系(即一个人可以拥有多个地块);
在这里插入图片描述

⑥单击下一步,打开关系类添加属性对话框 ,选中否,表示不想将属性添加到此关系类中;
在这里插入图片描述
⑦单击下一步,打开选择主键对话框 ,在第一个下拉框中为要素类或表选择主键,在第二个下拉框中,选择所选的主键的外键,这个是用于指定连接属性表和图形要素的相同字段;
在这里插入图片描述
⑧单击下一步,出现总结信息对话框;
在这里插入图片描述
⑨单击完成,新建立的一个简单关系类出现在ArcCatalog目录树中。
在这里插入图片描述

3.2.2建立复合关系类

建立复合关系类建立复合关系类与建立简单关系类相似,不同的是在选择关系类型对话框中选择复合关系,建立复合关系类。在选择关系类基数对话框中选择“一对多”的复合关系。

在这里插入图片描述
在这里插入图片描述

3.2.3建立关系类的属性

不论是简单关系类的还是复合关系类,都可以具有属性。例如在建立地块与业主的简单关系中,地块有自己的属性,业主也有自己的属性,关系类描述的是某块地所对应的业主,有时还需要存储关系类的一些属性信息,比如业主对地块的使用情况等。

①在上述新建关系类关系类添加属性对话框中选择是,我要将属性添加到此关系类中
在这里插入图片描述

②单击下一步,打开新建关系类添加属性字段对话框,在字段名列下输入添加字段的名字,如aaa、bbb,并分别为字段选择数据类型:文本。在字段属性栏中,设置新字段的属性;
在这里插入图片描述
③重复以上步骤,直到定义完关系类的所有属性字段为止;

④其余步骤与上述创建不需要属性的关系类相似。单击完成按钮,即可创建具有属性的关系类。

3.2.4建立关系类规则

关系类规则用于限制源要素类或表中的对象是否可以被连接到目标要素类或表中的一个确定类型的对象。

①在ArcCatalog 目录树中,右键单击需要建立规则的关系类,选择属性,打开关系类属性对话框,进入规则选项卡;

②在源表/要素类子类型窗口,如果源类有子类型,单击与关系规则关联的子类型,如果源类没有子类型,关系规则将应用于所有要素;

③在目标表/要素类子类型窗口,如果目标类有子类型,单击与源类中被选的子类型相关的目标子类型,如果目标类没有子类型,关系规则将应用于所有要素;

④选择目标表间关系选项卡下的复选框:指定相关联目标对象的范围,指定每个源类相关的目标对象的范围。
在这里插入图片描述

未完,接下篇======

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/514649.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

动态规划--青蛙跳台阶

青蛙跳台阶 前言青蛙跳台阶题目最优解结构性质画图分析发现规律验证规律 动规表达式青蛙跳台阶与斐波那契数列的不同之处 递归实现代码实现测试结果递归过程画图分析 非递归实现代码实现对比分析 前言 斐波那契数列每次学都有不一样的体会,从最开始简单理解就是&am…

无监督域适应 (UDA)(2)

本帖介绍UDA 的一个分支:bi-classifier adversarial learning。 一、回顾 在介绍 bi-classifier adversarial learning 之前,先来回忆一下 adversarial generation framework, 因为前者是基于后者的改进。 如图1所示,左边表示的是1&#xf…

DeepSORT 论文精读

摘要 SORT(Simple Online and Realtime Tracking) we integrate appearance information to improve the performance of SORT 集成外观信息来提高SORT的表现 we are able to track objects through longer periods of occlusions, effectively reduci…

JVM学习05:内存模型

JVM学习05:内存模型 1、java内存模型 很多人将java 内存结构与java 内存模型傻傻分不清,java 内存模型是 **Java Memory Model(JMM)**的意思。 JMM 定义了一套在多线程读写共享数据时(成员变量、数组)时…

UE4/5对背景音乐的调整设置

音乐是一个游戏必不可少的因素。 而在游戏设置中,必不可少的就有对背景音乐的声音大小进行设置,而我们需要的就是如何对背景音乐进行设置: 准备两个蓝图,分别是音效类和音效类混合。 然后打开音效类,我们可以看见下图…

如何用postman进行http接口测试,这篇文章绝对会颠覆你的认知

目录 前言 优点: 1、什么是POSTMAN 2、新建一个项目 2、新增一个用例 3、添加请求信息 4、post请求参数 5、添加头信息 6、预处理和结果检查 7、全局变量与环境变量 8、导出用例为代码 9、批量执行用例 前言 HTTP的接口测试工具有很多,可以进…

贪心法——黑白连线问题

一、问题描述 黑白连线Time Limit: 1000 MSMemory Limit: 1000 KB Description 给定直线上2n个点的序列P[1,2,… ,2n],每个点P[i]要么是白点要么是黑点,其中共有n个白点和n个黑点, 相邻两个点之间距离均为1,请设计一个算法将每…

第六章:C语言的数组

在我的生活中,有许许多多的东西,有强迫症的小伙伴们,喜欢把它们分类到一个地方保存,这样一来,用的时候就按分类的形式来找自己需要的东西,而C语言也是如此,当有多个整形的数字是,就可…

steam搬砖详细解说,CSGO游戏搬砖的18个疑问?

看到这边文章进来的都是想了解steam搬砖,做个副业,我希望你可以认真把这个看完再考虑要不要做,适不适合自己去做,首先steam搬砖这个项目是需要有周转本金的,因为需要购买饰品道具,至于多少,这个…

7种《软件测试用例设计方法》解读及工作场景解析

1、等价类划分法 等价类划分法是一种将输入、输出、内部值等划分为若干个等价类的黑盒测试设计技术。在这种方法中,我们假设同一等价类的数据会被程序以相同的方式处理。 例如:一个允许输入年龄的程序,允许的年龄范围是1到100。在这种情况下…

Vue Test Utils前端单元测试

含义 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。在提供了经过测试的单元的情况下,系统集成过程将会大大地简化。流行框架 Mocha (https://mochajs.cn/)、Jest (https://www.jestjs.cn/) Mocha Chai…

asp.net web api 后端服务器在调试时跨域问题的解决方案

跨域在发布时,在iis设置中 https://www.cnblogs.com/babietongtianta/p/6488985.html 在开发调试时,program.cs中添加 和各种方法,都不可以。 后来在iisexpress中设置,解决了。 在右下角iisexpress 右键 双击打开applicationho…

PCL学习十:Segmentation-分割

参考引用 Point Cloud Library黑马机器人 | PCL-3D点云 PCL点云库学习笔记(文章链接汇总) 1. 引言 点云分割是根据空间、几何和纹理等特征对点云进行划分,使得同一划分区域内的点云拥有相似的特征。点云的有效分割往往是许多应用的前提&#…

【OAI】部署5GSA独立组网网络切片例程及例程解析

文章目录 摘要引言关键技术介绍5G核心网核心网网元功能 网络切片OAIDocker官方例程详解整体介绍具体详解网络切片架构部署概览与说明1-41.预先准备5.部署OAI 5G核心网6.获取基站仿真docker镜像7.部署基站仿真8.通信测试9.分析结果10. 使用多切片的UE11. 解除部署11.1解除RAN部署…

面了一个4年经验的测试员,一问三不知还反过来怼我?

金三银四期间,我们公司也开始大量招人了,我这次是公司招聘的面试官之一,主要负责一些技术上的考核,这段时间还真让我碰到了不少奇葩求职者 昨天公司的HR小席刚跟我吐槽:这几个星期没有哪天不加班的!各种招…

(8)Qt---数据库

目录 1. Qt数据库简介 2. 连接与关闭 3. 建表 4. 增删改 5. 查询 6.银行管理系统程序代码(包含增删改查) 1. Qt数据库简介 Qt只是作为媒介去操作数据库,本身不具备数据库的功能,因此除了Qt以外,还需要在计算机中安装对应的数据库软件&#xf…

Windows 11 支持安卓应用

更改系统国家 打开windows自带的搜索,找到更改国家或地区。把地区改成美国。 开启电脑VT 不同电脑开启方式不一样,请搜索:xxx进入BIOS和xxx开启VT打开你电脑的VT。 安装子系统 电脑打开Microsoft Store直接搜是搜不到的, 点…

C/C++的内存管理

C/C的内存管理 1.C/C的内存分布2.C语言的动态内存管理方式:malloc/calloc/realloc/free3. C内存管理方式3.1. new/delete操作内置类型3.2.new和delete操作自定义类型 4.operator new与operator delete函数4.1 operator new与operator delete函数 5.new和delete的实现…

一次查找分子级Bug的经历,过程太酸爽了

“Debugging is like trying to find a needle in a haystack, except the needle is also made of hay.” Debug调试就像是在大片的干草堆中找针一样,只不过针也是由干草制成的。 在软件开发的世界里,偶尔会出现一些非常隐蔽的 Bug,这时候工…

数据结构之“树”——二叉树、红黑树、B树、B+树、B*树

这篇文章主要简单总结下二叉树、红黑树、B树、B树、B*树的基本结构和原理。 一、二叉树 二叉树就是度不超过2的树(每个结点最多有两个子结点)。 二叉树是有序树(二叉排序树),若将其左右子树颠倒,则成为另一棵不同的二叉树。 二叉…