思维导图
1.关系的数学定义
先了解几个概念
域:
域是一组具有相同数据类型值的集合。在关系模型中,使用域来表示实体属性的取值范围。通常用Di来表示某个域
笛卡尔积:
现有两个关系R和S,R×S就是R与S的笛卡尔积,示例如下:
关系:
一个表就是一个关系
2.传统的关系运算
传统的关系运算有:并、差、交
并
差
交
3.专门的关系运算
专门的关系运算有:查询、投影、连接(等值连接、不等连接、自然连接)、除运算
查询
选择就是"筛选行"。选择一般要对一张表选择符合条件的行(但包含所有列)。
投影
投影就是"筛选列"。一个数据库表,如仅希望得到其一部分的列的内容(但全部行),就是用投影。
等值连接
不等连接
自然连接
除运算1
除运算2
除运算有两种情况:
ABCD÷CD=AB和ABC÷BCD=A,但是第二种的“除数”中的D没有起作用,相当于是ABC÷BC=A
除运算的运算步骤(以图.除运算2为例):
①找到“被除数R”和“除数S”相同的属性,为B、C,顺势找出“被除数R”中除相同属性以外的属性为A
②找到A属性中各分量值的象集:a1{(b1,c2),(b2,c3),(b2,c1)}、a2{(b3,c5),(b2)(c3)}、a3{(b4,c4)}、a4{(b6,c4)}
③判断包含关系,对比发现:a2、a3和a4的象集都不能包含关系S中的B和C属性中的所有的值,所以删除a2、a3和a4,而a1能包含关系S中的B和C属性中的所有的值,因此R÷S的最终结果就是{a1}。
观察发现:
所有的关系运算都有去重操作;自然连接本质上是等值连接,自然连接相比于等值连接多了一个去掉重复列的操作
——例题及讲解另写在一篇文章: