关系域演算
一、关系演算公式
关系域演算公式的基本形式:{<X1,X2,…,Xn> | P(X1,X2,…,Xn)},其中,Xi代表域变量或常量,P为以Xi为变量的公式。
公式P可以递归地进行构造:
-
三种形式的原子公式是公式
-
如果P是公式,那么非P也是公式。
-
如果P1,P2是公式,那么P1且P2,P1或P2也是公式。
-
如果P是公式,x是域变量,则
也是公式。 -
需要时可加括弧。
-
上述运算符的优先次序为:
-
公式只限于以上形式。
二、关系域演算公式构造示例
1.例如:检索出不是03系的学生。
2.例如:检索不是(小于20岁的男同学)的所有同学的姓名。
3.例如:检索成绩不及格的同学姓名,课程及其成绩。
三、元组域演算与关系元组演算的比较
元组演算的基本形式:{t | P(t)}
域演算的基本形式:{<X1,X2,…,Xn> | (X1,X2,…,Xn)}
四、基于关系域演算的QBE语言
域演算语言QBE特点:操作独特,基于屏幕表格的查询语言,不用书写复杂的公式,只需将条件填在表格中即可。
QBE的基本形式:
QBE操作框架由四个部分组成:
- 关系名区:用于书写待查询的关系名。
- 属性名区:用于显示对应关系名区关系的所有属性名。
- 操作命令区:用于书写查询操作的命令。
- 查询条件区:用于书写查询条件。
例如:找出年龄小于17岁的所有女同学。
解释:1.同行中各个条件之间“且”关系(与),如上图,可写为域演算公式:
QBE的查询条件—用示例元素实现‘与’运算与‘非’运算。
当条件或条件(或运算)时,可以采用多行书写,然后在打印命令后使用不同的示例元素来表征。
如果一批且条件分多行书写,则相互存在且关系的行要采用相同的示例元素。
QBE的条件查询----相当于括号的条件表示
也可以将与,或,非条件写在操作命令区,如下图所示:
当与,或,非运算符写在操作区时,是对整体条件而言,相当于将该条件放在括号中一样。
QBE的查询条件----用示例元素实现多个表的连接
当涉及多个表的时候,可利用同一连接条件使用相同的示例元素,来实现多个表的连接。
例如:李明老师教过的所有学生。