关系数据库
关系模式的三个组成部分:
- 数据结构(数据的组织方式)
- 关系操作(数据的增删查改怎么进行)
- 关系的完整性(数据之间的联系)
关系的形式化定义
关系是一种数据结构,是一张二维表。
其行称为元组,对应现实世界的一个实体。
其列来自域,是具有相同数据类型的值的集合,域中元素的可取值个数称为域的基数。
域上的一种集合运算是笛卡尔积(就是一种排列组合)。而笛卡尔积大多没有意义(语义),其子集才可能成为域上的关系:R (D1, D2, …, Dn)。
关系中:
- 候选码:能唯一标识元组的属性集。其子集一定不是候选码。候选码可以有多个。
- 主属性:候选码中的属性。其他属性为非码属性。
- 主码:随意选择一个候选码作为主码。
- 全码:所有的属性加在一起是这个关系的候选码。
关系的三种基本类型:
- 基本表:实际存储的数据的逻辑表示。
- 查询表:查询结果对应的表
- 视图表:是虚表,数据库只存储其定义。
关系模式是对关系的描述。关系是元组的集合,关系模式则描述了元组包含哪些属性、分别来自哪些域、数据之间的关系等等。关系模式应该适当刻画出完整性约束条件
关系操作
基本关系操作
关系操作是集合操作,操作的对象和结果都是集合。常用关系操作:
- 查询:选择、投影、连接、并、差、笛卡尔积等等
- 插入
- 删除
- 修改
关系数据语言分类
- 代数方式:关系代数
- 逻辑方式:关系演算
- 元组关系演示
- 域关系演算
- 结构化查询语言SQL:集 查询、数据定义、数据操纵、数据控制与一体的关系数据语言。高度非过程化。系统自动选择存取路径(查找数据的方式)
关系完整性
- 实体完整性:主属性不能取空值。
- 针对基本关系而言。基本关系对应的是现实中的一个实体集,而实体是可区分的(拥有唯一标识),所以关系的主码不可重复,也不可取空值。
- 参照完整性:关系之间存在引用关系(相互依赖)
- 外码取空的情况:例:学生选秀课程号为空,说明该学生还没开始选课
- 用户自定义的完整性:反应现实世界的语义要求
关系代数(重点
关系代数是对关系的查询语言的抽象描述。
概念不再赘述,感觉这里会考大题。(把书上例题多看几遍
- 并 、差、交、笛卡尔积
- 选择、投影、连接(从两个关系的笛卡尔积中选择属性间满足一定关系的元组)、除(先理解象集的概念:关系中满足属性集X为x的元组在Z上的分量的集合)