数据库的关系代数运算

R图如下所示:

ABC
123
456
789

S图如下所示:

ABC
246
456

1.R∪S 并

ABC
123
456
789
246

2.R-S 差

ABC
123
789

3.R×S 笛卡尔积

R.AR.BR.CS.AS.BS.C
123246
123456
456246
456456
789246
789456

4.πC,A(R) 投影

CA
31
64
97

5.σB>’4’ (R) 选择

ABC
456
789

 6.自然连接

属性列名组合在一起并去重

如ABC 和ABD自然连接后属性列名为ABCD

具体数据去重列名如果相同即选用

如下图关系R的ABC的值为246,关系R的BCD第一行的值的值为273,BC=BC,即关系R的CD应该等于关系的CD,但此时46!=73所以舍弃

关系R的BCD第三行第四行同理舍弃

关系R的BCD第二行的值的值为462,BC=BC,46=46,所以符合要求,选取

总结:

  1. 自然连接生成的表应该关系R的列名和关系S的列名组合在一起去除重复列名

  2. 当两个关系都同有此列时,当重复列的值相同时选取

如R:

ABC
246
357
746
547

S:

BCD
273
462
579
563

R⨝S:

ABDD
2462
3573
3579
7462
数据库关系代数运算有很多种,下面是一个例子: 假设有两个关系表: 表1:学生表(Student) | 学号 | 姓名 | 年龄 | 性别 | |------|------|------|------| | 001 | 张三 | 18 | 男 | | 002 | 李四 | 20 | 男 | | 003 | 王五 | 19 | 女 | 表2:成绩表(Score) | 学号 | 课程 | 成绩 | |------|------|------| | 001 | 数学 | 85 | | 002 | 数学 | 90 | | 003 | 数学 | 95 | | 001 | 英语 | 80 | | 002 | 英语 | 85 | | 003 | 英语 | 90 | 我们可以使用关系代数运算来进行一些操作,比如: 1. 投影(Projection):选择出指定的列 - 投影出学生表中的学号和姓名列,可以表示为:π_学号, 姓名(Student) 结果为: | 学号 | 姓名 | |------|------| | 001 | 张三 | | 002 | 李四 | | 003 | 王五 | 2. 选择(Selection):根据条件选择出满足条件的行 - 选择出成绩表中课程为数学的记录,可以表示为:σ_课程='数学'(Score) 结果为: | 学号 | 课程 | 成绩 | |------|------|------| | 001 | 数学 | 85 | | 002 | 数学 | 90 | | 003 | 数学 | 95 | 3. 连接(Join):将两个关系表按照指定的条件连接起来 - 将学生表和成绩表按照学号连接起来,可以表示为:Student ⨝_学号=学号 Score 结果为: | 学号 | 姓名 | 年龄 | 性别 | 课程 | 成绩 | |------|------|------|------|------|------| | 001 | 张三 | 18 | 男 | 数学 | 85 | | 001 | 张三 | 18 | 男 | 英语 | 80 | | 002 | 李四 | 20 | 男 | 数学 | 90 | | 002 | 李四 | 20 | 男 | 英语 | 85 | | 003 | 王五 | 19 | 女 | 数学 | 95 | | 003 | 王五 | 19 | 女 | 英语 | 90 | 这只是数据库关系代数运算的一部分,还有其他运算符和操作可以用来处理关系表的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值