📜  DBMS 中的虚假元组

📅  最后修改于: 2021-09-10 02:24:19             🧑  作者: Mango

在数据库管理系统 (DBMS) 中,数据通过属性和元组(即列和行)以表格形式表示。
我们可以对表执行各种操作(插入、删除、更新、修改等)。一种这样的操作是加入。当我们将两张表合二为一时,我们称之为连接,用⨝表示。

伪元组:
虚假元组是表中的那些行,它们是由于以错误的方式连接两个表而发生的。它们是可能不需要的额外元组(行)。

如果关系用R表示,其分解的关系用R1、R2、R3….Rn表示,那么,没有得到任何Spurious Tuple的条件表示为,

R1 ⨝ R2 ⨝ R3 .... ⨝ Rn = R

而获得虚假元组的条件表示为,

R ⊂ R1 ⨝ R2 ⨝ R3 .... ⨝ Rn

示例 1:
检查给定关系是否包含虚假元组的示例。
设R为Relation,R1和R2为分解R后得到的关系。

对关系 R1 和 R2(R1 ⨝ R2)进行连接操作后,我们得到原始关系 R。

满足无伪元组的条件 R1 ⨝ R2 = R。因此,我们没有得到任何虚假元组。

结论 –不存在虚假元组。

示例 2:
检查给定关系是否包含虚假元组的示例。
设R为Relation,R1和R2为分解R后得到的关系。

在对关系 R1 和 R2(R1 ⨝ R2)进行连接操作后,我们没有找回原来的关系 R。

满足伪元组的条件 R ⊂ R1 ⨝ R2。因此,我们得到了伪元组。

结论 –存在虚假元组。

笔记 –
DBMS 中的行称为元组。而 DBMS 中的列称为属性。虚假元组可以作为表中的额外行被记住。导致虚假元组的自然连接称为有损连接。不会产生虚假元组的自然连接称为无损连接。