第二章、表格结构数据与表结构数据(4)

第二章、表格结构数据与表结构数据(4)
五、表结构数据的合并

1、横向合并

横向合并:将不同表中的字段信息合并到同一个表中使用的方式。数据表间横向合并的前提条件是两表间需要分别有一个可用于连接的公众字段。

通过公共字段连接在一起的两表在进行横向合并后的合并结果最终由连接时的3个属性决定,它们分别是方向性、主附关系以及对应关系。

(1)方向性
两表连接时的方向性分为左表与右表两种。
在数据库中书写sqL命令时,写在连接命令前面的表称为左表,写在连接命令后面的表称为右表。
例如,"订单详情表left join产品属性表”…, 在这段语句中,
"left join”是SQL语句中的左连接命令,在这个命令前面的“订单详情表”称为左表,而命令后面的"产品属性表”称为右表。

因为两表连接的逻辑功能起源于数据库,所以虽然连接两表时使用的可能并不是SQL语句而是其他工具的操作界面,但不管哪种表结构数据分析工具,在连接两表时也都保留了左表及右表的方向性属性。

(2)主附关系

主附关系:根据连接方式来决定两表间的主附关系。

在业务描述性分析中,主要使用3种连接方式:左连接、右连接及内连接。

当使用左连接方式进行连接时,左表是主表,右表是附表;
当使用右连接方式进行连接时,右表是主表,左表是附表;
当使用内连接方式进行连接时,两表没有主附之分。

(3)横向合并结果的范围

两表横向合并结果的范围由主表公共字段的记录内容决定。

主表公共字段中有的记录值会反映在横向合并结果中,而主表公共字段中没有的记录值则不会出现在横向合并结果中。

当主表公共字段中有某个记录值在附表公共字段中找不到匹配对象时,此行记录中附表部分会被匹配为空值。当附表公共字段中有某个记录值在主表公共字段中找不到匹配对象时,此行记录不会出现在横向合并结果中。内连接方式下两表没有主附之分,横向合并结果中只包含两表共有的、能够相互匹配到记录行的内容。

(4)对应关系

对应关系:由公共字段中是否存在重复值决定的。对应关系决定两表连接结果的行数是两表公共字段匹配记录值乘积的结果。在实际应用场景中,我们应尽量使用一对多的对应关系进行连接,也就是要将某个表的主键与另一个表的非主键作为公共字段进行连接。

多表:公共字段中存在重复值的表称为多表。

一表:公共字段中不存在重复值的表称为一表。

三种对应关系:

多对多:非主键对非主键。

一对一:主键对主键。

一对多(包括一对多和多对一):主键对非主键。

(5)对两表间横向合并的逻辑进行总结
1是横向合并前要先选择连接两表用的公共字段。
2是主附关系=方向性+连接方式。
3是两表横向合并结果的范围由主表公共字段的记录内容决定。
4是内连接没有主附之分,横向合并结果中只包含两表能够相互匹配到值的记录行。
5是两表合并时会产生一表对一表、一表对多表及多表对多表3种不同的对应关系。
6是对应关系决定两表连接结果的行数是两表公共字段匹配记录值乘积的结果。
7是多表一般是将非主键字段作为公共字段使用的表,一表一般是将主键作为公共字段使用的表,在实际工作中,一般应尽量选择一对多的对应关系进行连接。、

(6)鸟瞰图

标识多表连接关系的"鸟瞰图"称为E-R图(Entity Relationship Diagram,实体关系图)。

根据应用场景的不同及展现信息的差异,E-R图可以拥有多种画法。

在CDA一级中,主要用E-R图体现表与表间的对应关系及连接用公共字段等信息。画法是首先将每一个表的字段列表展现出来,再用连接线连接两表的公共字段,最后标识出两表的对应关系。

表与表间的连接线指向的字段就是两表连接时使用的公共字段,连接线标识"1”的一侧就代表是一表,而标识“*”的一侧就代表是多表。



在表结构数据的合并中除了在字段上进行数据信息合并的横向合并方式,还有另一种在记录上进行数据信息合并的方式。我们将多表中记录信息合并到同一个表中进行使用的合并方式称为纵向合并

2、纵向合并方式

将多表中记录信息合并到同一个表中进行使用的合并方式称为纵向合并方式。
在进行多表的纵向合并时,主要有以下两种合并方式:
一种是去重合并,另一种是全合并。

去重合并是将记录内容完全相同的记录行去重后再进行合并的方式。
全合并是不去除重复内容的记录行,直接将不同表中所有的记录行合并在一起的方式。
在数据库sQL命令中,"union"命令为去重合并,"union all”命令为全合并。
其他表结构分析工具中有些不具备去重合并的功能,需要在合并后进行单独的去重处理。

纵向合并需要满足以下两个条件:
第一个条件是合并在一起的数据表应具有相同的字段数。
第二个条件是相同位置上的字段数据类型应保持一致。

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值