关系的基本概念
行叫做元组或者记录,列名叫做标题或者模式,列叫做字段或者属性或者数据项
关系中的属性不可再分
同一列的列值要取自同一个域,不同列的值可能来自同一个域
域名与属性名的含义并不相同
能标识唯一的一个元组
外码可以连接关系
主码不可以是空值
关系代数
基本操作
满足条件
condition
的所有元组
把符合属性的列挑出来,并去重
扩展操作
交运算可以通过差运算来实现
图中的错误应该是,关系的代数运算并不满足我们平常的四则运算的去括号的规则
先做积运算,然后选择出满足条件的元组
相同属性并且属性的值相等,最后要去掉重复属性
错误,因为
SC1
和SC
有多个相同属性,没有指出到底是哪个属性进行自然连接,所以会使所有同名属性都被去掉,这样连接后就和SC
还是一样的,选出来的是空
第一个错误,学生有可能学了多门课程
第二个错误,不满足并相容性
复杂扩展操作
R
要包含S
的所有属性,并且比S
的属性多可以用来查询全部的XXX
(1)R÷S
是在R
中的A3
里有c
的元组,然后投影出除了A3
以外的属性;
(2)R÷S
是在R
中的A3
里A1,A2
值相同,并且一个有c
另一个有f
的元组,然后投影出除了A3
以外的属性;
(3)略
(4)略
在本例中两个式子的结果是一样的
原因:
-
S
与SC
中除了学号相同以外没有其他属性相同所以可以直接等值连接; - 学号+课程号是
SC
的候选码,如果不是的话那么第一个式子投影时会有去重,这样就会导致结果不一样。