数据结构中的自然连接

作者: 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 |

相关文章

  • 数据结构中的自然连接

    数据结构中有自然连接的概念. 自然连接是指关系R和S在所有公共属性(common attribute)上的等接(E...

  • 2020 区块链 golang 版本(F)

    数据结构 在区块链中,区块链是块间通过hash指针相连接的链表结构。而在区块中交易数据保存成为梅克尔树的数据结构。...

  • 数据库查询

    1,内连接 内连接:内连接也叫连接,还可以被称为普通连接或者自然连接,内连接是从结果表中删除与其他被连接表中没有匹...

  • Netty理论四:TCP vs UDP

    1、 区别 TCP数据结构复杂,UDP 数据结构较简单 TCP 是面向连接的,UDP 是面向无连接的 TCP 是面...

  • 数据库连接查询概念(内、外连接)

    内连接: 也称普通连接、自然连接。 内连接是从结果表中删除与其他被连接表中没有匹配行的所有行,所以内连接可能会丢失...

  • 52 SQL 复习 语句关系代数(三)

    多表查询 等值连接查询和非等值连接查询 JOIN ON 自然连接 自身连接 注意,如果属性名在参与连接的各个表中是...

  • Qt 信号和槽底层原理源码解析笔记

    1. 底层数据结构——建立连接时建立的什么。 读者可先大致浏览一下qobject_p.cpp中添加连接的实现,回头...

  • MySQL索引背后的数据结构及算法原理

    参考来源 mysql索引分析 MySQL索引背后的数据结构及算法原理 MySQL中EXPLAIN命令详解 索引连接...

  • 与自然的连接

    【红利写作日更260/300】 有些想念家里的月季花啦,不知道长得如何? 记得去年的春天,应该是开花的第一年,花团...

  • 图的创建和遍历

    目录 图的定义 数据结构中,图由顶点和边构成如下: 上图中数字代表顶点(Vertex),连接顶点的是边(Edge)...

网友评论

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

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