地理数据库创建——进一步定义数据库①
目录
- 地理数据库创建——进一步定义数据库①
- 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 目录树中,右键单击需要建立规则的关系类,选择属性,打开关系类属性对话框,进入规则选项卡;
②在源表/要素类子类型窗口,如果源类有子类型,单击与关系规则关联的子类型,如果源类没有子类型,关系规则将应用于所有要素;
③在目标表/要素类子类型窗口,如果目标类有子类型,单击与源类中被选的子类型相关的目标子类型,如果目标类没有子类型,关系规则将应用于所有要素;
④选择目标表间关系选项卡下的复选框:指定相关联目标对象的范围,指定每个源类相关的目标对象的范围。
未完,接下篇======