在数据库管理系统(DBMS)中,数据通过属性和元组(即列和行)以表格形式表示。
我们可以对表执行各种操作(插入,删除,更新,修改等)。一种这样的操作是join。当我们将两个表合并为一个表时,我们称其为联接,并用denoted表示。
虚假元组:
虚假元组是表中的那些行,是由于以错误的方式连接两个表而导致的。它们是多余的元组(行),可能不需要。
如果关系用R表示,并且其分解关系用R1,R2,R3 …. Rn表示,则不获取任何虚假元组的条件用下式表示:
R1 ⨝ R2 ⨝ R3 .... ⨝ Rn = R
而获取虚假元组的条件表示为:
R ⊂ R1 ⨝ R2 ⨝ R3 .... ⨝ Rn
示例1:
检查给定关系是否包含虚假元组的示例。
令R为关系,而R1和R2为分解R后得到的关系。
在执行关系R1和R2(R1⨝R2)的联接运算后,我们返回原始关系R。
满足无伪元组的条件R1⨝R2 =R。因此,我们没有任何虚假元组。
结论–不存在虚假元组。
示例2:
检查给定关系是否包含虚假元组的示例。
令R为关系,而R1和R2为分解R后得到的关系。
在执行关系R1和R2(R1⨝R2)的联接运算后,我们没有获得原始关系R。
满足伪元组的条件R⊂R1⨝R2。因此,我们得到了虚假元组。
结论–虚假元组存在。
笔记 –
DBMS中的行称为元组。而DBMS中的列称为属性。可以将虚假元组记住为表中的额外行。导致虚假元组的自然连接称为有损连接。不会导致虚假元组的自然连接称为无损连接。