数据库系统笔记——关系代数操作的组合与应用

1.书写关系代数基本表达式基本思路

Created with Raphaël 2.1.0开始是否涉及[多表]?1. 能否使用[自然连接]?直接并、差、交、选择与投影结束2. 能否使用等值或不等值连接[θ-连接]?3. 使用广义笛卡儿积yesnoyesnoyesno

选投联思路
数据库系统笔记——关系代数操作的组合与应用

2.常见书写误区

(1)语义错误

举例:查询课程号为001和002的学生的学号
错误形式:

ΠS#(σC#=001C#=002(SC))

选择操作无法同时选择C#同时为‘001’与‘002’的课程

正确形式1:
数据库系统笔记——关系代数操作的组合与应用

通过更名创建新表SC1后,等值连接

正确形式2:
数据库系统笔记——关系代数操作的组合与应用

通过交运算实现

(2)查询不完全

举例:查询不学习课程号为002的学生的姓名和年龄
错误形式1:
数据库系统笔记——关系代数操作的组合与应用

除非学生只选了一门课且为002,否则该生也将出现在查询结果中。

错误形式2:
数据库系统笔记——关系代数操作的组合与应用

  • 不满足差运算的并相容性
  • 并、差、交运算前务必注意并相容性

正确形式:
数据库系统笔记——关系代数操作的组合与应用

差运算,构造并相容的两个表

=====================
哈工大数据库系统(上)视频链接