目录
1.理解为什么要有关系代数
目标:实现五个操作的算法
方法:把基本动作组合用关系代数表达→SQL语言→开发数据库管理系统解析语言
2.关系代数基本操作:
(0)实现操作的要求:并相容性
这就是谁能进行那些操作
接下来正经的操作
(关系的度数是有多少列,也就是多少个属性)
(1)(操作有五个,不难要多练习
(2)扩展操作
自然连接vs等值连接
难区分的部分等值连接自然连接和笛卡尔积,b站上面有视频
自然连接就是去掉重复属性的等值连接
自然连接一定是等值连接
自然连接会把相同的变成一列http://t.csdnimg.cn/BcuHj
(3)复杂扩展
①除:A➗B(有点复杂)
1)条件:
B是A的真子集(内容和数目)
2)结果
属性:A的属性去掉B中的属性,剩余的属性
元组:除之后的元组和B中的每个元组组合出来的新元组,都得是A中的元组
(注:除之后的内容要和B中的每个元组都能组合成A中的元组,如下图:
应用:查询选修了全部课程的学生的学号
例子:
step1:找到学号xx学生的全部课程
step2:通过除找到它的s#
step:连接起来投影
②外连接
1)为啥提出?如果用自然连接,很多信息会丢失,比如B里没有的,A里有,连之后就没了
2)
左外连接,就是左边的关系的信息不丢失
想留住哪个表的信息,就把口口朝向谁
留课程
全部留
总结
集合操作,对象都是集合
我们的程序执行机构干嘛?就是把我们设计好的语言变成最基本动作的调用;程序=关系代数组合;DBMS解析组合,拆开分解,用基本操作算法实现
这节不难,一会做课后题