前言:学习SQL语言的基础是理解关系演算和关系代数在表达查询方面的思维方法,之前所学的关系代数是基于集合的 查询,而关系元组演算和关系域演算是基于逻辑的查询。下面继续学习关系演算。
(1)学习关系演算从以下几个方面入手:
1,关系元组演算
例子:
下面理解全称量词∀和存在量词∃
用元组运算公式实现关系代数:
元组演算与关系代数对比应用的四个复杂例子:
问题一:
问题二:
问题三:
问题四:
2,关系域演算
3,关系元组运算与域演算的比较
4,理解QBE语言(Query By Example)
- 操作独特,基于屏幕表格的查询语言,不用书写复杂的公式,只需将条件填在表格中即可
- 是一种高度非过程化的查询语言
- 特别适合于终端用户的使用
操作命令:
(1)插入命令
(2)删除命令:
查询条件(简单条件):
比如:
又
比如:
再又
比如:
这里因为只用打印出一个属性比如上式的同学名字而不用打印其它学号性别年龄等等属性,所以可以不在操作命令区写而直接在查询条件区书写。
比如把张三同学的年龄更新为19:
最后:
QBE是一种域演算语言,故可以与过程化的域演算转化:
查询条件(复杂条件):
5.关系运算的安全性
那要怎么去保证关系演算的安全性呢?安全约束有限集合
保证了安全性的元组演算表达式称为安全元组演算表达式
前提是要满足下列三个条件(红色部分是解释):
小结: