关系代数操作全解析
1. 笛卡尔积(Cartesian Product)
笛卡尔积,也称为叉积,Ullman 符号和 Date 符号在其格式上基本一致。PRODUCT 语句形式如下:
ProductStatement ::=
<RelationalExpression> TIMES <RelationalExpression>
得到的虚拟关系是将第一个关系的所有元组与第二个关系的所有元组连接起来。笛卡尔积本身的用途有限,因为它会产生大量虚假元组。但当与选择和/或投影操作结合时,就非常有用了。
示例:获取部门名称及其负责人姓名
假设要获取部门名称和相关部门负责人姓名的组合,需要从 Department 和 Employee 两个不同关系中提取数据,关键在于外键 Department.DeptHead# 引用了 Employee.Emp#。
解决方案 1:先进行笛卡尔积,再选择和投影
// 基于 Ullman 符号
PROJ DeptName, EmpName (SELECT DeptHead# = Emp# (Department TIMES
Employee))
// 基于 Date 符号
DeptName, EmpName FROM (Department TIMES Employee) WHERE DeptHead# =
Emp#
超级会员免费看
订阅专栏 解锁全文
1440

被折叠的 条评论
为什么被折叠?



