重难点:
1.关系定义、特点
2.关系数据结构、三类完整性约束
3.运算、关系代数
第一节.关系数据结构及形式化定义
1.关系
-
(1)域:是一组具有相同数据类型的值的集合
-
(2)笛卡尔积
-
域上的一种集合运算,所有域的所有取值的一个组合
-
一个笛卡尔积的结果叫元组
-
元组中的每一个值叫做一个分量
-
一个域允许的不同取值个数称为这个域的
基数
-
一行叫元组,一列叫域
-
问题:直接笛卡尔积的结果可能没有意义,而关系中的数据都是有意义的,关系通常是笛卡尔积的子集
- (3)关系
- D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为 R(D1,D2,…,Dn)
- R:关系名
- n:关系的目或度(Degree)
- 关系或表、元组或行、属性或行
- (4)候选码:若关系中的某一属性或属性组的值能唯一地标识一个元组,而其子集不能
- 同一个关系中的候选码可以有多个
- 在候选码中随意挑选一个当做主码,一个关系只有一个主码,只是根据习惯来选择
- 候选码中的属性叫主属性
- 不包含在任何候选码中的属性称为非主属性
- 关系模式的所有属性是这个关系模式的候选码,称为全码
候选码(唯一标识的最小子集,可以多个)——主码(随意选一个)——全码(全是候选码)
主属性(候选码的所有属性)——非主属性(与主属性对立)
- (5)三类关系
- 基本关系:实际存在的表,是实际存储数据的逻辑表示
- 查询表:查询结果对应的表
- 视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据
- 所谓视图表涉及到的就是权限的问题,在基本表的基础上建立视图,使得不是所有信息都被公开使用,这就是视图表
- (6)基本关系的性质
- ① 列是同质的,每一列中的分量是同一类型的数据,来自同一个域
- ② 不同的列可出自同一个域(人是域,可分为学生、老师)
- ③ 列(行)的顺序无所谓, 列(行)的次序可以任意交换
- ④ 任意两个元组的候选码不能相同 (候选码就是能区分不同元组的,肯定不同)
- 分量必须取原子值(不可再分,不能表中有表)
2.关系模式
- 关系模式
- 关系的描述称为关系模式,是关系数据库的型 ——表头
- 关系是值 ——表格数据
- 关系模式可以形式化地表示为:
- R(U,D,DOM,F)
- R 关系名
- U 组成该关系的属性名集合
- D 属性组U中属性所来自的域
- DOM 属性向域的映象集合
- F 属性间的数据依赖关系集合
- 关系模式通常可以简记为:
- R (U) 或 R (A1,A2,…,An)
- R: 关系名
- A1,A2,…,An : 属性名
- 注:域名及属性向域的映象常常直接说明为属性的类型、长度
3.关系数据库
- 在一个给定的应用领域中,所有关系的集合构成一个关系数据库
- 关系数据库的型与值
- 关系数据库的型也称关系数据库模式,是对关系数据库的描述
- 关系数据库的值是关系模式在某一时刻对应的关系的集合
第二节.关系操作
1.常用的关系操作
- 查询:选择、投影、连接、除、并、交、差
- 数据更新:插入、删除、修改
- 查询的表达能力是其中最主要的部分
- 选择、投影、并、差、笛卡尔积是5种基本操作
特点:操作的对象和结果都是集合,一次一集合
2.关系数据语言的分类
- 关系代数语言(ISBL)
- 关系演算语言
- 双重特点的语言(SQL)