关系数据集基本术语

关系数据集

用于存储两个数据集对象之间的关联关系的数据集。这种数据集可用永久的存储一个数据集中的对象与另一个数据集中的对象之间的关系,是一种兼容空间数据和非空间数据的高级管理机制。

例如,数据集A存储了某行政区域内的不动产单元(地块)信息(不动产单元号、地块用途、面积),数据集B存储了不动产权利人信息(姓名、身份证号、联系电话、不动产单元号),通过对数据集A和数据集B基于关键字段“不动产单元号”创建关联关系,即可在浏览或查询数据集A中的某地块时,即时关联并获取到该地块对应的权利人所有信息。当城市规划涉及特定地块的土地征收或用途调整时,可基于此关联关系精准、快速地通知相关权利人进行沟通。

源数据与关联数据

源数据集

与关联数据集相对应的数据集。

源对象

源数据集中的对象。如下图中,除表头外,每一行代表一个对象。

关联数据集

与源数据集相对应的数据集。

关联对象

关联数据集中的对象。如下图中,除表头外,每一行代表一个对象。

关系属性化

关系属性化是指通过引入第三个关系表来管理源数据集与关联数据集对象之间的关联关系。该关系表对应的属性信息存储在关系数据集中,通过编辑其属性表可具体定义两个数据集对象之间的关联关系。

而在非关系属性化的关系数据集中,源数据集的源主键与源外键(源外键在关联数据集中)直接进行关联,无需通过关系数据集的属性信息进行维护。这种方式通常适用于一对一或一对多关系模型,即一个表中的某条记录可以关联另一个表中的一条或多条记录,但不支持从关联表反向追溯至源表。

主键与外键

源主键

在非关系属性化的一对一和一对多关系中,源主键为源数据集中与关联数据集相关联的字段。而在关系属性化或多对多关系中,源主键为源数据集中与关系数据集相关联的字段。

源外键

在非关系属性化的一对一和一对多关系中,源外键为关联数据集中与源数据集相关联的字段。而在关系属性化或多对多关系中,源外键为关系数据集中与源数据集相关联的字段。

关联主键

在关系属性化或多对多关系中,关联主键为关联数据集中与关系数据集相关联的字段。

关联外键

在关系属性化或多对多关系中,关联外键为关系数据集中与关联数据集相关联的字段。

图:非关系属性化的一对一和一对多关系
图:关系属性化或多对多关系

关系类型

SuperMap iDesktopX 将关系数据集的关系类型分为弱关联和强关联。

弱关联

在弱关联关系中,删除源数据的对象,关联对象的键字段值会变为空值,不会删除关联对象。当前版本暂不支持。

如下图,删除源数据集中不动产单元号为“11111”的对象,关联数据集中的不动产单元号值为“11111”的单元格将被清空。

强关联

在强关联关系中,删除源对象,关联对象同步删除。当前版本暂不支持。

如下图,删除源数据集中不动产单元号为“11111”的对象,在关联数据集中将同步删除不动产单元号列为“11111”的对象。

关系模型

一对一

源数据集中的一条记录只能对应关联数据集中的一条记录,关联数据集中的一条记录也只能对应源数据集中的一条记录。

如下图,在学生表和学生卡表中,一个学生只能对应一个学生卡,一个学生卡只能对应一个学生。

一对多

源数据集中的一条记录可以对应关联数据集中的多条记录,但关联数据集中的一条记录只能对应源数据集中的一条记录。

如下图,在班级表和学生表中,一个班级可以由多名学生组成,但一个学生只能在一个班级中。

多对多

源数据集中的一条记录可以对应关联数据集中的多条记录,关联数据集中的一条记录也可以对应源数据集中的一条记录。

如下图的课程表和学生表中,一门课程可由多名学生选修,一名学生也可选修多门课程。由于无法在任意一张表中直接通过外键实现这种关联,通常需要引入一个关联表,用于存储课程表和学生表的主键作为外键。该关联表建立了课程与学生之间的映射关系,从而实现了两者之间的多对多关联。

关系标签

正向关系标签

通过源对象查看关联对象时,显示的关系描述信息。

反向关系标签

通过关联对象查看源对象时,显示的关系描述信息。

如下图,将Country_R作为源数据、Education_P为关联数据创建关系数据集。正向关系标签设置为“被包含”,表示Education_P中的对象被Country_R中的对象包含;反向关系标签设置为“包含”,表示Country_R中的对象包含Education_P中的对象。当选中Country_R中的对象并查看对象属性时,Education_P数据集后将显示“被包含”,而选中Education_P中的对象并查看对象属性时,Country_R数据集后将显示“包含”。

相关主题

创建关系数据集

查看关联对象属性信息

查看关系数据集属性