数据结构中的自然连接

作者: KenZhangCn | 来源:发表于2017-07-11 23:37 被阅读91次

    数据结构中有自然连接的概念. 自然连接是指关系R和S在所有公共属性(common attribute)上的等接(Equijoin). 但在得到的结果中公共属性只保留一次, 其余删除.
    简单的说, 就是把两张表连接成另一张表, 条件是表中有数据类型和数值都相同的元素, 并已此元素为基准, 合并其他元素为一张表, 基准元素之保留一个.


    比如表R为:

    | A | B | C | 
    | 1 | 2 | 3 |
    | 2 | 3 | 3 |
    | 1 | 1 | 6 |
    

    比如表S为:

    | C | D | E |
    | 3 | 1 | 1 |
    | 2 | 2 | 2 |
    | 6 | 3 | 3 |
    

    R和S自然连接可记作:R⋈S
    结果为:

    | A | B | C | D | E |
    | 1 | 2 | 3 | 1 | 1 |
    | 2 | 3 | 3 | 1 | 1 |
    | 1 | 1 | 6 | 3 | 3 |
    

    在这个例子中公共属性是 C ,即 R 表的第三列和 S 表的第一列. 如果这两列值相同就把他们连接成一个新表.


    具体的计算过程如下.

    1. 把 R 表中的每一行乘 S 表中的每一行. 得到一个 9 X 6 的表.
    | A | B | C | C | D | E | 
    | 1 | 2 | 3 | 3 | 1 | 1 |
    | 1 | 2 | 3 | 2 | 2 | 2 |
    | 1 | 2 | 3 | 6 | 3 | 3 |
    | 2 | 3 | 3 | 3 | 1 | 1 |
    | 2 | 3 | 3 | 2 | 2 | 2 |
    | 2 | 3 | 3 | 6 | 3 | 3 |
    | 1 | 1 | 6 | 3 | 1 | 1 |
    | 1 | 1 | 6 | 2 | 2 | 2 |
    | 1 | 1 | 6 | 6 | 3 | 3 |
    
    1. 观察上表的两个 C 列, 值相同保留那一行, 值不同删除那一行. 结果为:
    | A | B | C | C | D | E | 
    | 1 | 2 | 3 | 3 | 1 | 1 |
    | 2 | 3 | 3 | 3 | 1 | 1 |
    | 1 | 1 | 6 | 6 | 3 | 3 |
    
    1. 因为只保留一次公共属性, 所有去除多余的数据, 得到结果.
    | A | B | C | D | E |
    | 1 | 2 | 3 | 1 | 1 |
    | 2 | 3 | 3 | 1 | 1 |
    | 1 | 1 | 6 | 3 | 3 |
    

    相关文章

      网友评论

        本文标题:数据结构中的自然连接

        本文链接:https://www.haomeiwen.com/subject/jnsmhxtx.html