16、关系代数操作全解析

关系代数操作全解析

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#
解决方案 2:使用等值连接,再投影(后续
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值