目录
- 关系演算之关系元组演算
- 关系演算之关系域演算
- 关系演算之安全性
- 关于三种关系运算的一些观点
重难点
- 关系元组演算公式的递归定义;关系域演算公式的递归定义
- 关系元组演算公式:与∧、或∨、非¬、存在量词∃、全称量词∀
- 用关系元组演算公式表达查询的思维训练
- 用QBE语言表达查询的思维训练
- 关系元组演算、域演算和关系代数在表达查询方面的思维差异
关系演算
- 关系演算是以数理逻辑中的谓词演算为基础的
- 关系演算是描述关系运算的另一种思维方式
- SQL语言是继承了关系代数和关系演算各自的优点所形成的
按照谓词变量的不同,可分为关系元组演算和关系域演算- 关系元组演算是以元祖变量作为谓词变量的基本对象
- 关系域演算是以域变量作为谓词变量的基本对象
关系元组演算
关系域演算
关系运算的安全性
关于关系运算的一些观点
- 关系运算有三种:关系代数、关系元组演算、关系域演算
- 三种关系运算都是抽象的数学运算,体现了三种不同的思维
- 关系代数:以集合为对象的操作思维,由集合到集合的变换
- 元组演算:以元组为对象的操作思维,取出关系的每一个元组进行验证,有一个元组变量则可能需要一个循环,多个元组变量则需要多个循环
- 域演算:以域变量为对象的操作思维,取出域的每一个变量进行验证其是否满足条件
- 三种运算之间是等价的
- 关系代数与安全的元组演算表达式与安全的域演算表达式是等价的。即一种形式的表达式可以被等价地转换为另一种形式
- 三种关系运算都可以说是非过程性的
- 相比之下,域演算的非过程性最好,元组演算次之,关系代数最差
- 三种关系运算虽是抽象的,但却是衡量数据库语言完备性的基础
- 一个数据库语言如果能够等价地实现这三种关系运算的操作,则说该语言是完备的
- 目前多数数据库语言都能够实现这三种运算的操作,在此基础上还增加了许多其他的操作,如赋值操作、聚集操作等
- 数据库语言可以基于这三种抽象运算来设计
- 用“键盘符号”来替换抽象的数学符号
- 用易于理解的符号组合来表达抽象的数学符号
- 例如:ISBL语言——基于关系代数的数据库语言