抽象的查询语言:关系代数、元组关系、域关系演算;
这些抽象的语言与具体的DBMS中实现的实际语言并不完全相同。
关系代数为关系模型定义了一组操作,与此不同的是,关系演算为关系查询提供了一个更高级的描述性表示法。
关系模型的关系操作
关系操作通过关系语言实现;
- 关系操作的特点是:集合操作方式,即操作的对象和操作的结果都是集合。
- 关系语言的特点是:高度非过程化
非过程化:
用户不必请求DBA为它建立特殊的存储路径,存储路径的选择由DBMS的优化机制来完成。
用户不必求助于循环和递归来完成数据的重复操作。 - 关系操作能力可用两种方式来表示:代数方式和逻辑方式。
SQL语言是一种重要的关系数据语言。
-
SQL语言
数据操纵:insert,update,delete
数据控制:grant,revoke
数据定义:create,drop,alter -
关于SQL语言支持数据库三级模式结构
SQL语言 | 数据库三级模式结构 |
---|---|
视图和部分基本表 | 外模式 |
基本表 | 模式 |
存储文件 | 内模式 |
- 一个SQL数据库模式是该数据库中基本表的集合。
- 一个表可以有若干个索引,索引存放在存储文件中。
关系演算语言:元组关系演算语言、域关系演算语言
关系代数
连接:从两个关系的笛卡尔积中选取它们属性间满足一定条件的元组的操作
(关系代数中的连接运算是由笛卡尔积和选择组合而成的)
- 并、交、差、广义笛卡尔积 四种操作,都是二元操作。
- 并、交、差 需要满足相容性条件。
相容性条件:相同的属性个数,并且每对相对应的属性都具有相同的域。 - 并、差、笛卡尔积、投影、选择 五种操作可以来表达任何的其他关系操作。
- 并、交、差、笛卡尔积 操作都将关系看成是元组的集合,其操作都是从行的角度进行的。
- ER模型向关系模型转换的规则是:
- 一个实体类型转换成一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。
- 一个 1:1 联系可以转换为一个独立的关系模式,也可以与联系的任意一端实体所对应的关系模式合并。
- 一个 1:n 联系转换为一个独立的关系模式,也可以与联系的n端实体所对应的关系模式合并。
- 一个 m:n 联系转换为一个关系模式,与该联系相连的各实体的码以及联系本身的属性组均转换为关系的属性,而关系的码为各实体码的组合。
- 3个或3个以上的实体间的多元联系转换为一个关系模式。
一元的专门关系操作:
-
选择又称为限制,它是在关系R中选择满足给定条件的元组。
选择操作是从行的角度进行的操作,对关系R的选择操作的结果关系的列数不会少于关系R的列数。 -
对关系R的投影操作,是从R中选择若干个属性列组成新的关系。
即从列的角度进行的操作,对关系R的选择操作的结果关系的行数可能会少于关系R的列数。